<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ep-patent-document PUBLIC "-//EPO//EP PATENT DOCUMENT 1.5//EN" "ep-patent-document-v1-5.dtd">
<ep-patent-document id="EP11811097B1" file="EP11811097NWB1.xml" lang="fr" country="EP" doc-number="2652735" kind="B1" date-publ="20150819" status="n" dtd-version="ep-patent-document-v1-5">
<SDOBI lang="fr"><B000><eptags><B001EP>ATBECHDEDKESFRGBGRITLILUNLSEMCPTIESILTLVFIROMKCYALTRBGCZEEHUPLSK..HRIS..MTNORS..SM..................</B001EP><B003EP>*</B003EP><B005EP>J</B005EP><B007EP>JDIM360 Ver 1.28 (29 Oct 2014) -  2100000/0</B007EP></eptags></B000><B100><B110>2652735</B110><B120><B121>FASCICULE DE BREVET EUROPEEN</B121></B120><B130>B1</B130><B140><date>20150819</date></B140><B190>EP</B190></B100><B200><B210>11811097.2</B210><B220><date>20111213</date></B220><B240><B241><date>20130715</date></B241></B240><B250>fr</B250><B251EP>fr</B251EP><B260>fr</B260></B200><B300><B310>1060631</B310><B320><date>20101216</date></B320><B330><ctry>FR</ctry></B330></B300><B400><B405><date>20150819</date><bnum>201534</bnum></B405><B430><date>20131023</date><bnum>201343</bnum></B430><B450><date>20150819</date><bnum>201534</bnum></B450><B452EP><date>20150507</date></B452EP></B400><B500><B510EP><classification-ipcr sequence="1"><text>G10L  19/02        20130101AFI20150417BHEP        </text></classification-ipcr><classification-ipcr sequence="2"><text>G10L  19/24        20130101ALI20150417BHEP        </text></classification-ipcr></B510EP><B540><B541>de</B541><B542>VERBESSERTE KODIERUNG EINER VERBESSERUNGSSTUFE BEI EINEM HIERARCHISCHEN KODIERER</B542><B541>en</B541><B542>IMPROVED ENCODING OF AN IMPROVEMENT STAGE IN A HIERARCHICAL ENCODER</B542><B541>fr</B541><B542>CODAGE PERFECTIONNE D'UN ETAGE D'AMELIORATION DANS UN CODEUR HIERARCHIQUE</B542></B540><B560><B561><text>FR-A1- 2 938 688</text></B561></B560></B500><B700><B720><B721><snm>KOVESI, Balazs</snm><adr><str>16 chemin du Moulin à Vent</str><city>F-Lannion 22300</city><ctry>FR</ctry></adr></B721><B721><snm>RAGOT, Stéphane</snm><adr><str>Allegoat (Servel)</str><city>F-Lannion 22300</city><ctry>FR</ctry></adr></B721><B721><snm>LE GUYADER, Alain</snm><adr><str>12 rue de Crec'h Huet</str><city>F-22300 Lannion</city><ctry>FR</ctry></adr></B721></B720><B730><B731><snm>Orange</snm><iid>101394618</iid><irf>07940_EP</irf><adr><str>78, rue Olivier de Serres</str><city>75015 Paris</city><ctry>FR</ctry></adr></B731></B730></B700><B800><B840><ctry>AL</ctry><ctry>AT</ctry><ctry>BE</ctry><ctry>BG</ctry><ctry>CH</ctry><ctry>CY</ctry><ctry>CZ</ctry><ctry>DE</ctry><ctry>DK</ctry><ctry>EE</ctry><ctry>ES</ctry><ctry>FI</ctry><ctry>FR</ctry><ctry>GB</ctry><ctry>GR</ctry><ctry>HR</ctry><ctry>HU</ctry><ctry>IE</ctry><ctry>IS</ctry><ctry>IT</ctry><ctry>LI</ctry><ctry>LT</ctry><ctry>LU</ctry><ctry>LV</ctry><ctry>MC</ctry><ctry>MK</ctry><ctry>MT</ctry><ctry>NL</ctry><ctry>NO</ctry><ctry>PL</ctry><ctry>PT</ctry><ctry>RO</ctry><ctry>RS</ctry><ctry>SE</ctry><ctry>SI</ctry><ctry>SK</ctry><ctry>SM</ctry><ctry>TR</ctry></B840><B860><B861><dnum><anum>FR2011052959</anum></dnum><date>20111213</date></B861><B862>fr</B862></B860><B870><B871><dnum><pnum>WO2012080649</pnum></dnum><date>20120621</date><bnum>201225</bnum></B871></B870><B880><date>20131023</date><bnum>201343</bnum></B880></B800></SDOBI>
<description id="desc" lang="fr"><!-- EPO <DP n="1"> -->
<p id="p0001" num="0001">La présente invention concerne le domaine du codage des signaux numériques.</p>
<p id="p0002" num="0002">Le codage selon l'invention est adapté notamment pour la transmission et/ou le stockage de signaux numériques tels que des signaux audiofréquences (parole, musique ou autres).</p>
<p id="p0003" num="0003">La présente invention se rapporte plus particulièrement au codage de formes d'onde tel que le codage MIC (pour "Modulation par Impulsions Codées") dit PCM (pour "Pulse Code Modulation") en anglais, ou au codage adaptatif de forme d'onde de type codage MICDA (pour "Modulation par Impulsion et Codage Différentiel Adaptatif') dit "ADPCM" (pour <i>"Adaptive Differential Pulse Code Modulation"</i>) en anglais. L'invention se rapporte notamment au codage à codes imbriqués permettant de délivrer des indices de quantification à train binaire scalable.</p>
<p id="p0004" num="0004">Le principe général du codage/décodage MICDA à codes imbriqués spécifié par la recommandation UIT-T G.722 ou UIT-T G.727 est tel que décrit en référence aux <figref idref="f0001">figures 1</figref> et <figref idref="f0002">2</figref>.</p>
<p id="p0005" num="0005"><b>La</b> <figref idref="f0001"><b>figure 1</b></figref> représente ainsi un codeur à codes imbriqués de type MICDA (ex : G.722 bande basse, G.727) fonctionnant entre B et B+K bits par échantillon ; à noter que le cas d'un codage MICDA non scalable (ex : G.726, G.722 bande haute) correspond à K=0, où B est une valeur fixe qui peut être choisie parmi différents débits possibles.</p>
<p id="p0006" num="0006">Il comporte:
<ul id="ul0001" list-style="dash" compact="compact">
<li>un module de prédiction 110 permettant de donner la prédiction du signal <maths id="math0001" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0001" file="imgb0001.tif" wi="12" he="8" img-content="math" img-format="tif" inline="yes"/></maths> à partir des échantillons précédents du signal d'erreur quantifié <maths id="math0002" num=""><math display="inline"><mrow><msubsup><mrow><mi>e</mi></mrow><mrow><mi>Q</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi mathvariant="italic">nʹ</mi></mfenced><mo>=</mo><msubsup><mrow><mi>y</mi></mrow><mrow><msup><mi>I</mi><mi>B</mi></msup></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi mathvariant="italic">nʹ</mi></mfenced><mo>⁢</mo><mi>v</mi><mfenced><mi mathvariant="italic">nʹ</mi></mfenced><mspace width="1em"/><mrow><mi mathvariant="italic">nʹ</mi></mrow><mo>=</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>,</mo><mo>…</mo><mo>,</mo><mi>n</mi><mo>-</mo><msub><mi>N</mi><mi>Z</mi></msub></mrow></math><img id="ib0002" file="imgb0002.tif" wi="72" he="8" img-content="math" img-format="tif" inline="yes"/></maths><i>,</i> où <i>v</i>(<i>n'</i>) est le facteur d'échelle de quantification, et du signal reconstitué <i>r<sup>B</sup></i> (<i>n'</i>) <i>n' = n -</i>1,...,<i>n-N<sub>p</sub></i> où n est l'instant courant.</li>
<li>un module de soustraction 120 qui retranche du signal d'entrée <i>x(n)</i> sa prédiction <maths id="math0003" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0003" file="imgb0003.tif" wi="11" he="6" img-content="math" img-format="tif" inline="yes"/></maths> <i>(n)</i> pour obtenir un signal d'erreur de prédiction noté <i>e</i>(<i>n</i>)<i>.</i></li>
<li>un module de quantification 130 <i>Q<sup>B+K</sup></i> du signal d'erreur qui reçoit en entrée le signal d'erreur <i>e(n)</i> pour donner des indices de quantification <i>I</i><sup><i>B</i>+</sup><i><sup>K</sup> (n)</i> constitués de B+K bits. Le module de quantification <i>Q</i><sup><i>B</i>+<i>K</i></sup> est à codes imbriqués c'est-à-dire qu'il comporte un<!-- EPO <DP n="2"> --> quantificateur de « coeur » à B bits et des quantificateurs à <i>B + k k =</i>1<i>,...,K</i> bits qui sont imbriqués sur le quantificateur de « coeur ».</li>
</ul></p>
<p id="p0007" num="0007">Dans le cas du codage de la bande basse de la norme UIT-T G.722 , les niveaux de décision et les niveaux de reconstruction des quantificateurs <i>Q<sup>B</sup></i>, <i>Q</i><sup><i>B</i>+1</sup><i>, Q</i><sup><i>B</i>+2</sup> pour B = 4 et <i>K</i> = 0,1 ou 2 sont définis par les tableaux IV et VI de l'article de synthèse décrivant la norme G.722 de <nplcit id="ncit0001" npl-type="s"><text>X. Maitre "7 kHz audio coding within 64 kbit/s." IEEE Journal on Selected Areas in Communication, Vol.6, no. 2, February 1988</text></nplcit>.</p>
<p id="p0008" num="0008">L'indice de quantification <i>I</i><sup><i>B</i>+<i>K</i></sup> (<i>n</i>) de <i>B</i>+<i>K</i> bits en sortie du module de quantification <i>Q</i><sup><i>B</i>+<i>K</i></sup> est transmis via le canal de transmission 140 au décodeur tel que décrit en référence à la <figref idref="f0002">figure 2</figref>.</p>
<p id="p0009" num="0009">Le codeur comporte également:
<ul id="ul0002" list-style="dash" compact="compact">
<li>un module 150 de suppression des K bits de poids faible de l'indice <i>I</i><sup><i>B</i>+</sup><i><sup>K</sup> (n)</i> pour donner un indice bas débit <i>I<sup>B</sup></i>(<i>n</i>) sur B bits;</li>
<li>un module de quantification inverse 121 (<i>Q<sup>B</sup></i>)<sup>-1</sup> pour donner en sortie un signal d'erreur quantifié <maths id="math0004" num=""><math display="inline"><mrow><msubsup><mrow><mi>e</mi></mrow><mrow><mi>Q</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi mathvariant="italic">nʹ</mi></mfenced><mo>=</mo><msubsup><mrow><mi>y</mi></mrow><mrow><msup><mi>I</mi><mi>B</mi></msup></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi mathvariant="italic">n</mi></mfenced><mo>⁢</mo><mi>v</mi><mfenced><mi mathvariant="italic">n</mi></mfenced></mrow></math><img id="ib0004" file="imgb0004.tif" wi="33" he="8" img-content="math" img-format="tif" inline="yes"/></maths> sur <i>B</i> bits;</li>
<li>un module d'adaptation 170 <i>Q<sub>Adapt</sub></i> des quantificateurs et des quantificateurs inverses pour donner un paramètre de contrôle de niveau v(n) encore appelé facteur d'échelle, pour l'instant suivant;</li>
<li>un module d'addition 180 de la prédiction <maths id="math0005" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0005" file="imgb0005.tif" wi="12" he="7" img-content="math" img-format="tif" inline="yes"/></maths> au signal d'erreur quantifié pour donner le signal reconstruit à bas débit <i>r<sup>B</sup> (n) ;</i></li>
<li>un module d'adaptation 190 <i>P<sub>Adapt</sub></i> du module de prédiction à partir du signal d'erreur quantifié sur B bits <maths id="math0006" num=""><math display="inline"><mrow><msubsup><mrow><mi>e</mi></mrow><mrow><mi>Q</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi mathvariant="italic">n</mi></mfenced></mrow></math><img id="ib0006" file="imgb0006.tif" wi="11" he="6" img-content="math" img-format="tif" inline="yes"/></maths> et du signal <maths id="math0007" num=""><math display="inline"><mrow><msubsup><mrow><mi>e</mi></mrow><mrow><mi>Q</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi mathvariant="italic">n</mi></mfenced></mrow></math><img id="ib0007" file="imgb0007.tif" wi="11" he="8" img-content="math" img-format="tif" inline="yes"/></maths> filtré par 1+<i>P<sub>z</sub></i>(<i>z</i>).</li>
</ul></p>
<p id="p0010" num="0010">On peut remarquer que sur la <figref idref="f0001">figure 1</figref> la partie en pointillés référencée 155 représente le décodeur local à bas débit qui contient les prédicteurs 165 et 175 et le quantificateur inverse 121. Ce décodeur local permet ainsi d'adapter le quantificateur inverse en 170 à partir de l'indice bas débit <i>I<sup>B</sup></i>(<i>n</i>) et d'adapter les prédicteurs 165 et 175 à partir des données bas débit reconstruites.</p>
<p id="p0011" num="0011">Cette partie se retrouve à l'identique sur le décodeur MICDA à codes imbriqués tel que décrit en référence à la <figref idref="f0002">figure 2</figref>.</p>
<p id="p0012" num="0012">Le décodeur MICDA à codes imbriqués de la <figref idref="f0002"><b>figure 2</b></figref> reçoit en entrée les indices <i>I</i><sup><i>'B</i>+<i>K</i></sup> issu du canal de transmission 140, version de <i>I</i><sup><i>B</i>+<i>K</i></sup> éventuellement perturbée par des erreurs binaires, et réalise une quantification inverse par le module de quantification inverse<!-- EPO <DP n="3"> --> 210 (<i>Q<sup>B</sup></i>) <sup>-1</sup> de débit B bits par échantillon pour obtenir le signal <maths id="math0008" num=""><math display="inline"><mrow><msubsup><mrow><mi>e</mi></mrow><mrow><mi>Q</mi></mrow><mrow><mi mathvariant="italic">ʹB</mi></mrow></msubsup><mfenced><mi mathvariant="italic">nʹ</mi></mfenced><mo>=</mo><msubsup><mrow><mi>y</mi></mrow><mrow><msup><mi mathvariant="italic">Iʹ</mi><mi>B</mi></msup></mrow><mrow><mi mathvariant="italic">ʹB</mi></mrow></msubsup><mfenced><mi mathvariant="italic">n</mi></mfenced><mo>⁢</mo><mi mathvariant="italic">vʹ</mi><mfenced><mi mathvariant="italic">n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0008" file="imgb0008.tif" wi="37" he="8" img-content="math" img-format="tif" inline="yes"/></maths>Le symbole " ' " indique une valeur décodée à partir des bits reçus, éventuellement différente de celle utilisée par le codeur du fait d'erreurs de transmission.</p>
<p id="p0013" num="0013">Le signal de sortie <i>r'<sup>B</sup></i>(<i>n</i>) pour B bits sera égal à la somme de la prédiction du signal et de la sortie du quantificateur inverse à B bits. Cette partie 255 du décodeur est identique au décodeur local bas débit 155 de la <figref idref="f0001">figure 1</figref>.</p>
<p id="p0014" num="0014">Moyennant l'indicateur de débit <i>mode</i> et le sélecteur 220, le décodeur peut améliorer le signal restitué.</p>
<p id="p0015" num="0015">En effet si <i>mode</i> indique que B+1 bits ont été reçus, la sortie sera égale à la somme de la prédiction <maths id="math0009" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0009" file="imgb0009.tif" wi="11" he="8" img-content="math" img-format="tif" inline="yes"/></maths> et de la sortie du quantificateur inverse 230 à B+1 bits <maths id="math0010" num=""><math display="inline"><mrow><msubsup><mrow><mi>y</mi></mrow><mrow><msup><mrow><mi mathvariant="italic">I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mn>1</mn></mrow></msup></mrow><mrow><mi mathvariant="italic">ʹB</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mfenced><mi mathvariant="italic">n</mi></mfenced><mo>⁢</mo><mi mathvariant="italic">vʹ</mi><mfenced><mi mathvariant="italic">n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0010" file="imgb0010.tif" wi="24" he="8" img-content="math" img-format="tif" inline="yes"/></maths></p>
<p id="p0016" num="0016">Si <i>mode</i> indique que B+2 bits ont été reçus alors la sortie sera égale à la somme de la prédiction <maths id="math0011" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0011" file="imgb0011.tif" wi="11" he="8" img-content="math" img-format="tif" inline="yes"/></maths> et de la sortie du quantificateur inverse 240 à B+2 bits <maths id="math0012" num=""><math display="inline"><mrow><msubsup><mrow><mi>y</mi></mrow><mrow><msup><mrow><mi mathvariant="italic">I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mn>2</mn></mrow></msup></mrow><mrow><mi mathvariant="italic">ʹB</mi><mo>+</mo><mn>2</mn></mrow></msubsup><mfenced><mi mathvariant="italic">n</mi></mfenced><mo>⁢</mo><mi mathvariant="italic">vʹ</mi><mfenced><mi mathvariant="italic">n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0012" file="imgb0012.tif" wi="26" he="8" img-content="math" img-format="tif" inline="yes"/></maths></p>
<p id="p0017" num="0017">En utilisant les notations de la transformée en z, on peut écrire que dans cette structure bouclée : <maths id="math0013" num=""><math display="block"><mrow><msup><mrow><mi>R</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup><mfenced><mi>z</mi></mfenced><mo>=</mo><mi>X</mi><mfenced><mi>Z</mi></mfenced><mo>+</mo><msup><mrow><mi>Q</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup><mfenced><mi>z</mi></mfenced></mrow></math><img id="ib0013" file="imgb0013.tif" wi="46" he="6" img-content="math" img-format="tif"/></maths><br/>
en définissant le bruit de quantification à B+k bits <i>Q</i><sup><i>B</i>+</sup><i><sup>k</sup> (z)</i> par : <maths id="math0014" num=""><math display="block"><mrow><msup><mrow><mi>Q</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup><mfenced><mi>z</mi></mfenced><mo>=</mo><msubsup><mrow><mi>E</mi></mrow><mrow><mi>Q</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>z</mi></mfenced><mo>-</mo><mi>E</mi><mfenced><mi>z</mi></mfenced></mrow></math><img id="ib0014" file="imgb0014.tif" wi="45" he="6" img-content="math" img-format="tif"/></maths></p>
<p id="p0018" num="0018">Le codage MICDA à codes imbriqués de la norme UIT-T G.722 (ci-après nommé G.722) réalise un codage des signaux en bande élargie qui sont définis avec une largeur de bande minimale de [50-7000 Hz] et échantillonnés à 16 kHz. Le codage G.722 est un codage MICDA de chacune des deux sous-bandes du signal [0-4000 Hz] et [4000-8000 Hz] obtenues par décomposition du signal par des filtres miroirs en quadrature. La bande basse est codée par un codage MICDA à codes imbriqués sur 6, 5 et 4 bits tandis que la bande haute est codée par un codeur MICDA de 2 bits par échantillon. Le débit total sera de 64, 56 ou 48 bit/s suivant le nombre de bits utilisé pour le décodage de la bande basse.</p>
<p id="p0019" num="0019">Ce codage a d'abord été développé pour utilisation dans le RNIS (Réseau Numérique à Intégration de Services). Il a été récemment déployé dans les applications de téléphonie de qualité améliorée dite "voix Haute Définition (HD)" sur réseau IP.</p>
<p id="p0020" num="0020">Pour un quantificateur à grand nombre de niveaux, le spectre du bruit de quantification sera relativement plat. Cependant, dans les zones fréquentielles où le signal a une faible énergie, le bruit peut avoir un niveau comparable voir supérieur au signal et n'est donc plus forcément masqué. Il peut alors devenir audible dans ces régions.<!-- EPO <DP n="4"> --></p>
<p id="p0021" num="0021">Une mise en forme du bruit de codage est donc nécessaire. Dans un codeur comme G.722, une mise en forme du bruit de codage adaptée à un codage à codes imbriqués est de plus souhaitable.</p>
<p id="p0022" num="0022">De façon générale, le but de la mise en forme du bruit de codage est d'obtenir un bruit de quantification dont l'enveloppe spectrale suit le seuil de masquage court-terme; ce principe est souvent simplifié de sorte que le spectre du bruit suive approximativement le spectre du signal, assurant un rapport signal à bruit plus homogène pour que le bruit reste inaudible même dans les zones de plus faible énergie du signal.</p>
<p id="p0023" num="0023">Une technique de mise en forme du bruit pour un codage de type MIC (pour "Modulation par Impulsions Codées") à codes imbriqués est décrite dans la recommandation <nplcit id="ncit0002" npl-type="s"><text>UIT-T G.711.1 «Wideband embedded extension for G.711 pulse code modulation» ou « G.711.1: A wideband extension to ITU-T G.711 ». Y. Hiwasaki, S. Sasaki, H. Ohmuro, T. Mori, J. Seong, M. S. Lee, B. Kövesi, S. Ragot, J.-L. Garcia, C. Marro ,L. M., J. Xu, V. Malenovsky, J. Lapierre, R. Lefebvre. EUSIPCO, Lausanne, 2008</text></nplcit>.</p>
<p id="p0024" num="0024">Cette recommandation décrit ainsi un codage avec mise en forme du bruit de codage pour un codage de débit coeur. Un filtre perceptuel de mise en forme du bruit de codage est calculé sur la base des signaux décodés passés, issus d'un quantificateur coeur inverse. Un décodeur local de débit coeur permet donc de calculer le filtre de mise en forme du bruit. Ainsi, au décodeur, il est possible de calculer ce filtre de mise en forme du bruit à partir des signaux décodés de débit coeur.</p>
<p id="p0025" num="0025">Un quantificateur délivrant des bits d'amélioration est utilisé au codeur.</p>
<p id="p0026" num="0026">Le décodeur recevant le flux binaire coeur et les bits d'amélioration, calcule le filtre de mise en forme du bruit de codage de la même façon qu'au codeur à partir du signal décodé de débit coeur et applique ce filtre au signal de sortie du quantificateur inverse des bits d'amélioration, le signal haut débit mis en forme étant obtenu en ajoutant le signal filtré au signal décodé de coeur.</p>
<p id="p0027" num="0027">La mise en forme du bruit améliore ainsi la qualité perceptuelle du signal de débit coeur. Elle offre une amélioration limitée de la qualité pour les bits d'amélioration. En effet, la mise en forme du bruit de codage n'est pas effectuée pour le codage des bits d'amélioration, l'entrée du quantificateur étant la même pour la quantification de coeur que pour la quantification améliorée.</p>
<p id="p0028" num="0028">Le décodeur doit alors supprimer une composante parasite résultante par un filtrage adapté, lorsque les bits d'amélioration sont décodés en plus des bits coeur.</p>
<p id="p0029" num="0029">Le calcul supplémentaire d'un, filtre au décodeur augmente la complexité du décodeur.<!-- EPO <DP n="5"> --></p>
<p id="p0030" num="0030">Cette technique n'est pas utilisée dans les décodeurs scalables standards déjà existants de type décodeur G.722 ou G.727. Il existe donc un besoin d'amélioration de la qualité des signaux quelque soit le débit tout en restant compatible avec les décodeurs scalables standards existants.</p>
<p id="p0031" num="0031">Une solution ne nécessitant pas d'effectuer au décodeur, de traitement de signal complémentaire est décrite dans la demande de brevet <patcit id="pcit0001" dnum="WO2010058117A"><text>WO 2010/058117</text></patcit>. Dans cette demande, le signal reçu au décodeur peut être décodé par un décodeur standard apte à décoder le signal de débit coeur et de débits imbriqués sans nécessiter de calcul de mise en forme du bruit ni de terme correctif.</p>
<p id="p0032" num="0032">Ce document décrit que pour un étage d'amélioration d'un codeur hiérarchique, la quantification s'effectue en minimisant un critère d'erreur quadratique dans un domaine perceptuellement filtré.</p>
<p id="p0033" num="0033">Pour cela, un filtre de mise en forme du bruit de codage est défini et appliqué à un signal d'erreur déterminé à partir au moins d'un signal reconstruit d'un étage de codage précédent. La méthode nécessite également le calcul du signal reconstruit de l'étage d'amélioration courant en prévision d'un étage de codage suivant.</p>
<p id="p0034" num="0034">De plus, des termes d'amélioration sont calculés et stockés pour l'étage courant d'amélioration. Ceci apporte donc une complexité importante et un stockage important de termes d'amélioration ou d'échantillons de signal reconstruits des étages précédents.</p>
<p id="p0035" num="0035">Cette solution n'est donc pas optimale d'un point de vue complexité.</p>
<p id="p0036" num="0036">Il existe donc un besoin d'améliorer les méthodes de l'état de l'art pour le codage et la mise en forme du bruit de codage d'amélioration, tout en restant compatible avec les décodeurs hiérarchiques existants.</p>
<p id="p0037" num="0037">La présente invention vient améliorer la situation.</p>
<p id="p0038" num="0038">Elle propose à cet effet, un procédé de codage d'un signal audio numérique d'entrée (x(n)) dans un codeur hiérarchique comprenant un étage de codage coeur à B bits et au moins un étage de codage d'amélioration courant k, le codage coeur et le codage des étages d'amélioration précédant l'étage courant k délivrant des indices de quantification qui sont concaténés pour former les indices du codeur imbriqué précédent (I<sup>B+k-1</sup>). Le procédé est tel qu'il comporte les étapes suivantes:
<ul id="ul0003" list-style="dash" compact="compact">
<li>obtention de valeurs possibles de quantification pour l'étage d'amélioration courant k à partir des niveaux de reconstruction absolus du seul étage courant k et des indices du codeur imbriqué précédent;</li>
<li>quantification du signal d'entrée du codeur hiérarchique ayant subi ou non un traitement de pondération perceptuelle, à partir des dites valeurs possibles de quantification<!-- EPO <DP n="6"> --> pour former un indice de quantification de l'étage k et un signal quantifié correspondant à une des valeurs possibles de quantification.</li>
</ul></p>
<p id="p0039" num="0039">Ainsi, la quantification de l'étage d'amélioration détermine le ou les bits d'indice de quantification qui sont directement concaténés aux indices des étages précédents. Il n'y a pas, contrairement aux méthodes de l'état de l'art, de calcul d'un signal d'amélioration ou de termes d'amélioration.</p>
<p id="p0040" num="0040">De plus, le signal en entrée de la quantification est soit directement le signal d'entrée du codeur hiérarchique, soit ce même signal d'entrée ayant directement subi un traitement de pondération perceptuelle. Il ne s'agit pas ici d'un signal différence entre le signal d'entrée et un signal reconstruit des étages de codage précédent comme dans les techniques de l'état de l'art.</p>
<p id="p0041" num="0041">La complexité en termes de charge de calcul en est donc réduite.</p>
<p id="p0042" num="0042">De plus, contrairement aux méthodes de l'état de l'art, les valeurs de quantification stockées ne sont pas des valeurs différentielles. Ainsi, il n'est pas utile de mémoriser les valeurs de quantification servant de reconstruction dans les étages précédents pour constituer un dictionnaire de quantification de l'étage d'amélioration.</p>
<p id="p0043" num="0043">D'autre part, contrairement aux méthodes de l'état de l'art, il n'est pas nécessaire de construire et de mémoriser un dictionnaire différentiel, car l'étage amélioration utilise directement des niveaux absolus stockés par l'encodeur et décodeur hiérarchique existant <maths id="math0015" num=""><math display="inline"><mrow><mfenced separators=""><msubsup><mrow><mi>y</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mfenced><mn>.</mn></mrow></math><img id="ib0015" file="imgb0015.tif" wi="20" he="8" img-content="math" img-format="tif" inline="yes"/></maths> Ainsi l'invention évite la duplication des dictionnaires que l'on peut rencontrer dans les méthodes de l'état de l'art où un dictionnaire différentiel est utilisé au codeur et un dictionnaire absolu au décodeur.</p>
<p id="p0044" num="0044">La mémoire requise pour le stockage des dictionnaires et les opérations de quantification au codeur et quantification inverse au décodeur est donc réduite.</p>
<p id="p0045" num="0045">Enfin, le fait d'obtenir directement les valeurs de quantification de l'étage d'amélioration sans effectuer de différence, apporte une précision supplémentaire entre les valeurs obtenues au codeur et celles obtenues au décodeur lorsque l'on travaille par exemple en précision finie.</p>
<p id="p0046" num="0046">Les différents modes particuliers de réalisation mentionnés ci-après peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé défini ci-dessus.</p>
<p id="p0047" num="0047">Dans un mode de réalisation particulier, le signal d'entrée a subi un traitement de pondération perceptuelle utilisant un filtre de pondération prédéterminé pour donner un signal d'entrée modifié, avant l'étape de quantification et le procédé comporte en outre une étape d'adaptation des mémoires du filtre de pondération à partir du signal quantifié de l'étage de codage d'amélioration courant.<!-- EPO <DP n="7"> --></p>
<p id="p0048" num="0048">Ce traitement de pondération perceptuelle appliquée directement sur le signal d'entrée du codeur hiérarchique pour le codage d'amélioration de l'étage k réduit également la complexité en terme de charge de calculs par rapport aux techniques de l'état de l'art qui effectuaient ce traitement de pondération perceptuelle sur un signal différence entre le signal d'entrée et un signal reconstruit des étages de codage précédent.</p>
<p id="p0049" num="0049">Ainsi, le procédé de codage décrit permet aussi aux décodeurs existants de décoder le signal sans avoir de modifications à apporter ou de traitement supplémentaires à prévoir tout en bénéficiant de l'amélioration du signal par une mise en forme du bruit de codage efficace.</p>
<p id="p0050" num="0050">Dans un mode particulier de réalisation, les valeurs possibles de quantification pour l'étage d'amélioration k contiennent en outre un facteur d'échelle et une valeur de prédiction provenant du codage coeur de type adaptatif.</p>
<p id="p0051" num="0051">Ceci permet d'adapter les valeurs de quantification par rapport aux valeurs définies au codage coeur.</p>
<p id="p0052" num="0052">Dans une alternative de réalisation, le signal d'entrée modifié à quantifier à l'étage d'amélioration k est le signal d'entrée pondéré perceptuellement auquel est soustrait une valeur de prédiction provenant du codage coeur de type adaptatif.</p>
<p id="p0053" num="0053">Ceci permet également d'adapter les valeurs de quantification par rapport aux valeurs définies au codage coeur mais en effectuant cette adaptation en entrée du quantificateur plutôt que sur chaque valeur de quantification. Ceci est avantageux dans le cas où l'amélioration s'effectue sur plusieurs bits.</p>
<p id="p0054" num="0054">De façon particulière, le traitement de pondération perceptuelle, s'effectue par des filtres de prédictions formant un filtre de type ARMA.</p>
<p id="p0055" num="0055">La mise en forme du bruit de codage d'amélioration est alors de bonne qualité.</p>
<p id="p0056" num="0056">La présente invention se rapporte également à un codeur hiérarchique d'un signal audio numérique d'entrée, comprenant un étage de codage coeur à B bits et au moins un étage de codage d'amélioration courant k, le codage coeur et le codage des étages d'amélioration précédant l'étage courant k délivrant des indices de quantification qui sont concaténés pour former les indices du codeur imbriqué précédent. Le codeur est tel qu'il comporte:
<ul id="ul0004" list-style="dash" compact="compact">
<li>un module d'obtention de valeurs possibles de quantification pour l'étage d'amélioration courant k par la détermination de niveaux de reconstruction absolus du seul étage courant k à partir des indices du codeur imbriqué précédent;</li>
<li>un module de quantification du signal d'entrée du codeur hiérarchique ayant subi ou non un traitement de pondération perceptuelle, à partir des dites valeurs possibles de quantification pour former un indice de quantification de l'étage k et un signal quantifié correspondant à une des valeurs possibles de quantification.</li>
</ul><!-- EPO <DP n="8"> --></p>
<p id="p0057" num="0057">Le codeur hiérarchique comporte en outre un module de prétraitement de pondération perceptuelle utilisant un filtre de pondération prédéterminé pour donner un signal d'entrée modifié en entrée du module de quantification et un module d'adaptation des mémoires du filtre de pondération à partir du signal quantifié de l'étage de codage d'amélioration courant.</p>
<p id="p0058" num="0058">Le codeur hiérarchique apporte les mêmes avantages que ceux du procédé qu'il met en oeuvre.</p>
<p id="p0059" num="0059">Elle se rapporte aussi à un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de codage selon l'invention, lorsque ces instructions sont exécutées par un processeur.</p>
<p id="p0060" num="0060">L'invention se rapporte enfin à un moyen de stockage lisible par un processeur mémorisant un programme informatique tel que décrit.</p>
<p id="p0061" num="0061">D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels:
<ul id="ul0005" list-style="dash" compact="compact">
<li>la <figref idref="f0001">figure 1</figref> illustre un codeur de type MICDA à codes imbriqués selon l'état de l'art et tel que décrit précédemment;</li>
<li>la <figref idref="f0002">figure 2</figref> illustre un décodeur de type MICDA à codes imbriqués selon l'état de l'art et tel que décrit précédemment;</li>
<li>la <figref idref="f0003">figure 3</figref> illustre un mode de réalisation général du procédé de codage selon l'invention et d'un codeur selon l'invention;</li>
<li>la <figref idref="f0004">figure 4</figref> illustre un premier mode de réalisation particulier du procédé de codage et d'un codeur selon l'invention;</li>
<li>la <figref idref="f0005">figure 5</figref> illustre un deuxième mode de réalisation particulier du procédé de codage et d'un codeur selon l'invention;</li>
<li>la <figref idref="f0006">figure 6</figref> illustre un troisième mode de réalisation particulier du procédé de codage et d'un codeur selon l'invention;</li>
<li>la <figref idref="f0007">figure 7</figref> illustre une alternative de réalisation générale du procédé de codage et d'un codeur selon l'invention;</li>
<li>la <figref idref="f0008">figure 7b</figref> illustre une autre alternative de réalisation générale du procédé de codage et d'un codeur selon l'invention;</li>
<li>la <figref idref="f0009">figure 8</figref> illustre un exemple de réalisation du codage coeur d'un codeur selon l'invention;</li>
<li>la <figref idref="f0010">figure 9</figref> illustre un exemple de niveaux de reconstruction de quantification utilisés dans l'état de l'art; et</li>
<li>la <figref idref="f0011">figure 10</figref> illustre un mode de réalisation matérielle d'un codeur selon l'invention.</li>
</ul><!-- EPO <DP n="9"> --></p>
<p id="p0062" num="0062">En référence à la <figref idref="f0003"><b>figure 3</b></figref><b>,</b> un codeur ainsi qu'un procédé de codage selon un mode de réalisation de l'invention est décrit.</p>
<p id="p0063" num="0063">On rappelle qu'on considère ici le cas d'un codeur à codes imbriqués ou codeur hiérarchique dans lequel un codage coeur à B bits et au moins un étage d'amélioration de rang k est prévu. Le codage coeur et les étages d'amélioration précédant le codage de l'étage d'amélioration k tel que représenté en 306, délivrent des indices de quantification scalaires multiplexés dans l'indice I<sup>B+k-1</sup>(n) de B+k-1 bits par échantillon.</p>
<p id="p0064" num="0064">Dans les exemples de réalisation décrits ci-après, par soucis de simplification de présentation, l'étage d'amélioration (de rang k) est présenté comme produisant un bit supplémentaire par échantillon. Dans ce cas, le codage dans chaque étage d'amélioration implique de sélectionner une valeur parmi deux possibles. Comme il apparaîtra par la suite, le "dictionnaire absolu" - en termes de niveaux absolus (au sens de « non-différentiels »)-correspondant à toutes les valeurs de quantification que peut produire l'étage d'amélioration de rang k, est de taille 2<sup>B+k</sup>, ou parfois légèrement inférieure à 2<sup>B+k</sup> comme par exemple dans le codeur G.722 qui n'a que 60 niveaux possibles au lieu de 64 dans le quantificateur de 6 bits de bande basse. Le codage hiérarchique implique une structure en arbre binaire du "dictionnaire absolu", ce qui explique qu'il suffit d'un bit d'amélioration pour effectuer le codage étant donnés les B+k-1 bits des étages précédents.</p>
<p id="p0065" num="0065">La <figref idref="f0010"><b>figure 9</b></figref> est un extrait du tableau VI de l'article précité X. Maitre et représente les 4 premiers niveaux du quantificateur de coeur à B bits pour B=4 bits et les niveaux des quantificateurs à B+1 et B+2 bits du codage de la bande basse d'un codeur G.722 ainsi que les valeurs de sortie du quantificateur d'amélioration de l'état de l'art pour B+2 bits.</p>
<p id="p0066" num="0066">Comme illustré sur cette figure, le quantificateur imbriqué à B+1=5 bits est obtenu en "dédoublant" les niveaux du quantificateur à B=4 bits. Le quantificateur imbriqué à B+2=6 bits est obtenu en "dédoublant" les niveaux du quantificateur à B+1=5 bits. Le dédoublement des niveaux de reconstruction est en fait une conséquence de la contrainte de codage hiérarchique de la bande basse qui est mis en oeuvre dans G.722 sous la forme d'un dictionnaire de quantification scalaire (à 4, 5 ou 6 bits par échantillon) structuré en arbre.</p>
<p id="p0067" num="0067">Dans l'état d'art, les valeurs <maths id="math0016" num=""><math display="inline"><mrow><msubsup><mrow><mi mathvariant="italic">enh</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><mi>j</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mrow></math><img id="ib0016" file="imgb0016.tif" wi="19" he="8" img-content="math" img-format="tif" inline="yes"/></maths> désignant des niveaux de reconstructions de quantification pour un étage d'amélioration k sont définis par la différence entre
<ul id="ul0006" list-style="none" compact="compact">
<li>oles valeurs désignant les niveaux de reconstruction de la quantification d'un quantificateur imbriqué à B+k bits (B désignant le nombre de bits du codage coeur) et</li>
<li>o les valeurs désignant les niveaux de reconstruction de quantification d'un quantificateur imbriqué à B+k-1 bits, les niveaux de reconstruction du<!-- EPO <DP n="10"> --> quantificateur imbriqué à B+k bits étant définis par dédoublement des niveaux de reconstruction du quantificateur imbriqué à B+k-1 bits.</li>
</ul>
Avec l'invention les niveaux de reconstruction différentiels <maths id="math0017" num=""><math display="inline"><mrow><msubsup><mrow><mi mathvariant="italic">enh</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><mi>j</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mrow></math><img id="ib0017" file="imgb0017.tif" wi="20" he="9" img-content="math" img-format="tif" inline="yes"/></maths> listés à droite et encadrés en pointillés n'ont pas à être calculés ni stockés. Selon l'invention seuls les niveaux de reconstruction absolus <maths id="math0018" num=""><math display="inline"><mrow><msubsup><mrow><mi>y</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mrow></math><img id="ib0018" file="imgb0018.tif" wi="9" he="7" img-content="math" img-format="tif" inline="yes"/></maths> de l'étage k sont calculés et stockés.</p>
<p id="p0068" num="0068">Ces niveaux de reconstruction absolus <maths id="math0019" num=""><math display="inline"><mrow><msubsup><mrow><mi>y</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mrow></math><img id="ib0019" file="imgb0019.tif" wi="9" he="8" img-content="math" img-format="tif" inline="yes"/></maths> de l'étage k sont utilisés au codeur de la même façon qu'au décodeur, dans le sens où le signal reconstruit peut être obtenu dans le cas général du codage MICDA à partir de ces niveaux de reconstruction absolus <maths id="math0020" num=""><math display="inline"><mrow><msubsup><mrow><mi>y</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mrow></math><img id="ib0020" file="imgb0020.tif" wi="10" he="6" img-content="math" img-format="tif" inline="yes"/></maths> par multiplication par le facteur d'échelle v(n) et ajout du signal de prédiction <maths id="math0021" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>,</mo></mrow></math><img id="ib0021" file="imgb0021.tif" wi="14" he="7" img-content="math" img-format="tif" inline="yes"/></maths> comme déjà présenté en référence à la description de la <figref idref="f0002">Figure 2</figref> qui représente le décodeur MICDA standard à codes imbriqués. Ces niveaux étant déjà définis et stockés dans le décodeur, le codeur ne rajoute donc aucune table de quantification supplémentaire dans le codec (codeur + décodeur).</p>
<p id="p0069" num="0069">Le codage de l'étage d'amélioration selon l'invention est très facilement généralisable pour les cas où l'étage d'amélioration ajoute plusieurs bits par échantillon. Dans ce cas la taille du dictionnaire D<sub>k</sub>(n) utilisé à l'étage d'amélioration, tel que défini ultérieurement, est simplement 2<sup>U</sup> où U&gt;1 est le nombre de bits par échantillon de l'étage d'amélioration.</p>
<p id="p0070" num="0070">Le codeur tel que représenté en <figref idref="f0003">figure 3</figref> montre un codeur à codes imbriqués ou codeur hiérarchique dans lequel un codage coeur à B bits et au moins un étage d'amélioration de rang k est prévu. Le codage coeur et les étages d'amélioration précédant le codage de l'étage d'amélioration k tel que représenté en 306, délivrent des indices de quantification scalaires qui sont concaténés pour former les indices du codeur imbriqué précédent I<sup>B+k-1</sup>(n).</p>
<p id="p0071" num="0071">La <figref idref="f0003">figure 3</figref> illustre simplement un module de codage MIC/MICDA 302 représentant le codage imbriqué précédant le codage d'amélioration en 306.</p>
<p id="p0072" num="0072">Le codage coeur du codage imbriqué précédent peut éventuellement s'effectuer en utilisant le filtre de masquage déterminé en 301 pour mettre en forme du bruit de codage « coeur ». Un exemple de ce type de codage coeur est décrit ultérieurement en référence à la <figref idref="f0009">figure 8</figref>.</p>
<p id="p0073" num="0073">Ce module 302 délivre ainsi les indices I<sup>B+k-1</sup>(n) du codeur imbriqué ainsi que le signal de prédiction <maths id="math0022" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0022" file="imgb0022.tif" wi="12" he="7" img-content="math" img-format="tif" inline="yes"/></maths> et le facteur d'échelle v(n) dans le cas où il s'agit bien d'un codage prédictif MICDA similaire à celui décrit en référence à la <figref idref="f0001">figure 1</figref>.<!-- EPO <DP n="11"> --></p>
<p id="p0074" num="0074">Dans le cas d'un codage MIC, le module 302 délivre simplement les indices de quantification imbriqués I<sup>B+k-1</sup>(n). Par ailleurs on peut remarquer que le codage MIC est un cas particulier du codage MICDA en prenant <maths id="math0023" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>=</mo><mn>0</mn></mrow></math><img id="ib0023" file="imgb0023.tif" wi="17" he="7" img-content="math" img-format="tif" inline="yes"/></maths> et <i>v</i>(<i>n</i>) =1.</p>
<p id="p0075" num="0075">La connaissance des indices de quantification imbriqués I<sup>B+k-1</sup>(n) et des niveaux de reconstruction absolus <maths id="math0024" num=""><math display="inline"><mrow><msubsup><mrow><mi>y</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mrow></math><img id="ib0024" file="imgb0024.tif" wi="10" he="7" img-content="math" img-format="tif" inline="yes"/></maths><i>,</i> ainsi que le cas échéant, le signal de prédiction et <maths id="math0025" num=""><math display="inline"><mrow><msubsup><mrow><mi>y</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mrow></math><img id="ib0025" file="imgb0025.tif" wi="12" he="9" img-content="math" img-format="tif" inline="yes"/></maths>le facteur d'échelle v(n) permettent de déterminer les valeurs de quantification D<sub>k</sub>(n) = <maths id="math0026" num=""><math display="inline"><mrow><mfenced open="{" close="}" separators=""><msubsup><mrow><mi>d</mi></mrow><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>,</mo><msubsup><mrow><mi>d</mi></mrow><mrow><mn>2</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mfenced></mrow></math><img id="ib0026" file="imgb0026.tif" wi="38" he="7" img-content="math" img-format="tif" inline="yes"/></maths> pour l'étage d'amélioration courant k dans le module de construction du dictionnaire des valeurs de quantification 303. Ce dictionnaire D<sub>k</sub>(n) est utilisé par le quantificateur qualifié ici de "quantificateur d'amélioration" pour l'étage d'amélioration de rang k.</p>
<p id="p0076" num="0076">Ainsi, selon le mode de réalisation privilégié, les valeurs de quantification du dictionnaire sont définies de la façon suivante, dans le cas du codage MICDA: <maths id="math0027" num=""><math display="block"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>+</mo><msubsup><mrow><mi>y</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced><mspace width="1em"/><mi>et</mi><mspace width="1em"/><msubsup><mrow><mi>d</mi></mrow><mrow><mn>2</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>+</mo><msubsup><mrow><mi>y</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced><mo>,</mo></mrow></math><img id="ib0027" file="imgb0027.tif" wi="134" he="7" img-content="math" img-format="tif"/></maths> où <maths id="math0028" num=""><math display="inline"><mrow><msubsup><mrow><mi>y</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><mi>j</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>,</mo></mrow></math><img id="ib0028" file="imgb0028.tif" wi="18" he="9" img-content="math" img-format="tif" inline="yes"/></maths> avec j= 0 ou 1, représentent deux valeurs possibles de quantification d'un quantificateur imbriqués de B+k bits, prédéfinies et stockées au codeur et au décodeur. On peut voir les valeurs <maths id="math0029" num=""><math display="inline"><mrow><msubsup><mrow><mi>y</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mrow></math><img id="ib0029" file="imgb0029.tif" wi="9" he="7" img-content="math" img-format="tif" inline="yes"/></maths> comme issues d'un « dédoublement » du dictionnaire <maths id="math0030" num=""><math display="inline"><mrow><msubsup><mrow><mi>y</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup></mrow></math><img id="ib0030" file="imgb0030.tif" wi="12" he="7" img-content="math" img-format="tif" inline="yes"/></maths> de l'étage précédent k-1.</p>
<p id="p0077" num="0077">On remarque que les deux éléments du dictionnaire D<sub>k</sub>(n) dépendent de <i>I</i><sup><i>B</i>+<i>k-</i>1</sup> . En fait, ce dictionnaire est un sous-ensemble du "dictionnaire absolu" défini comme: <maths id="math0031" num=""><math display="block"><mrow><mstyle displaystyle="true"><mrow><munder><mrow><mo>∪</mo></mrow><mrow><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup></mrow></munder><mo>⁢</mo><msub><mi>D</mi><mi>k</mi></msub><mfenced><mi>n</mi></mfenced><mo>=</mo><munder><mrow><mo>∪</mo></mrow><mrow><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup></mrow></munder><mfenced open="{" close="}" separators=""><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>+</mo><msubsup><mrow><mi>y</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced><mo>,</mo><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>+</mo><msubsup><mrow><mi>y</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced></mfenced></mrow></mstyle></mrow></math><img id="ib0031" file="imgb0031.tif" wi="128" he="10" img-content="math" img-format="tif"/></maths> Le "dictionnaire absolu" est un dictionnaire structuré en arbre. L'indice <i>I</i><sup><i>B</i>+<i>k</i>-1</sup> conditionne les différentes branches de l'arbre à prendre en compte pour déterminer les valeurs de quantification possibles de l'étage k (D<sub>k</sub>(n)).</p>
<p id="p0078" num="0078">Le facteur d'échelle v <i>(n)</i> est déterminé par l'étage coeur du codage MICDA comme illustré en <figref idref="f0001">figure 1</figref>, l'étage d'amélioration utilise donc ce même facteur d'échelle pour mettre à l'échelle les mots de code du dictionnaire de quantification.</p>
<p id="p0079" num="0079">Dans un mode de réalisation de l'invention, le codeur de la <figref idref="f0003">figure 3</figref> ne comporte pas les modules 301 et 310, c'est-à-dire qu'il n'est pas prévu de traitement de mise en forme de bruit de codage. Ainsi, c'est le signal d'entrée x(n) lui-même qui est quantifié par le module de quantification 306.</p>
<p id="p0080" num="0080">Dans un mode particulier de réalisation, le codeur comporte en outre un module 301 de calcul d'un filtre de masquage et de détermination du filtre de pondération W(z) ou d'une<!-- EPO <DP n="12"> --> version prédictive <i>W<sub>PRED</sub> (z)</i> décrite ultérieurement. Le filtre de masquage ou de pondération est déterminé ici à partir du signal d'entrée x(n) mais pourrait très bien être déterminé à partir d'un signal décodé, par exemple du signal décodé du codeur imbriqué précédent <i>x̃</i><sup><i>B</i>+k-1</sup>(<i>n</i>)<i>.</i> Le filtre de masquage peut être déterminé ou adapté échantillon par échantillon ou par bloc d'échantillons.</p>
<p id="p0081" num="0081">En effet, le codeur selon l'invention effectue une mise en forme du bruit de codage de l'étage d'amélioration en utilisant une quantification dans le domaine pondéré par le filtre W(z), c'est-à-dire en minimisant l'énergie du bruit de quantification filtré par W(z).</p>
<p id="p0082" num="0082">Ce filtre de pondération est utilisé en 311 par le module de filtrage et plus globalement par le module 310 de prétraitement de pondération perceptuelle du signal d'entrée x(n). Ce prétraitement est appliqué directement sur le signal d'entrée x(n) et non pas sur un signal d'erreur comme ceci pouvait être le cas dans les techniques de l'état de l'art.</p>
<p id="p0083" num="0083">Ce module 310 de prétraitement délivre un signal modifié x'(n) en entrée du quantificateur d'amélioration 307.</p>
<p id="p0084" num="0084">Le module de quantification 307 de l'étage d'amélioration k délivre un indice de quantification I<sub>enh</sub><sup>B+k</sup>(n) qui sera concaténé aux indices du codage imbriqué précédent (I<sup>B+k-1</sup>) pour former les indices du codage imbriqué courant (I<sup>B+k</sup>), par un module non représenté ici. Le module de quantification 307 de l'étage d'amélioration k choisit entre les deux valeurs <maths id="math0032" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0032" file="imgb0032.tif" wi="15" he="7" img-content="math" img-format="tif" inline="yes"/></maths> et <maths id="math0033" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>2</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0033" file="imgb0033.tif" wi="15" he="7" img-content="math" img-format="tif" inline="yes"/></maths> du dictionnaire adaptatif D<sub>k</sub>(n).</p>
<p id="p0085" num="0085">Il reçoit en entrée le signal x'(n) et donne comme sortie, en passant par le module de décodage local 308, la valeur quantifiée <i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>) (où <i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>) est soit égale à <maths id="math0034" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0034" file="imgb0034.tif" wi="16" he="7" img-content="math" img-format="tif" inline="yes"/></maths> soit à <maths id="math0035" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>2</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mrow><mo>)</mo></mrow><mo>,</mo></mrow></math><img id="ib0035" file="imgb0035.tif" wi="18" he="7" img-content="math" img-format="tif" inline="yes"/></maths> en minimisant l'erreur quadratique entre x'(n) et <i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>)<i>.</i> Le dictionnaire adaptatif D<sub>k</sub>(n) contient donc directement la valeur quantifiée de sortie de l'étage k.</p>
<p id="p0086" num="0086">Le module 308 donne la valeur quantifiée du signal d'entrée par quantification inverse de l'indice <maths id="math0036" num=""><math display="inline"><mrow><msubsup><mrow><mi>I</mi></mrow><mrow><mi mathvariant="italic">enh</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0036" file="imgb0036.tif" wi="16" he="7" img-content="math" img-format="tif" inline="yes"/></maths> Au décodeur la même valeur est obtenue simplement en utilisant directement le quantificateur inverse de l'étage k et l'indice concaténé : <maths id="math0037" num=""><math display="inline"><mrow><msup><mrow><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>+</mo><msubsup><mrow><mi>y</mi></mrow><mrow><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0037" file="imgb0037.tif" wi="50" he="8" img-content="math" img-format="tif" inline="yes"/></maths></p>
<p id="p0087" num="0087">Ce signal quantifié est utilisé pour mettre à jour les mémoires du filtre de pondération W(z) de l'étage d'amélioration pour obtenir des mémoires qui correspond à une entrée <i>x</i>(<i>n</i>)<i>-x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>)<i>.</i> Typiquement on soustrait de la mémoire (ou des mémoires dans le cas du filtre type ARMA) plus récente(s) la valeur actuelle du signal décodé <i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>)<i>.</i></p>
<p id="p0088" num="0088">Ainsi, la quantification du signal <i>x(n)</i> se fait dans le domaine pondéré, ce qui veut dire qu'on minimise l'erreur quadratique entre <i>x</i>(<i>n</i>) et <i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>) après filtrage par le filtre<!-- EPO <DP n="13"> --> W(<i>z</i>). Le bruit de quantification de l'étage d'amélioration est donc mis en forme par un filtre <i>1</i>/<i>W(z)</i> pour rendre ce bruit moins audible. L'énergie du bruit de quantification pondéré est ainsi minimisé.</p>
<p id="p0089" num="0089">Le mode de réalisation général du bloc 310 donné sur la <figref idref="f0003">figure 3</figref> montre le cas général où W (z) est un filtre de réponse impulsionnelle infinie (IIR, infinite impulse response) ou un filtre de réponse impulsionnelle finie (FIR, finite impulse response). On obtient le signal <i>x'</i>(<i>n</i>) en filtrant <i>x</i>(<i>n</i>) par <i>W</i>(<i>z</i>) puis quand la valeur quantifiée <i>x̃</i><sup><i>B</i>+</sup><i><sup>k</sup> (n)</i> est connue, les mémoires du filtre <i>W</i>(<i>z</i>) sont mises à jour comme si le filtrage avait été effectué sur le signal <i>x</i>(<i>n</i>)<i>-x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>)<i>.</i></p>
<p id="p0090" num="0090">La flèche en pointillés représente la mise à jour des mémoires du filtre.</p>
<p id="p0091" num="0091">Ainsi, les étapes mises en oeuvre dans le codeur tel que illustré en <figref idref="f0003">figure 3</figref> sont également représentées. On y retrouve en effet, les étapes suivantes:
<ul id="ul0007" list-style="dash" compact="compact">
<li>obtention en 303 de valeurs possibles de quantification <maths id="math0038" num=""><math display="inline"><mrow><mrow><mfenced separators=""><msubsup><mrow><mi>d</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mfenced></mrow></mrow></math><img id="ib0038" file="imgb0038.tif" wi="19" he="7" img-content="math" img-format="tif" inline="yes"/></maths> pour l'étage d'amélioration courant k par la détermination de niveaux de reconstruction absolus du seul étage courant k à partir des indices du codeur imbriqué précédent (<i>I</i><sup><i>B</i>+<i>k-</i>1</sup>);</li>
<li>quantification en 306 du signal d'entrée du codeur hiérarchique ayant subi ou non un traitement de pondération perceptuelle (x(n) ou x'(n)), à partir des dites valeurs possibles de quantification <maths id="math0039" num=""><math display="inline"><mrow><mrow><mfenced separators=""><msubsup><mrow><mi>d</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mfenced></mrow></mrow></math><img id="ib0039" file="imgb0039.tif" wi="20" he="7" img-content="math" img-format="tif" inline="yes"/></maths> pour former un indice de quantification de l'étage k (I<sub>enb</sub><sup>B+k</sup>(n))</li>
</ul>
et un signal quantifié (<i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>)) correspondant à une des valeurs possibles de quantification;</p>
<p id="p0092" num="0092">Dans le cas représenté en <figref idref="f0003">figure 3</figref>, le signal d'entrée a subi un traitement de pondération perceptuelle en 310 utilisant un filtre de pondération prédéterminé en 301 pour donner un signal d'entrée modifié x'(n), avant l'étape de quantification en 306. La <figref idref="f0003">figure 3</figref> représente également l'étape d'adaptation en 311 des mémoires du filtre de pondération à partir du signal quantifié (<i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>)) de l'étage de codage d'amélioration courant.</p>
<p id="p0093" num="0093">Les <figref idref="f0004">figures 4</figref>, <figref idref="f0005">5</figref> et <figref idref="f0006">6</figref> décrivent à présent des modes de réalisation particuliers du bloc 310 de prétraitement.</p>
<p id="p0094" num="0094">Les blocs 301, 302, 303, 306, 307 et 308 restent alors identiques à ceux décrits en référence à la <figref idref="f0003">figure 3</figref>.</p>
<p id="p0095" num="0095">La <figref idref="f0004"><b>figure 4</b></figref> représente un premier mode de réalisation du bloc 310 de prétraitement avec un filtre <i>W</i>(<i>z</i>) = <i>A'</i>(<i>z</i>) à réponse impulsionnelle finie (FIR pour Finite impulse response en anglais).<!-- EPO <DP n="14"> --></p>
<p id="p0096" num="0096">Dans ce mode de réalisation, la mémoire du filtre contient uniquement les échantillons d'entrée passés du signal <i>x</i>(<i>n</i>)<i>-x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>)<i>,</i> notés: <maths id="math0040" num=""><math display="block"><mrow><msup><mrow><mi>b</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup><mfenced><mi mathvariant="italic">nʹ</mi></mfenced><mo>,</mo><mspace width="1em"/><mrow><mspace width="1em"/></mrow><mi mathvariant="italic">nʹ</mi><mo>=</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>,</mo><mo>…</mo><mo>,</mo><mi>n</mi><mo>-</mo><msub><mi>N</mi><mi>D</mi></msub><mn>.</mn></mrow></math><img id="ib0040" file="imgb0040.tif" wi="54" he="6" img-content="math" img-format="tif"/></maths> <i>N<sub>D</sub></i> étant l'ordre du filtre perceptuel <i>W</i>(<i>z</i>).</p>
<p id="p0097" num="0097">En 302, le signal d'entrée <i>x</i>(<i>n</i>) est codé par le module de codage MIC/MICDA 302, avec ou sans mise en forme du bruit de codage du codeur imbriqué B+k-1,</p>
<p id="p0098" num="0098">En 303, un dictionnaire adaptatif <i>D<sub>k</sub></i> est construit en fonction des valeurs de prédiction <maths id="math0041" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>,</mo></mrow></math><img id="ib0041" file="imgb0041.tif" wi="13" he="8" img-content="math" img-format="tif" inline="yes"/></maths> du facteur d'échelle <i>v</i>(<i>n</i>) de l'étage coeur dans le cas d'un codage de type adaptatif MICDA et des indices de codage <i>I</i><sup><i>B</i>+<i>k-1</i></sup>(<i>n</i>) comme expliqué en référence à la <figref idref="f0003">figure 3</figref>. Le dictionnaire adaptatif D<sub>k</sub> comporte dans le mode de réalisation particulier ou un seul bit d'amélioration est prévu dans l'étage d'amélioration k, les deux termes suivants: <maths id="math0042" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>+</mo><msubsup><mrow><mi>y</mi></mrow><mrow><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0042" file="imgb0042.tif" wi="53" he="9" img-content="math" img-format="tif" inline="yes"/></maths>et <maths id="math0043" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>2</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>+</mo><msubsup><mrow><mi>y</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0043" file="imgb0043.tif" wi="56" he="8" img-content="math" img-format="tif" inline="yes"/></maths></p>
<p id="p0099" num="0099">Dans ce mode de réalisation, on retrouve les étapes de calcul en 301 du filtre de masquage et de détermination du filtre de pondération <i>W</i>(<i>z</i>), ainsi que sa version prédictive <i>W<sub>PRED</sub></i>(<i>z</i>) basée sur des prédictions, c'est-à-dire des calculs utilisant uniquement des échantillons passés.</p>
<p id="p0100" num="0100">Rappelons ici la définition d'un filtre prédictif:
<ul id="ul0008" list-style="none" compact="compact">
<li>Prenons comme exemple le cas d'un filtrage d'un signal x(n) par le filtre non récursif de fonction de transfert tout-zéro (aussi dit FIR pour <i>Finite Impulse Response</i> en anglais (Filtre à réponse impulsionnelle finie)) <i>A</i>(<i>z</i>) d'ordre 4, <maths id="math0044" num=""><math display="inline"><mrow><mi>A</mi><mfenced><mi>z</mi></mfenced><mo>=</mo><mn>1</mn><mo>+</mo><mrow><mstyle displaystyle="true"><mrow><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mn>4</mn></mrow></munderover></mrow></mstyle><mrow><msub><mi>a</mi><mi>i</mi></msub><mo>⁢</mo><msup><mrow><mi>z</mi></mrow><mrow><mo>-</mo><mi>i</mi></mrow></msup></mrow></mrow><mo>,</mo></mrow></math><img id="ib0044" file="imgb0044.tif" wi="35" he="11" img-content="math" img-format="tif" inline="yes"/></maths> donnant pour résultat un signal <i>y</i>(<i>n</i>). Dans le domaine de la transformée en z, l'équation <maths id="math0045" num=""><math display="block"><mrow><mi>Y</mi><mfenced><mi>z</mi></mfenced><mo>=</mo><mi>A</mi><mfenced><mi>z</mi></mfenced><mo>⁢</mo><mi>X</mi><mfenced><mi>z</mi></mfenced></mrow></math><img id="ib0045" file="imgb0045.tif" wi="34" he="6" img-content="math" img-format="tif"/></maths><br/>
correspond à l'équation aux différences <maths id="math0046" num=""><math display="block"><mrow><mi>y</mi><mfenced><mi>n</mi></mfenced><mo>=</mo><msub><mrow><mi>a</mi></mrow><mrow><mn>0</mn></mrow></msub><mo>⁢</mo><mi>x</mi><mfenced><mi>n</mi></mfenced><mo>+</mo><msub><mrow><mi>a</mi></mrow><mrow><mn>1</mn></mrow></msub><mo>⁢</mo><mi>x</mi><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mn>1</mn></mfenced><mo>+</mo><msub><mrow><mi>a</mi></mrow><mrow><mn>2</mn></mrow></msub><mo>⁢</mo><mi>x</mi><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mn>2</mn></mfenced><mo>+</mo><msub><mrow><mi>a</mi></mrow><mrow><mn>3</mn></mrow></msub><mo>⁢</mo><mi>x</mi><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mn>3</mn></mfenced><mo>+</mo><msub><mrow><mi>a</mi></mrow><mrow><mn>4</mn></mrow></msub><mo>⁢</mo><mi>x</mi><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mn>4</mn></mfenced></mrow></math><img id="ib0046" file="imgb0046.tif" wi="111" he="6" img-content="math" img-format="tif"/></maths></li>
</ul></p>
<p id="p0101" num="0101">Cette expression de <i>y(n)</i> peut être divisée en deux parties :
<ul id="ul0009" list-style="dash" compact="compact">
<li>la première ne dépend que de l'entrée présente <i>x(n) : a</i><sub>0</sub><i>x</i>(n)<i>.</i> Le plus souvent et dans les cas qui nous intéressent dans ce document, a<sub>0</sub> = 1 .</li>
<li>la seconde qui ne dépend que l'entrée passée <i>x(n-i), i &gt; 0: a</i><sub>1</sub><i>x</i>(<i>n-</i>1)<i>+a</i><sub>2</sub><i>x</i>(<i>n-</i>2<i>)+a</i><sub>3</sub><i>x</i>(<i>n-</i>3)<i>+a<sub>4</sub>x</i>(<i>n-</i>4) qui sera donc considérée comme la partie prédictive du filtrage par analogie à la prédiction linéaire où elle représente la prédiction de x(n) à partir des échantillons précédents.</li>
</ul><!-- EPO <DP n="15"> --></p>
<p id="p0102" num="0102">Cette seconde partie correspond pour l'instant d'échantillonnage n à la « réponse à l'entrée nulle », ou en anglais « zéro input reponse » (ZIR) ou encore « ringing » qui est en fait une prédiction généralisée. La transformée en <i>z</i> de cette composante est : <i>Y<sub>PRED</sub></i>(<i>z</i>) <i>=</i> (<i>A</i>(<i>z</i>) <i>-1</i>) <i>X</i>(z<i>) = H<sub>A,PRED</sub></i>(<i>z</i>) <i>X</i>(<i>z</i>) avec <i>H<sub>A,PRED</sub></i>(<i>z</i>) <i>= A</i>(<i>z</i>)<i>-</i>1</p>
<p id="p0103" num="0103">De façon similaire, pour le filtrage d'un signal x(n) par un filtre récursif tout-pôle d'ordre 4 avec <maths id="math0047" num=""><math display="inline"><mrow><mi>B</mi><mfenced><mi>z</mi></mfenced><mo>=</mo><mn>1</mn><mo>+</mo><mrow><mstyle displaystyle="true"><mrow><munderover><mrow><mo>∑</mo></mrow><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mn>4</mn></mrow></munderover></mrow></mstyle><mrow><msub><mi>b</mi><mi>i</mi></msub><mo>⁢</mo><msup><mrow><mi>z</mi></mrow><mrow><mo>-</mo><mi>i</mi></mrow></msup></mrow></mrow><mo>,</mo></mrow></math><img id="ib0047" file="imgb0047.tif" wi="36" he="11" img-content="math" img-format="tif" inline="yes"/></maths> résultant en un signal <i>y</i>(<i>n</i>), la fonction de transfert donne : <maths id="math0048" num=""><math display="block"><mrow><mi>Y</mi><mfenced><mi>z</mi></mfenced><mo>=</mo><mfrac><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mfenced><mi>z</mi></mfenced></mrow></mfrac><mo>⁢</mo><mi>X</mi><mfenced><mi>z</mi></mfenced></mrow></math><img id="ib0048" file="imgb0048.tif" wi="34" he="11" img-content="math" img-format="tif"/></maths><br/>
avec comme équation aux différences : <maths id="math0049" num=""><math display="block"><mrow><mi>y</mi><mfenced><mi>n</mi></mfenced><mo>=</mo><mi>x</mi><mfenced><mi>n</mi></mfenced><mo>-</mo><msub><mrow><mi>b</mi></mrow><mrow><mn>1</mn></mrow></msub><mo>⁢</mo><mi>y</mi><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mn>1</mn></mfenced><mo>-</mo><msub><mrow><mi>b</mi></mrow><mrow><mn>2</mn></mrow></msub><mo>⁢</mo><mi>y</mi><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mn>2</mn></mfenced><mo>-</mo><msub><mrow><mi>b</mi></mrow><mrow><mn>3</mn></mrow></msub><mo>⁢</mo><mi>y</mi><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mn>3</mn></mfenced><mo>-</mo><msub><mrow><mi>b</mi></mrow><mrow><mn>4</mn></mrow></msub><mo>⁢</mo><mi>y</mi><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mn>4</mn></mfenced></mrow></math><img id="ib0049" file="imgb0049.tif" wi="129" he="6" img-content="math" img-format="tif"/></maths></p>
<p id="p0104" num="0104">La partie innovation est <i>x(n),</i> la partie prédictive est <i>-b</i><sub>1</sub><i>y</i>(<i>n-</i>1)<i>-b</i><sub>2</sub><i>y</i>(<i>n-</i>2)<i>-b</i><sub>3</sub><i>y</i>(<i>n-</i>3)<i>-b</i><sub>4</sub><i>y</i>(<i>n-</i>4)<i>,</i> de transformée en z <i>Y<sub>PRED</sub></i>(<i>z</i>)<i>=-</i>(<i>B</i>(<i>z</i>)<i>-</i>1)<i>Y</i>(<i>z</i>)=(1<i>-B</i>(<i>z</i>))<i>Y</i>(<i>z</i>)<i>.</i></p>
<p id="p0105" num="0105">Il en est de même pour le cas où le filtre contient à la fois des zéros et des pôles (filtre ARMA pour AutoRegressive Moving Average) : <maths id="math0050" num=""><math display="block"><mrow><mi>Y</mi><mfenced><mi>z</mi></mfenced><mo>=</mo><mfrac><mrow><mi>A</mi><mfenced><mi>z</mi></mfenced></mrow><mrow><mi>B</mi><mfenced><mi>z</mi></mfenced></mrow></mfrac><mo>⁢</mo><mi>X</mi><mfenced><mi>z</mi></mfenced></mrow></math><img id="ib0050" file="imgb0050.tif" wi="35" he="12" img-content="math" img-format="tif"/></maths><br/>
avec comme équation aux différences (dans cet exemple <i>A</i>(<i>z</i>) et <i>B</i>(<i>z</i>) sont d'ordre 4) : <maths id="math0051" num=""><math display="block"><mrow><mi>y</mi><mfenced><mi>n</mi></mfenced><mo>=</mo><mi>x</mi><mfenced><mi>n</mi></mfenced><mo>+</mo><mrow><mstyle displaystyle="true"><mrow><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mn>4</mn></mrow></munderover></mrow></mstyle><mrow><msub><mi>a</mi><mi>i</mi></msub><mo>⁢</mo><mi>x</mi><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mi>i</mi></mfenced></mrow></mrow><mo>-</mo><mstyle displaystyle="true"><mrow><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mn>4</mn></mrow></munderover></mrow></mstyle><mrow><msub><mi>b</mi><mi>i</mi></msub><mo>⁢</mo><mi>y</mi><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mi>i</mi></mfenced></mrow></mrow></math><img id="ib0051" file="imgb0051.tif" wi="81" he="11" img-content="math" img-format="tif"/></maths></p>
<p id="p0106" num="0106">La partie innovation est <i>x(n),</i> la partie prédictive est <maths id="math0052" num=""><math display="inline"><mrow><mstyle displaystyle="true"><mrow><munderover><mrow><mo>∑</mo></mrow><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mn>4</mn></mrow></munderover></mrow></mstyle><mrow><msub><mi>a</mi><mi>i</mi></msub><mo>⁢</mo><mi>x</mi><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mi>i</mi></mfenced></mrow><mo>-</mo><mstyle displaystyle="true"><mrow><munderover><mrow><mo>∑</mo></mrow><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mn>4</mn></mrow></munderover></mrow></mstyle><mrow><msub><mi>b</mi><mi>i</mi></msub><mo>⁢</mo><mi>y</mi><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mi>i</mi></mfenced></mrow><mo>,</mo></mrow></math><img id="ib0052" file="imgb0052.tif" wi="52" he="11" img-content="math" img-format="tif" inline="yes"/></maths> de transformée en <i>z Y<sub>PRED</sub></i>(<i>z</i>)<i>=</i>(<i>A</i>(<i>z</i>)<i>-</i>1)<i>X</i>(<i>z</i>)-(<i>B</i>(<i>z</i>)<i>-</i>1)<i>F</i>(<i>z</i>)<i>,</i> ou <maths id="math0053" num=""><math display="inline"><mrow><msub><mi>Y</mi><mi mathvariant="italic">PREB</mi></msub><mfenced><mi>z</mi></mfenced><mo>=</mo><mfrac><mrow><mi>A</mi><mfenced><mi>z</mi></mfenced><mo>-</mo><mn>1</mn></mrow><mrow><mi>B</mi><mfenced><mi>z</mi></mfenced></mrow></mfrac><mo>⁢</mo><mi>X</mi><mfenced><mi>z</mi></mfenced><mo>=</mo><msub><mrow><mi>H</mi></mrow><mrow><mi mathvariant="italic">AB</mi><mo>,</mo><mi mathvariant="italic">PRED</mi></mrow></msub><mfenced><mi>z</mi></mfenced><mo>⁢</mo><mi>X</mi><mfenced><mi>z</mi></mfenced><mspace width="1em"/><mi>avec</mi><mspace width="1em"/><msub><mrow><mi>H</mi></mrow><mrow><mi mathvariant="italic">AB</mi><mo>,</mo><mi mathvariant="italic">PRED</mi></mrow></msub><mfenced><mi>z</mi></mfenced><mo>=</mo><mfrac><mrow><mi>A</mi><mfenced><mi>z</mi></mfenced><mo>-</mo><mn>1</mn></mrow><mrow><mi>B</mi><mfenced><mi>z</mi></mfenced></mrow></mfrac><mn>.</mn></mrow></math><img id="ib0053" file="imgb0053.tif" wi="133" he="13" img-content="math" img-format="tif" inline="yes"/></maths></p>
<p id="p0107" num="0107">Dans la suite, de façon générale <i>H<sub>PRED</sub></i>(z) dénote un filtre dont le coefficient pour son entrée actuel <i>x</i>(<i>n</i>) est zéro.</p>
<p id="p0108" num="0108">Les filtres récursifs tout-pôle <maths id="math0054" num=""><math display="inline"><mrow><mfrac><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mfenced><mi>z</mi></mfenced></mrow></mfrac></mrow></math><img id="ib0054" file="imgb0054.tif" wi="11" he="12" img-content="math" img-format="tif" inline="yes"/></maths>ou ARMA <maths id="math0055" num=""><math display="inline"><mrow><mfrac><mrow><mi>A</mi><mfenced><mi>z</mi></mfenced></mrow><mrow><mi>B</mi><mfenced><mi>z</mi></mfenced></mrow></mfrac></mrow></math><img id="ib0055" file="imgb0055.tif" wi="12" he="14" img-content="math" img-format="tif" inline="yes"/></maths> sont les filtres dit TIR pour <i>Infinite Impulse Response</i> en anglais (Filtre à réponse impulsionnelle infinie).<!-- EPO <DP n="16"> --></p>
<p id="p0109" num="0109">Dans le cas présent, en <figref idref="f0004">figure 4</figref>, en utilisant le découpage d'un filtrage en parties innovation et prédictive, le terme dont l'énergie est à minimiser est alors: <maths id="math0056" num=""><math display="block"><mrow><mfenced separators=""><mi>x</mi><mfenced><mi>n</mi></mfenced><mo>+</mo><msub><mi>x</mi><mi mathvariant="italic">PRED</mi></msub><mfenced><mi>n</mi></mfenced></mfenced><mo>-</mo><mfenced separators=""><msup><mrow><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup><mfenced><mi>n</mi></mfenced><mo>+</mo><msubsup><mrow><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover></mrow><mrow><mi mathvariant="italic">PRED</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mfenced></mrow></math><img id="ib0056" file="imgb0056.tif" wi="71" he="7" img-content="math" img-format="tif"/></maths></p>
<p id="p0110" num="0110">Le signal à quantifier par le quantificateur d'amélioration de l'étage k est donc <maths id="math0057" num=""><math display="block"><mrow><mi mathvariant="italic">xʹ</mi><mfenced><mi>n</mi></mfenced><mo>=</mo><mi>x</mi><mfenced><mi>n</mi></mfenced><mo>+</mo><msub><mi>x</mi><mi mathvariant="italic">PRED</mi></msub><mfenced><mi>n</mi></mfenced><mo>-</mo><msubsup><mrow><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover></mrow><mrow><mi mathvariant="italic">PRED</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0057" file="imgb0057.tif" wi="61" he="6" img-content="math" img-format="tif"/></maths><br/>
ou <i>X<sub>PRED</sub></i>(<i>n</i>) et <maths id="math0058" num=""><math display="inline"><mrow><msubsup><mrow><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover></mrow><mrow><mi mathvariant="italic">PRED</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0058" file="imgb0058.tif" wi="16" he="6" img-content="math" img-format="tif" inline="yes"/></maths> sont obtenus en filtrant <i>x</i>(<i>n</i>) et <maths id="math0059" num=""><math display="inline"><mrow><msup><mrow><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0059" file="imgb0059.tif" wi="14" he="6" img-content="math" img-format="tif" inline="yes"/></maths> par le filtre de prédiction <i>W<sub>PRED</sub></i>(<i>z</i>)<i>.</i> Ces deux filtrages peuvent être combinés en un seul, l'entrée du filtre commun <i>W<sub>PRED</sub></i>(<i>z</i>) sera alors <i>b<sup>B+k</sup></i>(<i>n</i>) <i>= x</i>(<i>n</i>) <i>- x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>) (par exemple par la mise à jour des mémoire du filtre). En sortie du filtrage, on obtient alors: <maths id="math0060" num=""><math display="block"><mrow><msubsup><mrow><mi>b</mi></mrow><mrow><mi>w</mi><mo>,</mo><mi mathvariant="italic">PRED</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>=</mo><msub><mi>x</mi><mi mathvariant="italic">PRED</mi></msub><mfenced><mi>n</mi></mfenced><mo>-</mo><msubsup><mrow><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover></mrow><mrow><mi mathvariant="italic">PRED</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0060" file="imgb0060.tif" wi="58" he="6" img-content="math" img-format="tif"/></maths></p>
<p id="p0111" num="0111">Le module de prétraitement 310 met en oeuvre les étapes de calcul d'une prédiction <maths id="math0061" num=""><math display="inline"><mrow><msubsup><mrow><mi>b</mi></mrow><mrow><mi>w</mi><mo>,</mo><mi mathvariant="italic">PRED</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0061" file="imgb0061.tif" wi="20" he="7" img-content="math" img-format="tif" inline="yes"/></maths>en filtrant par <i>W<sub>PRED</sub></i>(<i>z</i>) en 404, des échantillons passés du signal <i>x</i>(<i>n</i>) <i>- x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>) = <i>b</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>) <i>n=-1,</i> -2, <i>...-N<sub>D</sub></i> obtenus en 409.</p>
<p id="p0112" num="0112">Cette prédiction <maths id="math0062" num=""><math display="inline"><mrow><msubsup><mrow><mi>b</mi></mrow><mrow><mi>w</mi><mo>,</mo><mi mathvariant="italic">PRED</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0062" file="imgb0062.tif" wi="19" he="7" img-content="math" img-format="tif" inline="yes"/></maths> est ajoutée au signal d'entrée <i>x</i>(<i>n</i>) en 405 pour obtenir le signal d'entrée modifié <i>x'</i>(<i>n</i>) du quantificateur de l'étage d'amélioration k.</p>
<p id="p0113" num="0113">La quantification de <i>x'</i>(<i>n</i>) s'effectue en 306 par le module de quantification de l'étage d'amélioration k, pour donner l'indice de quantification <maths id="math0063" num=""><math display="inline"><mrow><msubsup><mrow><mi>I</mi></mrow><mrow><mi mathvariant="italic">enh</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0063" file="imgb0063.tif" wi="15" he="7" img-content="math" img-format="tif" inline="yes"/></maths> de l'étage d'amélioration k et le signal décodé <i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>) de l'étage k. Le module 307 donne l'indice du mot de code <maths id="math0064" num=""><math display="inline"><mrow><msubsup><mrow><mi>I</mi></mrow><mrow><mi mathvariant="italic">enh</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0064" file="imgb0064.tif" wi="15" he="8" img-content="math" img-format="tif" inline="yes"/></maths>(1 bit dans l'exemple d'illustration) du dictionnaire adaptatif <i>D<sub>k</sub></i> qui minimise l'erreur quadratique entre <i>x'</i>(<i>n</i>) et les valeurs de quantification <maths id="math0065" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0065" file="imgb0065.tif" wi="15" he="8" img-content="math" img-format="tif" inline="yes"/></maths> et <maths id="math0066" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>2</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0066" file="imgb0066.tif" wi="17" he="8" img-content="math" img-format="tif" inline="yes"/></maths> Cet indice est à concaténer à l'indice du codeur imbriqué précédent <i>I</i><sup><i>B</i>+<i>k-</i>1</sup> pour obtenir au décodeur l'indice du mot code de l'étage k <i>I<sup>B+k</sup></i>. Le module 308 donne la valeur quantifiée du signal d'entrée par quantification inverse de l'indice <maths id="math0067" num=""><math display="inline"><mrow><msubsup><mrow><mi>I</mi></mrow><mrow><mi mathvariant="italic">enh</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>,</mo></mrow></math><img id="ib0067" file="imgb0067.tif" wi="19" he="8" img-content="math" img-format="tif" inline="yes"/></maths> <maths id="math0068" num=""><math display="inline"><mrow><msup><mrow><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>d</mi></mrow><mrow><mrow><msubsup><mrow><mi>I</mi></mrow><mrow><mi mathvariant="italic">enh</mi><mo>⁢</mo><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mrow></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0068" file="imgb0068.tif" wi="34" he="8" img-content="math" img-format="tif" inline="yes"/></maths></p>
<p id="p0114" num="0114">Au décodeur la même valeur est obtenue simplement en utilisant directement la quantification inverse de l'étage k et l'indice concaténée pour obtenir : <maths id="math0069" num=""><math display="inline"><mrow><msup><mrow><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>+</mo><msubsup><mrow><mi>y</mi></mrow><mrow><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0069" file="imgb0069.tif" wi="51" he="8" img-content="math" img-format="tif" inline="yes"/></maths><!-- EPO <DP n="17"> --></p>
<p id="p0115" num="0115">En 409, une étape de calcul du bruit de codage <i>b<sup>B+k</sup> (n)</i> du codeur incluant l'étage k est effectuée par soustraction du signal d'entrée <i>x</i>(<i>n</i>) au signal synthétisé de l'étage k <i>x̃<sup>B+k</sup></i>(<i>n</i>) pour les échantillons présents (<i>n=0</i>)<i>.</i></p>
<p id="p0116" num="0116">Les opérations de prétraitement du bloc 310 permettent ainsi de mettre en forme le bruit de codage d'amélioration de l'étage k en effectuant une pondération perceptuelle du signal d'entrée x(n). C'est le signal d'entrée lui-même qui est pondéré perceptuellement et non pas un signal d'erreur comme c'est le cas dans les méthodes de l'état de l'art.</p>
<p id="p0117" num="0117">La <figref idref="f0005"><b>figure 5</b></figref> illustre un autre exemple de réalisation du module de prétraitement en utilisant dans ce mode de réalisation un filtrage de type ARMA (pour Auto Regressif à Moyenne Ajustée) de fonction de transfert : <maths id="math0070" num=""><math display="block"><mrow><mi>W</mi><mfenced><mi>z</mi></mfenced><mo>=</mo><mfrac><mrow><mn>1</mn><mo>-</mo><msub><mi>P</mi><mi>D</mi></msub><mfenced><mi>z</mi></mfenced></mrow><mrow><mn>1</mn><mo>-</mo><msub><mi>P</mi><mi>N</mi></msub><mfenced><mi>z</mi></mfenced></mrow></mfrac></mrow></math><img id="ib0070" file="imgb0070.tif" wi="32" he="12" img-content="math" img-format="tif"/></maths></p>
<p id="p0118" num="0118">L'enchainement des opérations selon la <figref idref="f0005">figure 5</figref> est le suivant :
<ul id="ul0010" list-style="dash" compact="compact">
<li>Calcul en 301 du filtre de masquage et détermination du filtre de pondération <maths id="math0071" num=""><math display="block"><mrow><mi>W</mi><mfenced><mi>z</mi></mfenced><mo>=</mo><mfrac><mrow><mn>1</mn><mo>-</mo><msub><mi>P</mi><mi>D</mi></msub><mfenced><mi>z</mi></mfenced></mrow><mrow><mn>1</mn><mo>-</mo><msub><mi>P</mi><mi>N</mi></msub><mfenced><mi>z</mi></mfenced></mrow></mfrac><mo>;</mo></mrow></math><img id="ib0071" file="imgb0071.tif" wi="33" he="11" img-content="math" img-format="tif"/></maths></li>
<li>Codage en 302 du signal d'entrée <i>x</i>(<i>n</i>) par un codeur imbriqué de type MIC/MICDA de B+k-1 bits, éventuellement avec mise en forme du bruit de codage en utilisant le filtre de masquage déterminé en 301 pour mettre en forme le bruit de codage;</li>
<li>Détermination en 303 du dictionnaire adaptatif <i>D<sub>k</sub></i> en fonction des valeurs de prédiction <maths id="math0072" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0072" file="imgb0072.tif" wi="12" he="8" img-content="math" img-format="tif" inline="yes"/></maths> et de facteur d'échelle <i>v</i>(<i>n</i>) (dans le cas d'un codage MICDA) de l'étage coeur, et des indices de quantification <i>I</i><sup><i>B+k</i>-1</sup>(<i>n</i>) <maths id="math0073" num=""><math display="inline"><mrow><mrow><mo>(</mo></mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>+</mo><msubsup><mrow><mi>y</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0073" file="imgb0073.tif" wi="57" he="8" img-content="math" img-format="tif" inline="yes"/></maths>et <maths id="math0074" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>2</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>+</mo><msubsup><mrow><mi>y</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced><mrow><mo>)</mo></mrow><mo>;</mo></mrow></math><img id="ib0074" file="imgb0074.tif" wi="58" he="8" img-content="math" img-format="tif" inline="yes"/></maths></li>
</ul></p>
<p id="p0119" num="0119">Ces étapes sont équivalentes à celle décrites en référence à la <figref idref="f0003">figure 3</figref>.</p>
<p id="p0120" num="0120">Le module de prétraitement 310 comporte une étape de calcul en 512 d'un signal de prédiction <maths id="math0075" num=""><math display="inline"><mrow><msubsup><mrow><mi mathvariant="italic">b</mi></mrow><mrow><mi mathvariant="italic">w</mi><mo>,</mo><mi mathvariant="italic">pred</mi></mrow><mrow><mi mathvariant="italic">B</mi><mo>+</mo><mi mathvariant="italic">k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0075" file="imgb0075.tif" wi="17" he="6" img-content="math" img-format="tif" inline="yes"/></maths> du bruit de quantification filtré <maths id="math0076" num=""><math display="inline"><mrow><msubsup><mrow><mi mathvariant="italic">b</mi></mrow><mrow><mi mathvariant="italic">w</mi></mrow><mrow><mi mathvariant="italic">B</mi><mo>+</mo><mi mathvariant="italic">k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>,</mo></mrow></math><img id="ib0076" file="imgb0076.tif" wi="16" he="7" img-content="math" img-format="tif" inline="yes"/></maths> en ajoutant la prédiction calculée en 510 à partir des échantillons du bruit reconstitué filtré <maths id="math0077" num=""><math display="inline"><mrow><mrow><mstyle displaystyle="true"><mrow><munderover><mo>∑</mo><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mrow><msub><mi>N</mi><mi>D</mi></msub></mrow></munderover></mrow></mstyle><mrow><msub><mi>p</mi><mi>N</mi></msub></mrow></mrow><mfenced><mi>m</mi></mfenced><mo>⁢</mo><msubsup><mrow><mi>b</mi></mrow><mrow><mi>w</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mi>m</mi></mfenced></mrow></math><img id="ib0077" file="imgb0077.tif" wi="40" he="12" img-content="math" img-format="tif" inline="yes"/></maths> et en retranchant la prédiction calculée en 511 à partir du bruit reconstitué <maths id="math0078" num=""><math display="inline"><mrow><mrow><mstyle displaystyle="true"><mrow><munderover><mrow><mo>∑</mo></mrow><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mrow><msub><mi>N</mi><mi>D</mi></msub></mrow></munderover></mrow></mstyle><mrow><msub><mi>p</mi><mi>D</mi></msub></mrow></mrow><mfenced><mi>m</mi></mfenced><mo>⁢</mo><msup><mrow><mi>b</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup><mo>⁢</mo><mfenced separators=""><mi>n</mi><mo>-</mo><mi>m</mi></mfenced><mn>.</mn></mrow></math><img id="ib0078" file="imgb0078.tif" wi="40" he="12" img-content="math" img-format="tif" inline="yes"/></maths><!-- EPO <DP n="18"> --></p>
<p id="p0121" num="0121">En 505, une étape d'addition du signal de prédiction <maths id="math0079" num=""><math display="inline"><mrow><msubsup><mrow><mi>b</mi></mrow><mrow><mi>w</mi><mo>,</mo><mi mathvariant="italic">pred</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0079" file="imgb0079.tif" wi="17" he="8" img-content="math" img-format="tif" inline="yes"/></maths> au signal <i>x</i>(<i>n</i>) est effectuée pour donner le signal modifié <i>x</i>'(<i>n</i>).</p>
<p id="p0122" num="0122">L'étape de quantification du signal modifié <i>x'</i>(<i>n</i>) est effectuée par le module de quantification 306, de la même manière que celle expliqué en référence aux <figref idref="f0003">figures 3</figref> et <figref idref="f0004">4</figref>.</p>
<p id="p0123" num="0123">Ainsi, la quantification du bloc 306 donne en sortie l'indice <maths id="math0080" num=""><math display="inline"><mrow><msubsup><mrow><mi>I</mi></mrow><mrow><mi mathvariant="italic">enh</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0080" file="imgb0080.tif" wi="15" he="8" img-content="math" img-format="tif" inline="yes"/></maths> et le signal décodé à l'étage k <i>x̃<sup>B+k</sup></i>(<i>n</i>)<i>.</i></p>
<p id="p0124" num="0124">En 509, une étape de soustraction du signal reconstruit <i>x̃</i><sup><i>B</i>+</sup><i><sup>k</sup> (n)</i> au signal <i>x</i>(<i>n</i>) est effectué, pour donner le bruit reconstruit <i>b<sup>B+k</sup></i>(<i>n</i>)<i>.</i></p>
<p id="p0125" num="0125">En 513, une étape d'addition du signal de prédiction <maths id="math0081" num=""><math display="inline"><mrow><msubsup><mrow><mi>b</mi></mrow><mrow><mi>w</mi><mo>,</mo><mi mathvariant="italic">pred</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0081" file="imgb0081.tif" wi="17" he="8" img-content="math" img-format="tif" inline="yes"/></maths> au signal <i>b<sup>B+k</sup></i>(<i>n</i>) est effectué pour donner le bruit reconstruit filtré <maths id="math0082" num=""><math display="inline"><mrow><msubsup><mrow><mi>b</mi></mrow><mrow><mi>w</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0082" file="imgb0082.tif" wi="16" he="7" img-content="math" img-format="tif" inline="yes"/></maths></p>
<p id="p0126" num="0126">Toutes les étapes effectuées en 505, 509, 510, 511, 512 et 513 par les modules du bloc de prétraitement 310, permettent de mettre en forme le bruit de codage pour l'étage de codage d'amélioration k. Cette mise en forme du bruit est alors effectué par deux filtres de prédiction constituant ainsi un filtre ARMA qui apporte une meilleure précision de mise en forme du bruit.</p>
<p id="p0127" num="0127">La <figref idref="f0006"><b>figure 6</b></figref> illustre encore un autre mode de réalisation du bloc de prétraitement 310 où ici la différence réside dans la façon dont le signal reconstruit filtré <maths id="math0083" num=""><math display="inline"><mrow><msubsup><mrow><mi>b</mi></mrow><mrow><mi>w</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0083" file="imgb0083.tif" wi="15" he="7" img-content="math" img-format="tif" inline="yes"/></maths> est calculé. Le bruit reconstruit filtré <maths id="math0084" num=""><math display="inline"><mrow><msubsup><mrow><mi>b</mi></mrow><mrow><mi>w</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0084" file="imgb0084.tif" wi="14" he="8" img-content="math" img-format="tif" inline="yes"/></maths> est obtenu ici en soustrayant le signal reconstruit <i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>) du signal <i>x'</i>(<i>n</i>) en 614.</p>
<p id="p0128" num="0128">Dans les <figref idref="f0005">figures 5</figref> et <figref idref="f0006">6</figref> décrites ci-dessus, on peut parler également de mise à jour des mémoires des filtres de pondération à partir du signal de bruit reconstruit filtré <maths id="math0085" num=""><math display="inline"><mrow><msubsup><mrow><mi>b</mi></mrow><mrow><mi>w</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0085" file="imgb0085.tif" wi="15" he="8" img-content="math" img-format="tif" inline="yes"/></maths> pour les échantillons passés.</p>
<p id="p0129" num="0129">La <figref idref="f0007"><b>figure 7</b></figref> illustre une alternative de réalisation pour l'étape de quantification 306 du signal <i>x'</i>(<i>n</i>) en traitant différemment le signal prédit <maths id="math0086" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0086" file="imgb0086.tif" wi="12" he="8" img-content="math" img-format="tif" inline="yes"/></maths> provenant du codage coeur. Ce mode de réalisation est présenté avec l'exemple de bloc de prétraitement 310 présenté à la <figref idref="f0003">figure 3</figref>, mais peut bien évidement s'intégrer avec des blocs de prétraitement décrits aux <figref idref="f0004">figures 4</figref>, <figref idref="f0005">5</figref> et <figref idref="f0006">6</figref>. L'enchainement des opérations selon la <figref idref="f0007">figure 7</figref> est le suivant :
<ul id="ul0011" list-style="dash" compact="compact">
<li>Calcul en 301 du filtre de masquage et détermination du filtre de pondération <i>W</i>(<i>z</i>) ou de sa version prédictive <i>W<sub>PRED</sub></i>(<i>z</i>)<i>.</i><!-- EPO <DP n="19"> --></li>
<li>Codage en 302 du signal d'entrée <i>x</i>(<i>n</i>)<i>,</i> par un codeur imbriqué de type MIC/MICDA de B+k-1 bits, éventuellement avec mise en forme du bruit de codage en utilisant le filtre de masquage déterminé en 301 pour mettre en forme du bruit de codage;</li>
<li>Détermination en 701 du dictionnaire adaptatif <i>D<sub>k</sub></i>' en fonction du facteur d'échelle <i>v</i>(<i>n</i>) de l'étage coeur (dans le cas d'un codage MICDA) et des indices de quantification <i>I</i><sup><i>B+k</i>-1</sup>(<i>n</i>) du codage imbriqué précédent l'étage k <maths id="math0087" num=""><math display="inline"><mrow><mrow><mo>(</mo></mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mrow><mi>ʹ</mi></mrow></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>y</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0087" file="imgb0087.tif" wi="41" he="9" img-content="math" img-format="tif" inline="yes"/></maths> et <maths id="math0088" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>2</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mrow><mi>ʹ</mi></mrow></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>y</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced><mrow><mo>)</mo></mrow><mo>;</mo></mrow></math><img id="ib0088" file="imgb0088.tif" wi="45" he="8" img-content="math" img-format="tif" inline="yes"/></maths></li>
<li>Filtrage du signal <i>x</i>(<i>n</i>) par <i>W</i>(<i>z</i>) en 311 pour obtenir le signal d'entrée modifié <i>x'</i>(<i>n</i>) du quantificateur d'amélioration avec pour mémoires du filtre <i>W</i>(<i>z</i>) des valeurs correspondant à un signal d'entrée <i>x</i>(<i>n</i>)<i>-x̃</i><sub><i>B</i>+<i>k</i></sub>(<i>n</i>);</li>
<li>Quantification de <i>x'</i>(<i>n</i>) en 706 pour donner l'indice <maths id="math0089" num=""><math display="inline"><mrow><msubsup><mrow><mi>I</mi></mrow><mrow><mi mathvariant="italic">enh</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0089" file="imgb0089.tif" wi="15" he="7" img-content="math" img-format="tif" inline="yes"/></maths> et le signal décodé à l' étage k <i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>)<i>.</i></li>
</ul></p>
<p id="p0130" num="0130">Dans ce mode de réalisation, le signal prédit <maths id="math0090" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0090" file="imgb0090.tif" wi="11" he="8" img-content="math" img-format="tif" inline="yes"/></maths> de l'étage coeur est soustrait du signal <i>x'</i>(<i>n</i>) (module 702) pour obtenir le signal modifié <maths id="math0091" num=""><math display="inline"><mrow><mi>x</mi><mrow><mrow><mi>ʹ</mi></mrow><mi>ʹ</mi></mrow><mfenced><mi>n</mi></mfenced><mo>=</mo><mi>x</mi><mrow><mi>ʹ</mi></mrow><mfenced><mi>n</mi></mfenced><mo>-</mo><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0091" file="imgb0091.tif" wi="40" he="9" img-content="math" img-format="tif" inline="yes"/></maths></p>
<p id="p0131" num="0131">Le module 707 donne l'indice du mot de code <maths id="math0092" num=""><math display="inline"><mrow><msubsup><mrow><mi>I</mi></mrow><mrow><mi mathvariant="italic">enh</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0092" file="imgb0092.tif" wi="14" he="7" img-content="math" img-format="tif" inline="yes"/></maths> (1 bit dans l'exemple d'illustration) du dictionnaire adaptatif <i>D<sub>k</sub>'</i> qui minimise l'erreur quadratique entre <i>x"</i>(<i>n</i>) et les mots de code <maths id="math0093" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mrow><mi>ʹ</mi></mrow></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0093" file="imgb0093.tif" wi="17" he="9" img-content="math" img-format="tif" inline="yes"/></maths> et <maths id="math0094" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>2</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mrow><mi>ʹ</mi></mrow></mrow></msubsup><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0094" file="imgb0094.tif" wi="18" he="8" img-content="math" img-format="tif" inline="yes"/></maths> Cet indice est à concaténer à l'indice du codage imbriqué précédent <i>I</i><sup><i>B</i>+<i>k</i>-1</sup> pour obtenir au décodeur l'indice du codage imbriqué courant <i>I</i><sup><i>B</i>+<i>k</i></sup> comprenant l'étage k.</p>
<p id="p0132" num="0132">Le module 708 donne la valeur quantifiée du signal <i>x</i>"(<i>n</i>) par quantification inverse de l'indice <maths id="math0095" num=""><math display="inline"><mrow><mrow><msubsup><mrow><mi>I</mi></mrow><mrow><mi mathvariant="italic">enh</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow><mo>,</mo><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover><mrow><mrow><mi>ʹ</mi></mrow><mi>ʹ</mi></mrow><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>d</mi></mrow><mrow><msubsup><mrow><mi>I</mi></mrow><mrow><mi mathvariant="italic">enh</mi><mo>⁢</mo><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mrow><mi>ʹ</mi></mrow><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0095" file="imgb0095.tif" wi="49" he="10" img-content="math" img-format="tif" inline="yes"/></maths> Le module 703 calcule le signal quantifié de l'étage k en additionnant le signal prédit au signal de sortie du quantificateur <maths id="math0096" num=""><math display="inline"><mrow><msup><mrow><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup><mfenced><mi>n</mi></mfenced><mo>=</mo><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>+</mo><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover><mrow><mrow><mi>ʹ</mi></mrow><mi>ʹ</mi></mrow><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0096" file="imgb0096.tif" wi="45" he="8" img-content="math" img-format="tif" inline="yes"/></maths></p>
<p id="p0133" num="0133">Enfin, une étape de mise à jour des mémoires du filtre W(<i>z</i>) est effectuée en 311, pour obtenir des mémoires qui correspondent à une entrée <i>x</i>(<i>n</i>)<i>-x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>)<i>.</i> Typiquement on soustrait de la mémoire (ou des mémoires dans le cas du filtre type ARMA) plus récente(s) la valeur actuelle du signal décodé <i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>)<i>.</i><!-- EPO <DP n="20"> --></p>
<p id="p0134" num="0134">La solution sur la <figref idref="f0007">figure 7</figref> est équivalente en termes de qualité et de stockage à celle de la <figref idref="f0003">figure 3</figref>, mais nécessite moins de calculs dans le cas où l'étage d'amélioration utilise plus qu'un bit. En effet, à la place d'additionner la valeur prédite <maths id="math0097" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0097" file="imgb0097.tif" wi="12" he="7" img-content="math" img-format="tif" inline="yes"/></maths>à tous les mots de code (&gt;2) on ne fait qu'une soustraction avant la quantification et qu'une addition pour retrouver la valeur quantifiée <i>x̃<sup>B+k</sup></i>(<i>n</i>)<i>.</i> La complexité est donc réduite.</p>
<p id="p0135" num="0135">Une autre alternative de réalisation est illustrée en <figref idref="f0008"><b>figure 7b</b></figref><b>.</b> Ici, le dictionnaire adaptatif <i>D<sub>k</sub></i> "est construit en soustrayant les niveaux de reconstruction de l'étage k pondérés le cas échéant par le facteur d'échelle <i>v</i>(<i>n</i>)<i>,</i> au signal d'entrée modifié <maths id="math0098" num=""><math display="inline"><mrow><mrow><mo>(</mo></mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mrow><mrow><mi>ʹ</mi></mrow><mi>ʹ</mi></mrow></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>=</mo><mi>x</mi><mrow><mi>ʹ</mi></mrow><mfenced><mi>n</mi></mfenced><mo>-</mo><msubsup><mrow><mi>y</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0098" file="imgb0098.tif" wi="57" he="8" img-content="math" img-format="tif" inline="yes"/></maths> et <maths id="math0099" num=""><math display="inline"><mrow><msubsup><mrow><mi>d</mi></mrow><mrow><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mrow><mrow><mi>ʹ</mi></mrow><mi>ʹ</mi></mrow></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>=</mo><mi>x</mi><mrow><mi>ʹ</mi></mrow><mfenced><mi>n</mi></mfenced><mo>-</mo><msubsup><mrow><mi>y</mi></mrow><mrow><mn>2</mn><mo>⁢</mo><msup><mrow><mi>I</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mo>⁢</mo><mi>v</mi><mfenced><mi>n</mi></mfenced><mrow><mo>)</mo></mrow><mn>.</mn></mrow></math><img id="ib0099" file="imgb0099.tif" wi="60" he="8" img-content="math" img-format="tif" inline="yes"/></maths> Dans ce cas de figure, c'est le signal de prédiction <maths id="math0100" num=""><math display="inline"><mrow><msubsup><mrow><mi>x</mi></mrow><mrow><mi>P</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mrow></math><img id="ib0100" file="imgb0100.tif" wi="12" he="8" img-content="math" img-format="tif" inline="yes"/></maths> qui est quantifié en minimisant l'erreur quadratique. Puis le signal décodé <i>x̃<sup>B+k</sup></i>(<i>n</i>) pour la mise à jour des mémoires est obtenu de la façon suivante: <maths id="math0101" num=""><math display="inline"><mrow><msup><mrow><mover><mrow><mi>x</mi></mrow><mrow><mo>˜</mo></mrow></mover></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msup><mfenced><mi>n</mi></mfenced><mo>=</mo><mi>x</mi><mrow><mrow><mi>ʹ</mi></mrow></mrow><mfenced><mi>n</mi></mfenced><mo>+</mo><msubsup><mrow><mi>x</mi></mrow><mrow><mi>p</mi></mrow><mrow><mi>B</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced><mo>-</mo><msubsup><mrow><mi>d</mi></mrow><mrow><msubsup><mrow><mi>I</mi></mrow><mrow><mi mathvariant="italic">enh</mi><mo>⁢</mo><mn>1</mn></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mrow><mi>ʹ</mi></mrow><mrow><mi>ʹ</mi></mrow><mfenced><mi>n</mi></mfenced><mn>.</mn></mrow></math><img id="ib0101" file="imgb0101.tif" wi="64" he="9" img-content="math" img-format="tif" inline="yes"/></maths></p>
<p id="p0136" num="0136">La <figref idref="f0009"><b>figure 8</b></figref> détaille une réalisation possible d'une mise en forme du bruit au codage coeur. Le module 801 calcule les coefficients du filtre de mise en forme de bruit <maths id="math0102" num=""><math display="inline"><mrow><msub><mrow><mi>P</mi></mrow><mrow><mn>1</mn></mrow></msub><mfenced><mi>z</mi></mfenced><mo>=</mo><mfrac><mrow><mn>1</mn></mrow><mrow><mi>A</mi><mfenced separators=""><mi>z</mi><mo>/</mo><mi>γ</mi></mfenced></mrow></mfrac><mspace width="2em"/><mi>ou</mi><mspace width="1em"/><msub><mrow><mi>P</mi></mrow><mrow><mn>2</mn></mrow></msub><mfenced><mi>z</mi></mfenced><mo>=</mo><mfrac><mrow><mi>A</mi><mfenced separators=""><mi>z</mi><mo>/</mo><msub><mrow><mi>γ</mi></mrow><mrow><mn>1</mn></mrow></msub></mfenced></mrow><mrow><mi>A</mi><mfenced separators=""><mi>z</mi><mo>/</mo><msub><mrow><mi>γ</mi></mrow><mrow><mn>2</mn></mrow></msub></mfenced></mrow></mfrac><mn>.</mn></mrow></math><img id="ib0102" file="imgb0102.tif" wi="72" he="14" img-content="math" img-format="tif" inline="yes"/></maths> Le module 802 calcule l'erreur de codage <i>q<sub>w</sub></i>(<i>n</i>)=<i>x̃</i>(<i>n</i>)<i>-x</i>(<i>n</i>) des instants d'échantillonnage précédents, <i>n-</i>1<i>, n-</i>2<i>, ....</i> Cette erreur est filtrée par un filtre prédicteur <i>H<sub>PRED</sub> (z)</i> pour obtenir le signal de prédiction <i>q<sub>w,pred</sub></i>(<i>n</i>)<i>.</i><br/>
Le filtre <i>H</i>(<i>z</i>) correspondant à <i>H<sub>PRED</sub></i>(<i>z</i>) peut être égal par exemple soit à <maths id="math0103" num=""><math display="inline"><mrow><mi>H</mi><mfenced><mi>z</mi></mfenced><mo>=</mo><mfrac><mrow><mn>1</mn></mrow><mrow><msub><mrow><mi>P</mi></mrow><mrow><mn>1</mn></mrow></msub><mfenced><mi>z</mi></mfenced></mrow></mfrac><mo>=</mo><mi>A</mi><mfenced separators=""><mi>z</mi><mo>/</mo><mi>γ</mi></mfenced><mo>,</mo><mspace width="1em"/><mi>soit à</mi><mspace width="1em"/><mrow><mi>H</mi></mrow><mfenced><mi>z</mi></mfenced><mo>=</mo><mfrac><mrow><mn>1</mn></mrow><mrow><msub><mrow><mi>P</mi></mrow><mrow><mn>2</mn></mrow></msub><mfenced><mi>z</mi></mfenced></mrow></mfrac><mo>=</mo><mfrac><mrow><mi>A</mi><mfenced separators=""><mi>z</mi><mo>/</mo><msub><mrow><mi>γ</mi></mrow><mrow><mn>2</mn></mrow></msub></mfenced></mrow><mrow><mi>A</mi><mfenced separators=""><mi>z</mi><mo>/</mo><msub><mrow><mi>γ</mi></mrow><mrow><mn>1</mn></mrow></msub></mfenced></mrow></mfrac><mn>.</mn></mrow></math><img id="ib0103" file="imgb0103.tif" wi="102" he="14" img-content="math" img-format="tif" inline="yes"/></maths></p>
<p id="p0137" num="0137">A l'instant n, cette valeur prédite sera soustraite du signal à coder pour obtenir le signal à coder modifié <i>x'</i>(<i>n</i>) = <i>x(n) - q<sub>w,pred</sub></i>(<i>n</i>)<i>.</i></p>
<p id="p0138" num="0138">La différence entre l'entrée et la sortie de la chaîne codeur MIC/MICDA - décodeur <i>MIC</i>/<i>MICDA, q</i>(<i>n</i>) = <i>x̃</i>(<i>n</i>) <i>- x'</i>(<i>n</i>)<i>,</i> peut être considérée à court terme comme un bruit blanc quand ces codeurs utilisent un quantificateur à grand nombre de niveaux et en supposant le signal d'entrée stationnaire.</p>
<p id="p0139" num="0139">Prenons l'exemple où <maths id="math0104" num=""><math display="inline"><mrow><mi>H</mi><mfenced><mi>z</mi></mfenced><mo>=</mo><mfrac><mrow><mn>1</mn></mrow><mrow><msub><mrow><mi>P</mi></mrow><mrow><mn>1</mn></mrow></msub><mfenced><mi>z</mi></mfenced></mrow></mfrac><mo>=</mo><mi>A</mi><mfenced separators=""><mi>z</mi><mo>/</mo><mi>γ</mi></mfenced><mn>.</mn></mrow></math><img id="ib0104" file="imgb0104.tif" wi="45" he="13" img-content="math" img-format="tif" inline="yes"/></maths>Le signal d'entrée de la chaîne de codage standard MIC/MICDA est modifié par la soustraction de la contribution (<i>H</i>(<i>z</i>)<i>-</i>1)(<i>X̃</i>(<i>z</i>)<i>-X</i>(<i>z</i>))<i>.</i> Il en résulte que le bruit de codage de la chaîne complète<!-- EPO <DP n="21"> --> <i>q<sub>G</sub></i>(<i>n</i>)<i>=x̃</i>(<i>n</i>)<i>-x</i>(<i>n</i>) sera mis en forme par le filtre <maths id="math0105" num=""><math display="inline"><mrow><mfrac><mrow><mn>1</mn></mrow><mrow><mi>H</mi><mfenced><mi>z</mi></mfenced></mrow></mfrac><mspace width="1em"/><mo>:</mo></mrow></math><img id="ib0105" file="imgb0105.tif" wi="21" he="13" img-content="math" img-format="tif" inline="yes"/></maths><sub>:</sub> <maths id="math0106" num=""><math display="inline"><mrow><msub><mi>Q</mi><mi>G</mi></msub><mfenced><mi>z</mi></mfenced><mo>=</mo><mfrac><mrow><mi>Q</mi><mfenced><mi>z</mi></mfenced></mrow><mrow><mi>H</mi><mfenced><mi>z</mi></mfenced></mrow></mfrac><mo>=</mo><mfrac><mrow><mn>1</mn></mrow><mrow><mi>A</mi><mfenced separators=""><mi>z</mi><mo>/</mo><mi>γ</mi></mfenced></mrow></mfrac><mo>=</mo><mi>Q</mi><mfenced><mi>z</mi></mfenced><mo>,</mo></mrow></math><img id="ib0106" file="imgb0106.tif" wi="59" he="15" img-content="math" img-format="tif" inline="yes"/></maths> voici la démonstration en équations : <maths id="math0107" num=""><math display="block"><mrow><mtable columnalign="left"><mtr><mtd><mover><mrow><mi>X</mi></mrow><mrow><mo>˜</mo></mrow></mover><mfenced><mi>z</mi></mfenced><mo>=</mo><mi mathvariant="italic">Xʹ</mi><mfenced><mi>z</mi></mfenced><mo>+</mo><mi>Q</mi><mfenced><mi>z</mi></mfenced><mo>=</mo><mi>X</mi><mfenced><mi>z</mi></mfenced><mo>-</mo><mfenced separators=""><mi>H</mi><mfenced><mi>z</mi></mfenced><mo>-</mo><mn>1</mn></mfenced><mo>⁢</mo><mfenced separators=""><mover><mrow><mi>X</mi></mrow><mrow><mo>˜</mo></mrow></mover><mfenced><mi>z</mi></mfenced><mo>-</mo><mi>X</mi><mfenced><mi>z</mi></mfenced></mfenced><mo>+</mo><mi>Q</mi><mfenced><mi>z</mi></mfenced><mo>=</mo></mtd></mtr><mtr><mtd><mo>=</mo><mover><mrow><mi>X</mi></mrow><mrow><mo>˜</mo></mrow></mover><mfenced><mi>z</mi></mfenced><mo>-</mo><mi>H</mi><mfenced><mi>z</mi></mfenced><mo>⁢</mo><mover><mrow><mi>X</mi></mrow><mrow><mo>˜</mo></mrow></mover><mfenced><mi>z</mi></mfenced><mo>+</mo><mi>H</mi><mfenced><mi>z</mi></mfenced><mo>⁢</mo><mi>X</mi><mfenced><mi>z</mi></mfenced><mo>+</mo><mi>Q</mi><mfenced><mi>z</mi></mfenced></mtd></mtr></mtable></mrow></math><img id="ib0107" file="imgb0107.tif" wi="140" he="15" img-content="math" img-format="tif"/></maths><br/>
d' où <maths id="math0108" num=""><math display="block"><mrow><mi>H</mi><mfenced><mi>z</mi></mfenced><mo>⁢</mo><mover><mrow><mi>X</mi></mrow><mrow><mo>˜</mo></mrow></mover><mfenced><mi>z</mi></mfenced><mo>=</mo><mi>H</mi><mfenced><mi>z</mi></mfenced><mo>⁢</mo><mi>X</mi><mfenced><mi>z</mi></mfenced><mo>+</mo><mi>Q</mi><mfenced><mi>z</mi></mfenced><mspace width="1em"/><mi>et donc</mi><mspace width="1em"/><mover><mrow><mi>X</mi></mrow><mrow><mo>˜</mo></mrow></mover><mfenced><mi>z</mi></mfenced><mo>=</mo><mi>H</mi><mfenced><mi>z</mi></mfenced><mo>+</mo><mfrac><mrow><mi>Q</mi><mfenced><mi>z</mi></mfenced></mrow><mrow><mi>H</mi><mfenced><mi>z</mi></mfenced></mrow></mfrac></mrow></math><img id="ib0108" file="imgb0108.tif" wi="148" he="12" img-content="math" img-format="tif"/></maths></p>
<p id="p0140" num="0140">En fait, le filtre <i>H<sub>PRED</sub></i>(<i>z</i>) = <i>H</i>(<i>z</i>)<i>-</i>1 a un coefficient nul en z<sup>0</sup> (pour l'instant <i>n</i>), il s'agit donc d'un prédicteur agissant sur <i>q<sub>w</sub></i>(<i>n</i>) <i>= x̃</i>(<i>n</i>)<i>-x</i>(<i>n</i>) qui, lui, n'est connu qu'en fin de traitement MIC/MICDA quand la valeur décodée <i>x̃</i>(<i>n</i>) est connue.</p>
<p id="p0141" num="0141">La séquence d'opérations de la <figref idref="f0009">figure 8</figref> est la suivante :
<ul id="ul0012" list-style="dash" compact="compact">
<li>Calcul en 801 du filtre de masquage et détermination du filtre <i>H</i>(<i>z</i>). A noter que le filtre <i>H</i>(<i>z</i>) peut également être déterminé à partir du signal décodé <i>x̃</i>(<i>n</i>);</li>
<li>Calcul en 803 de la prédiction <i>q<sub>w,pred</sub></i>(<i>n</i>)<i>,</i> ([<i>H</i>(z)<i>-</i>1]<i>Q<sub>w</sub></i>(z)), à partir des valeurs <i>q<sub>w</sub></i>(<i>n</i>) <i>= x̃</i>(<i>n</i>)<i>-x</i>(<i>n</i>) des instants d'échantillonnage précédents, <i>n-</i>1<i>,n</i>-2,... ;</li>
<li>Soustraction en 804 de la prédiction <i>q<sub>w,pred</sub></i>(<i>n</i>) à <i>x</i>(<i>n</i>) pour obtenir le signal <i>x</i>'(<i>n</i>) modifié;</li>
<li>Codage/Décodage en 805-806 du signal modifié <i>x'</i>(<i>n</i>) par un codeur/décodeur MIC/MICDA standard. Le décodeur local peut être un décodeur local standard du type MIC/MICDA des normes G.711, G.721, G.726, G.722 ou encore G.727.</li>
<li>Calcul en 802 du bruit de codage filtré <i>q<sub>w</sub> (n)</i> par soustraction du signal d'entrée <i>x</i>(<i>n</i>) du signal de sortie <i>x̃</i>(<i>n</i>)</li>
</ul></p>
<p id="p0142" num="0142">Là partie entourée 807 peut être vue et implémentée comme un prétraitement de mise en forme de bruit qui modifie l'entrée de la chaîne codeur/décodeur standard.</p>
<p id="p0143" num="0143">Un exemple de réalisation d'un codeur selon l'invention est maintenant décrit en référence à la <figref idref="f0011"><b>figure 10</b></figref><b>.</b></p>
<p id="p0144" num="0144">Matériellement, un codeur 900 tel que décrit selon les différents modes de réalisation ci-dessus, au sens de l'invention, comporte typiquement, un processeur µP coopérant avec un bloc mémoire BM incluant une mémoire de stockage et/ou de travail, ainsi qu'une mémoire<!-- EPO <DP n="22"> --> tampon MEM précitée en tant que moyen pour mémoriser par exemple un dictionnaire de niveaux de reconstructions de quantification ou toutes autres données nécessaire à la mise en oeuvre du procédé de codage tel que décrit en référence aux <figref idref="f0003">figures 3</figref>, <figref idref="f0004">4</figref>, <figref idref="f0005">5</figref>, <figref idref="f0006">6</figref> et <figref idref="f0007">7</figref>. Ce codeur reçoit en entrée des trames successives du signal numérique x(n) et délivre des indices de quantification concaténés I<sup>B+k</sup>.</p>
<p id="p0145" num="0145">Le bloc mémoire BM peut comporter un programme informatique comportant les instructions de code pour la mise en oeuvre des étapes du procédé selon l'invention lorsque ces instructions sont exécutées par un processeur µP du codeur et notamment les étapes d'obtention de valeurs possibles de quantification pour l'étage d'amélioration courant k par la détermination de niveaux de reconstruction absolus du seul étage courant k à partir des indices du codeur imbriqué précédent, de quantification du signal d'entrée du codeur hiérarchique ayant subi ou non un traitement de pondération perceptuelle (x(n) ou x'(n)), à partir des dites valeurs possibles de quantification pour former un indice de quantification de l'étage k et un signal quantifié correspondant à une des valeurs possibles de quantification.</p>
<p id="p0146" num="0146">De manière plus générale, un moyen de stockage, lisible par un ordinateur ou un processeur, intégré ou non au codeur, éventuellement amovible, mémorise un programme informatique mettant en oeuvre un procédé de codage selon l'invention.</p>
<p id="p0147" num="0147">Les <figref idref="f0003 f0004 f0005 f0006 f0007 f0008">figures 3 à 7</figref> peuvent par exemple illustrer l'algorithme d'un tel programme informatique.</p>
</description>
<claims id="claims01" lang="fr"><!-- EPO <DP n="23"> -->
<claim id="c-fr-01-0001" num="0001">
<claim-text>Procédé de codage d'un signal audio numérique d'entrée (x(n)) dans un codeur hiérarchique comprenant un étage de codage coeur à B bits et au moins un étage de codage d'amélioration courant k, le codage coeur et le codage des étages d'amélioration précédant l'étage courant k délivrant des indices de quantification qui sont concaténés pour former les indices du codeur imbriqué précédent (I<sup>B+k-1</sup>), le procédé étant <b>caractérisé en ce qu'</b>il comporte les étapes suivantes:
<claim-text>- obtention (303) de valeurs possibles de quantification <maths id="math0109" num=""><math display="inline"><mrow><mfenced separators=""><msubsup><mrow><mi>d</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mfenced></mrow></math><img id="ib0109" file="imgb0109.tif" wi="20" he="8" img-content="math" img-format="tif" inline="yes"/></maths> pour l'étage d'amélioration courant k à partir des niveaux de reconstruction absolus <maths id="math0110" num=""><math display="inline"><mrow><mfenced><msubsup><mrow><mi>y</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mfenced></mrow></math><img id="ib0110" file="imgb0110.tif" wi="12" he="7" img-content="math" img-format="tif" inline="yes"/></maths> du seul étage courant k et des indices du codeur imbriqué précédent (<i>I</i><sup><i>B</i>+<i>k</i>-1</sup>);</claim-text>
<claim-text>- quantification (306) du signal d'entrée du codeur hiérarchique ayant subi ou non un traitement de pondération perceptuelle (x(n) ou x'(n)), à partir des dites valeurs possibles de quantification <maths id="math0111" num=""><math display="inline"><mrow><mfenced separators=""><msubsup><mrow><mi>d</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mfenced></mrow></math><img id="ib0111" file="imgb0111.tif" wi="20" he="8" img-content="math" img-format="tif" inline="yes"/></maths> pour former un indice de quantification de l'étage k (I<sub>enh</sub><sup>B+k</sup>(n)) et un signal quantifié (<i>x̃<sup>B+k</sup></i>(<i>n</i>)) correspondant à une des valeurs possibles de quantification.</claim-text></claim-text></claim>
<claim id="c-fr-01-0002" num="0002">
<claim-text>Procédé selon la revendication 1, <b>caractérisé en ce que</b> le signal d'entrée a subi un traitement de pondération perceptuelle utilisant un filtre de pondération prédéterminé pour donner un signal d'entrée modifié x'(n), avant l'étape de quantification (306) et <b>en ce qu'</b>il comporte en outre une étape d'adaptation (311) des mémoires du filtre de pondération à partir du signal quantifié (<i>x̃<sup>B+k</sup></i>(<i>n</i>)) de l'étage de codage d'amélioration courant.</claim-text></claim>
<claim id="c-fr-01-0003" num="0003">
<claim-text>Procédé selon la revendication 1, <b>caractérisé en ce que</b> les valeurs possibles de quantification pour l'étage d'amélioration k contiennent en outre un facteur d'échelle et une valeur de prédiction provenant du codage coeur de type adaptatif.</claim-text></claim>
<claim id="c-fr-01-0004" num="0004">
<claim-text>Procédé selon la revendication 2, <b>caractérisé en ce que</b> le signal d'entrée modifié (x"(n)) à quantifier à l'étage d'amélioration k est le signal d'entrée pondéré perceptuellement auquel est soustrait une valeur de prédiction provenant du codage coeur de type adaptatif.</claim-text></claim>
<claim id="c-fr-01-0005" num="0005">
<claim-text>Procédé selon la revendication 1 à 4, <b>caractérisé en ce que</b> le traitement de pondération perceptuelle, s'effectue par des filtres de prédictions formant un filtre de type ARMA.<!-- EPO <DP n="24"> --></claim-text></claim>
<claim id="c-fr-01-0006" num="0006">
<claim-text>Codeur hiérarchique d'un signal audio numérique d'entrée (x(n)), comprenant un étage de codage coeur à B bits et au moins un étage de codage d'amélioration courant k, le codage coeur et le codage des étages d'amélioration précédant l'étage courant k délivrant des indices de quantification qui sont concaténés pour former les indices,du codeur imbriqué précédent (I<sup>B+k-1</sup>), le codeur étant <b>caractérisé en ce qu'</b>il comporte:
<claim-text>- un module d'obtention (303) de valeurs possibles de quantification <maths id="math0112" num=""><math display="inline"><mrow><mfenced separators=""><msubsup><mrow><mi>d</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mfenced></mrow></math><img id="ib0112" file="imgb0112.tif" wi="20" he="7" img-content="math" img-format="tif" inline="yes"/></maths> pour l'étage d'amélioration courant k par la détermination de niveaux de reconstruction absolus du seul étage courant k à partir des indices du codeur imbriqué précédent</claim-text>
<claim-text>- un module de quantification (306) du signal d'entrée du codeur hiérarchique ayant subi ou non un traitement de pondération perceptuelle (x(n) ou x'(n)), à partir des dites valeurs possibles de quantification <maths id="math0113" num=""><math display="inline"><mrow><mfenced separators=""><msubsup><mrow><mi>d</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mfenced></mrow></math><img id="ib0113" file="imgb0113.tif" wi="20" he="8" img-content="math" img-format="tif" inline="yes"/></maths> pour former un indice de quantification de l'étage k (I<sub>enh</sub><sup>B+k</sup>(n)) et un signal quantifié (<i>x̃<sup>B+k</sup></i>(<i>n</i>)) correspondant à une des valeurs possibles de quantification;</claim-text></claim-text></claim>
<claim id="c-fr-01-0007" num="0007">
<claim-text>Codeur hiérarchique selon la revendication 6, <b>caractérisé en ce qu'</b>il comporte en outre un module de prétraitement (310) de pondération perceptuelle utilisant un filtre de pondération prédéterminé pour donner un signal d'entrée modifié (x'(n)) en entrée du module de quantification (306) et un module d'adaptation (311) des mémoires du filtre de pondération à partir du signal quantifié (<i>x̃<sup>B+k</sup></i>(<i>n</i>)) de l'étage de codage d'amélioration courant.</claim-text></claim>
<claim id="c-fr-01-0008" num="0008">
<claim-text>Programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de codage selon l'une des revendications 1 à 5, lorsque ces instructions sont exécutées par un processeur.</claim-text></claim>
</claims>
<claims id="claims02" lang="de"><!-- EPO <DP n="25"> -->
<claim id="c-de-01-0001" num="0001">
<claim-text>Verfahren zur Codierung eines digitalen Eingangsaudiosignals (x(n)) in einem hierarchischen Codierer, umfassend eine Kerncodierstufe mit B Bits und mindestens eine laufende Verbesserungscodierstufe k, wobei die Kerncodierung und die Codierung der Verbesserungsstufen vor der laufenden Stufe k Quantifizierungsindizes liefern, die konkateniert sind, um die Indizes des vorhergehenden verschachtelten Codierers (I<sup>B+k-1</sup>) zu bilden, wobei das Verfahren <b>dadurch gekennzeichnet ist, dass</b> es die folgenden Schritte umfasst:
<claim-text>- Erhalt (303) von möglichen Quantifizierungswerten (d<sub>i</sub><sup>B+k</sup>(n)) für die laufende Verbesserungsstufe k aus absoluten Rekonstruktionsniveaus (y<sub>i</sub><sup>b+k</sup>) der einzigen laufenden Stufe k und den Indizes des vorhergehenden verschachtelten Codierers (i<sup>B+k-1</sup>);</claim-text>
<claim-text>- Quantifizierung (306) des Eingangssignals des hierarchischen Codierers, das einer perzeptuellen Gewichtungsbehandlung (x(n) oder x'(n)) aus den möglichen Quantifizierungswerten (d<sub>i</sub><sup>B+k</sup>(n)) unterzogen wurde oder nicht, um einen Quantifizierungsindex der Stufe k (I<sub>enh</sub><sup>B+k</sup>(n)) und ein quantifiziertes Signal (<i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>))<!-- EPO <DP n="26"> --> entsprechend einem der möglichen Quantifizierungswerte zu bilden.</claim-text></claim-text></claim>
<claim id="c-de-01-0002" num="0002">
<claim-text>Verfahren nach Anspruch 1, <b>dadurch gekennzeichnet, dass</b> das Eingangssignal einer perzeptuellen Gewichtungsbehandlung unterzogen wurde, die einen vorbestimmten Gewichtungsfilter verwendet, um ein modifiziertes Eingangssignal x'(n) vor dem Quantifizierungsschritt (306) zu ergeben, und dass es ferner einen Anpassungsschritt (311) der Speicher des Gewichtungsfilters aus dem quantifizierten Signal (x̃<sup><i>B</i>+<i>k</i></sup>(<i>n</i>)) der laufenden Verbesserungscodierungsstufe umfasst.</claim-text></claim>
<claim id="c-de-01-0003" num="0003">
<claim-text>Verfahren nach Anspruch 1, <b>dadurch gekennzeichnet, dass</b> die möglichen Quantifizierungswerte für die Verbesserungsstufe k ferner einen Skalenfaktor und einen Vorhersagewert, der von der Kerncodierung adaptativen Typs stammt, enthalten.</claim-text></claim>
<claim id="c-de-01-0004" num="0004">
<claim-text>Verfahren nach Anspruch 2, <b>dadurch gekennzeichnet, dass</b> das zu quantifizierende modifizierte Eingangssignal (x"(n)) in der Verbesserungsstufe k das perzeptuell gewichtete Eingangssignal ist, dem ein Vorhersagewert, der von der Kerncodierung adaptativen Typs stammt, entnommen wird.</claim-text></claim>
<claim id="c-de-01-0005" num="0005">
<claim-text>Verfahren nach Anspruch 1 bis 4, <b>dadurch gekennzeichnet, dass</b> die perzeptuelle Gewichtungsbehandlung durch Vorhersagefilter erfolgt, die einen Filter des Typs ARMA bilden.</claim-text></claim>
<claim id="c-de-01-0006" num="0006">
<claim-text>Hierarchischer Codierer eines digitalen Eingangsaudiosignals (x(n)), umfassend eine Kerncodierstufe mit B Bits und mindestens eine laufende Verbesserungscodierstufe k, wobei die Kerncodierung und die Codierung der Verbesserungsstufen vor der laufenden Stufe k Quantifizierungsindizes liefern, die konkateniert<!-- EPO <DP n="27"> --> sind, um die Indizes des vorhergehenden verschachtelten Codierers (I<sup>B+k-1</sup>) zu bilden, wobei der Codierer <b>dadurch gekennzeichnet ist, dass</b> er umfasst:
<claim-text>- ein Modul für den Erhalt (303) von möglichen Quantifizierungswerten (d<sub>i</sub><sup>B+k</sup>(n)) für die laufende Verbesserungsstufe k durch die Bestimmung von absoluten Rekonstruktionsniveaus der einzigen laufenden Stufe k aus den Indizes des vorhergehenden verschachtelten Codierers (i<sup>B+k-1</sup>);</claim-text>
<claim-text>- ein Modul zur Quantifizierung (306) des Eingangssignals des hierarchischen Codierers, das einer perzeptuellen Gewichtungsbehandlung (x(n) oder x'(n)) aus den möglichen Quantifizierungswerten (d<sub>i</sub><sup>B+k</sup>(n)) unterzogen wurde oder nicht, um einen Quantifizierungsindex der Stufe k (I<sub>enh</sub><sup>B+k</sup>(n)) und ein quantifiziertes Signal (<i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>)) entsprechend einem der möglichen Quantifizierungswerte zu bilden.</claim-text></claim-text></claim>
<claim id="c-de-01-0007" num="0007">
<claim-text>Hierarchischer Codierer nach Anspruch 6, <b>dadurch gekennzeichnet, dass</b> er ferner ein Vorbehandlungsmodul (310) zur perzeptuellen Gewichtung, das einen vorbestimmten Gewichtungsfilter verwendet, um ein modifiziertes Eingangssignal (x'(n)) am Eingang des Quantifizierungsmoduls (306) zu ergeben, und ein Anpassungsmodul (311) der Speicher des Gewichtungsfilters aus dem quantifizierten Signal (<i>x̃</i><sup><i>B</i>+<i>k</i></sup>(<i>n</i>)) der laufenden Verbesserungscodierungsstufe umfasst.</claim-text></claim>
<claim id="c-de-01-0008" num="0008">
<claim-text>Informatikprogramm, umfassend Codebefehle für den Einsatz der Schritte des Codierungsverfahrens nach einem der Ansprüche 1 bis 5, wenn diese Befehle von einem Prozessor ausgeführt werden.</claim-text></claim>
</claims>
<claims id="claims03" lang="en"><!-- EPO <DP n="28"> -->
<claim id="c-en-01-0001" num="0001">
<claim-text>Method for coding a digital audio input signal (x(n)) in a hierarchical coder comprising a core coding stage with B bits and at least one current improvement coding stage k, the core coding and the coding of the improvement stages preceding the current stage k delivering quantization indices which are concatenated to form the indices of the preceding embedded coder (I<sup>B+k-1</sup>), the method being <b>characterized in that</b> it comprises the following steps:
<claim-text>- obtaining (303) of possible quantization values ( ) for the current improvement stage k on the basis of the absolute reconstruction levels <maths id="math0114" num=""><math display="inline"><mrow><mfenced><msubsup><mrow><mi>y</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup></mfenced></mrow></math><img id="ib0114" file="imgb0114.tif" wi="12" he="8" img-content="math" img-format="tif" inline="yes"/></maths> of just the current stage k and of the indices of the preceding embedded coder (<i>I</i><sup><i>B+K-</i>1</sup>);</claim-text>
<claim-text>- quantization (306) of the input signal of the hierarchical coder having undergone or not a perceptual weighting processing (x(n) or x'(n)), on the basis of said possible quantization values <maths id="math0115" num=""><math display="inline"><mrow><mfenced separators=""><msubsup><mrow><mi>d</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mfenced></mrow></math><img id="ib0115" file="imgb0115.tif" wi="19" he="8" img-content="math" img-format="tif" inline="yes"/></maths> so as to form a quantization index for the stage k (I<sub>enh</sub><sup>B+k</sup>(n)) and a quantized signal (<i>x̃<sup>B+k</sup></i>(<i>n</i>)) corresponding to one of the possible quantization values.</claim-text></claim-text></claim>
<claim id="c-en-01-0002" num="0002">
<claim-text>Method according to Claim 1, <b>characterized in that</b> the input signal has undergone a perceptual weighting processing using a predetermined weighting filter to give a modified input signal x'(n), before the quantization step (306) and <b>in that</b> it furthermore<!-- EPO <DP n="29"> --> comprises a step (311) of adapting the memories of the weighting filter on the basis of the quantized signal (<i>x̃<sup>B+k</sup></i>(<i>n</i>)) of the current improvement coding stage.</claim-text></claim>
<claim id="c-en-01-0003" num="0003">
<claim-text>Method according to Claim 1, <b>characterized in that</b> the possible quantization values for improvement stage k furthermore contain a scale factor and a prediction value originating from the core coding of adaptive type.</claim-text></claim>
<claim id="c-en-01-0004" num="0004">
<claim-text>Method according to Claim 2, <b>characterized in that</b> the modified input signal (x"(n)) to be quantized at improvement stage k is the perceptually weighted input signal from which is subtracted a prediction value originating from the core coding of adaptive type.</claim-text></claim>
<claim id="c-en-01-0005" num="0005">
<claim-text>Method according to Claims 1 to 4, <b>characterized in that</b> the perceptual weighting processing is performed by prediction filters forming a filter of ARMA type.</claim-text></claim>
<claim id="c-en-01-0006" num="0006">
<claim-text>Hierarchical coder of a digital audio input signal (x(n)), comprising a core coding stage with B bits and at least one current improvement coding stage k, the core coding and the coding of the improvement stages preceding the current stage k delivering quantization indices which are concatenated to form the indices of the preceding embedded coder (I<sup>B+k-1</sup>), the coder being <b>characterized in that</b> it comprises:
<claim-text>- a module (303) for obtaining possible quantization values ( ) for the current improvement stage k by determining absolute reconstruction levels of just the current stage k on the basis of the indices of the preceding embedded coder (<i>I</i><sup><i>B+k-</i>1</sup>);</claim-text>
<claim-text>- a module (306) for quantizing the input signal of the hierarchical coder having undergone or not a perceptual weighting processing (x(n) or x'(n)), on the basis of said possible quantization values <maths id="math0116" num=""><math display="inline"><mrow><mfenced separators=""><msubsup><mrow><mi>d</mi></mrow><mrow><mi>i</mi></mrow><mrow><mi>B</mi><mo>+</mo><mi>k</mi></mrow></msubsup><mfenced><mi>n</mi></mfenced></mfenced></mrow></math><img id="ib0116" file="imgb0116.tif" wi="19" he="8" img-content="math" img-format="tif" inline="yes"/></maths> so<!-- EPO <DP n="30"> --> as to form a quantization index for the stage k (I<sub>enh</sub><sup>B+k</sup>(n)) and a quantized signal (<i>x̃<sup>B+k</sup></i>(<i>n</i>)) corresponding to one of the possible quantization values.</claim-text></claim-text></claim>
<claim id="c-en-01-0007" num="0007">
<claim-text>Hierarchical coder according to Claim 6, <b>characterized in that</b> it furthermore comprises a preprocessing module (310) for perceptual weighting using a predetermined weighting filter to give a modified input signal (x'(n)) at the input of the quantization module (306) and a module (311) for adapting the memories of the weighting filter on the basis of the quantized signal (<i>x̃<sup>B+k</sup></i>(<i>n</i>)) of the current improvement coding stage.</claim-text></claim>
<claim id="c-en-01-0008" num="0008">
<claim-text>Computer program comprising code instructions for the implementation of the steps of the coding method according to one of Claims 1 to 5, when these instructions are executed by a processor.</claim-text></claim>
</claims>
<drawings id="draw" lang="fr"><!-- EPO <DP n="31"> -->
<figure id="f0001" num="1"><img id="if0001" file="imgf0001.tif" wi="165" he="222" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="32"> -->
<figure id="f0002" num="2"><img id="if0002" file="imgf0002.tif" wi="165" he="230" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="33"> -->
<figure id="f0003" num="3"><img id="if0003" file="imgf0003.tif" wi="165" he="230" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="34"> -->
<figure id="f0004" num="4"><img id="if0004" file="imgf0004.tif" wi="165" he="230" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="35"> -->
<figure id="f0005" num="5"><img id="if0005" file="imgf0005.tif" wi="165" he="230" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="36"> -->
<figure id="f0006" num="6"><img id="if0006" file="imgf0006.tif" wi="165" he="230" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="37"> -->
<figure id="f0007" num="7"><img id="if0007" file="imgf0007.tif" wi="165" he="230" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="38"> -->
<figure id="f0008" num="7b"><img id="if0008" file="imgf0008.tif" wi="165" he="232" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="39"> -->
<figure id="f0009" num="8"><img id="if0009" file="imgf0009.tif" wi="165" he="203" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="40"> -->
<figure id="f0010" num="9"><img id="if0010" file="imgf0010.tif" wi="165" he="209" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="41"> -->
<figure id="f0011" num="10"><img id="if0011" file="imgf0011.tif" wi="165" he="209" img-content="drawing" img-format="tif"/></figure>
</drawings>
<ep-reference-list id="ref-list">
<heading id="ref-h0001"><b>RÉFÉRENCES CITÉES DANS LA DESCRIPTION</b></heading>
<p id="ref-p0001" num=""><i>Cette liste de références citées par le demandeur vise uniquement à aider le lecteur et ne fait pas partie du document de brevet européen. Même si le plus grand soin a été accordé à sa conception, des erreurs ou des omissions ne peuvent être exclues et l'OEB décline toute responsabilité à cet égard.</i></p>
<heading id="ref-h0002"><b>Documents brevets cités dans la description</b></heading>
<p id="ref-p0002" num="">
<ul id="ref-ul0001" list-style="bullet">
<li><patcit id="ref-pcit0001" dnum="WO2010058117A"><document-id><country>WO</country><doc-number>2010058117</doc-number><kind>A</kind></document-id></patcit><crossref idref="pcit0001">[0031]</crossref></li>
</ul></p>
<heading id="ref-h0003"><b>Littérature non-brevet citée dans la description</b></heading>
<p id="ref-p0003" num="">
<ul id="ref-ul0002" list-style="bullet">
<li><nplcit id="ref-ncit0001" npl-type="s"><article><author><name>X. MAITRE</name></author><atl>7 kHz audio coding within 64 kbit/s</atl><serial><sertitle>IEEE Journal on Selected Areas in Communication</sertitle><pubdate><sdate>19880200</sdate><edate/></pubdate><vid>6</vid><ino>2</ino></serial></article></nplcit><crossref idref="ncit0001">[0007]</crossref></li>
<li><nplcit id="ref-ncit0002" npl-type="s"><article><author><name>Y. HIWASAKI</name></author><author><name>S. SASAKI</name></author><author><name>H. OHMURO</name></author><author><name>T. MORI</name></author><author><name>J. SEONG</name></author><author><name>M. S. LEE</name></author><author><name>B. KÖVESI</name></author><author><name>S. RAGOT</name></author><author><name>J.-L. GARCIA</name></author><author><name>C. MARRO</name></author><atl>«Wideband embedded extension for G.711 pulse code modulation» ou « G.711.1: A wideband extension to ITU-T G.711 »</atl><serial><sertitle>UIT-T G.711.1</sertitle><pubdate><sdate>20080000</sdate><edate/></pubdate></serial></article></nplcit><crossref idref="ncit0002">[0023]</crossref></li>
</ul></p>
</ep-reference-list>
</ep-patent-document>
