Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Les CODECs audio et plus particulièrement Ogg Vorbis

Les CODECs audio et plus particulièrement Ogg Vorbis

A talk in French about audio codecs and Ogg Vorbis given during Verbindingen/Jonctions 6

Philippe Teuwen

May 20, 2002
Tweet

More Decks by Philippe Teuwen

Other Decks in Science

Transcript

  1. Les CODECs audio et plus particulièrement Ogg Vorbis Philippe Teuwen

    <[email protected]> Présentation basée sur les matériaux de Werner Oomen & Nicolas Werner que je remercie au passage
  2. Contenu de la présentation Introduction aux CODECs audio Psychoacoustique (24)

    Outils d'encodage (21) -> 26 Les différents CODECs (11) -> 47 Présentation de Ogg Vorbis Aperçu, historique (7) -> 58 Vue un peu plus poussée (12) -> 65
  3. Introduction aux CODECs audio Ingrédients nécessaires: Une bonne connaissance de

    la psycho-acoustique Des algorithmes de Digital Signal Processing (DSP) Transformations du signal Quantification La théorie de l'information Codage sans pertes (Loss-less Coding) Et enfin...
  4. Psycho-acoustique: 1) L'effet de masquage (masking) Un son est-il toujours

    audible? Interaction entre les sons... Sinusoide 2000 Hz Noise bandwidth: Broadband, 1000 Hz, 250 Hz, 10 Hz Freq. Niveau
  5. Avant d'aller plus loin... Pourquoi les fréquences sont représentées selon

    une échelle logarithmique? Pourquoi les niveaux de pression sonore sont représentés selon une échelle logarithmique? ( le dB est une représentation logarithmique)
  6. L'appareil auditif Canal auditif Marteau Tympan Etrier Fenêtre ovale Fenêtre

    ronde Canaux semicirculaires Limaçon Nerf auditif Enclume Oreille externe Oreille interne Oreille médiane Trompe d'Eustache
  7. Membrane basilaire 25 Hz 50 Hz 100 Hz 200 Hz

    400 Hz 800 Hz 1600 Hz 0 10 20 30 Distance de l'étrier à la membrane basilaire (en mm) 0 10 20 30 Déplacement (= Excitation) de la membrane basilaire Lorsque la fréquence double, la position de l'excitation maximale varie linéairement Logarithme...
  8. Echelle de Bark Relie la fréquence à la position de

    l'excitation de la membrane basilaire: 0 5 10 15 20 0 5 10 15 20 25 Frequence (en kHz) Frequency (in Bark) 10 -1 10 0 10 1 Frequence (en kHz) Nombre de Bark approximativement 30 - distance depuis l'étrier. Ex.: 1600 Hz  12 Bark  30-18
  9. Niveau de pression sonore (SPL) Deux tondeuses à gazon ne

    font pas deux fois plus de bruit qu'une seule tondeuse... Lorsque la pression sonore double, la sensation ne double pas. Logarithme... SPL: Sound Pressure Level sur une échelle en dB relative à une pression de référence. Les seuils de perception sont représentés sur une échelle de SPL en dB.
  10. Le seuil d'audibilité Fréquence (en Hz) Sound Pressure level (en

    dB SPL) 102 103 104 -10 0 10 20 30 40 50 60 70 80 90 100 La pression de référence: seuil d'inaudibilité à 2000 Hz
  11. Représentation numérique Le problème: Comment faire le lien entre des

    nombres entiers représentant une amplitude et les dB SPL? Une solution: Une sinusoïde avec la plus petite amplitude (1 LSB) a un niveau correspondant au seuil absolu d'audibilité à 4kHz, soit -5 dB SPL. ½A2 pour A=1 équivaut à -3dB + K  -5 dB SPL  K=-2 dB 16 bits couvrent environ 90 dB de dynamique.
  12. Revenons au masquage Les sons qu'on n'entend pas: Ceux qui

    sont sous le seuil d'audibilité Ceux qui sont masqués temporellement Ceux qui sont masqués fréquentiellement
  13. Masquage temporel Pré et post masquages Différence entre le temps

    de perception des sons faibles et des sons forts L'effet est implicitement utilisé dans les CODECs Simultaneous masking Pre-masking Post-masking -40 -20 0 20 180 0 20 40 60 80 100 120 140 160 t / ms Sound Pressure level (in dB) 40 60 80 Start of transient
  14. Masquage spectral Un son arrivant dans l'oreille se propage dans

    un ensemble de filtres passe-bande (les cils) A chaque filtre correspond l'excitation d'une cellule nerveuse. 0.5 1.0 1.5 2.0 0 -10 -40 -30 -20 -50 Pondération des filtres (en dB) Fréquence (en kHz)
  15. Masquage spectral Une sinusoïde excite plusieurs filtres adjacents. Surtout le

    filtre centré sur cette fréquence. L'excitation causée se répand en partie. 0.5 1.0 1.5 2.0 Fréquence (en kHz) 0.5 1.0 1.5 2.0 Fréquence (en kHz) 0 -10 -40 -30 -20 -50 Pondération des filtres (en dB) 0 -10 -40 -30 -20 -50 Excitation (en dB) Filtre centré Sortie du filtre centré a a b b c c d d e e
  16. Seuil de masquage 0 5 10 15 20 -10 0

    10 20 30 40 50 60 Fréquence (en kHz) Sound Pressure level (en dB SPL) Le masquage est supposé être un processus additif
  17. Largeur de bande critique Le système auditif humain est capable

    d'intégrer la puissance reçue par chaque filtre auditif (cil). Un bruit (large bande) faible peut masquer un son (sinusoïde) pourtant plus fort. Effective bandwidth 0.5 0 -10 -40 -30 -20 -50 Pondération des filtres (en dB) Filtre auditif Fréquence (en kHz)
  18. Largeur de bande critique SNR s'améliore seulement si la bande

    a une largeur inférieure à la largeur de bande critique 0.5 Fréquence (en kHz) 0 -10 -40 -30 -20 -50 Pondération du filtre (en dB) SNR (en dB) S N 1000 N 250 N 10 N Critical bandwidth 250Hz 2
  19. Largeur de bande critique La puissance intégrée dans une largeur

    de bande critique doit être inférieure au seuil d'audibilité Nouvelle courbe corrigée 0 5 10 15 20 25 -40 -30 -20 -10 0 10 20 30 40 1 erb Masked threshold Masked error power Masked error power Masked threshold Frequency (in bark) Frequency (in bark) Power (in dB SPL) Power (in dB SPL) Difference
  20. Application: Buried data Example d'application du seuil de masquage: On

    peut ajouter un bruit au signal jusqu'au seuil de masquage corrigé. Le signal audio reste perceptuellement identique au signal audio original. Le bruit représente en fait un data-stream. Ce data-stream peut être récupéré par après. Jusqu'à 1/3 de la capacité d'un CD peut être ainsi utilisée sans différence de perception.
  21. Buried data 13dB SNR perceptually shaped noise Masked error power

    Frequency Amplitude (log) 13dB SNR white noise Masked error power Frequency Amplitude (log) audible
  22. Buried data process Stereo Lecteur CD conventionnel CD ordinaire Stereo

    Lecteur CD conventionnel Perceptually identical Extra data BD Dec Data Stream BD Enc BD-CD
  23. Références Brian C.J. Moore, An Introduction to the Psychology of

    Hearing, Academic Press, 1997 IEEE ASSP Magazine, Cochlear Modeling, January 1985, Vol.2, No.1 JAES, Buried Data Channels, Vol.43, No.1/2, 1995 Jan/Feb.
  24. Redondance et irrelevance Redondance: Information qui n'est pas nécessaire pour

    comprendre totalement le message Infrmtn qi n'e pa ncesair pr comprndr ttlmnt l msg Irrélévance: Information qui fait partie du message, mais qui ne change pas la perception de ce message
  25. Codage sans pertes <> avec pertes Propriété Output  Input

    Output  Input Exploite Redondance seulement Redondance & Irrélévance Avec pertes Sans pertes Tests perceptuels Non Oui Compression ratio  > 2 > 30 Qualité Objective (max) Subjective Bit rate Variable Fixe ou variable
  26. Les paramètres caractéristiques d'un CODEC audio Qualité (bande passante (voix:

    4kHz <> HQ Audio:24kHz), résolution perceptuelle (8 <> 24 bits) ) Compression ratio ( lossless :2 …  lossy >30 ... ) Complexité (ROM, RAM, MIPS, Vitesse, Symétrie enc/déc ) Flexibilité (Scalability, Retard, Canaux, Fonctionnalités suppl. )
  27. CODEC Codec  encodeur + décodeur Encodeur Décodeur Audio input

    Bit-stream encodé Audio output Canall Codec 64 kbit/s/ch 706 kbit/s/ch 706 kbit/s/ch
  28. Encodeur Entrée Utile pour la perception Signal encodé Irrélévance Redondance

    T C Q Audio input Bit- stream Pré-processing Quantification Compression sans pertes ...00101011010...
  29. Encodeur Pré-processing: Banc de filtres Facilite l'analyse psychoacoustique Les puissances

    du signal intégrées en bandes de fréquence peuvent être mises facilement en relation avec le seuil de masquage. 'Noise-shaping' perceptuel Le bruit de quantification de chaque bande peut être choisi séparément selon le seuil de masquage.
  30. Subband coding Large overlap dans le domaine temporel Faible overlap

    dans le domaine spectral  Les échantillons dans une bande sont corrélés 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -120 -100 -80 -60 -40 -20 0 frequency (in kHz) magnitude (in dB) (h k (n)), for k=0,1,2,3 Filter length N Overlap M
  31. Transform coding Large overlap dans le domaine spectral Faible overlap

    dans le domaine temporel Filter length N Overlap M 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 -50 -45 -40 -35 -30 -25 -20 -15 -10 -5 0 5 frequency (in kHz) magnitude (in dB) (h k (n)), for k=0,1,2,3
  32. Erreurs au pré-écho Erreurs de quantification en fréquentiel se répandent

    en temporel lors de la synthèse du son: 2500 3000 3500 4000 4500 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 magnitude 2500 3000 3500 4000 4500 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 time (in samples) magnitude time (in samples) Composantes à haute énergie 1 2 Pre-echo 3 1 2 3 Analyse Synthèse Peu d'énergie pour toute la longueur du filtre  peu de bits utilisés  relativement bcp d'erreurs de quantification
  33. Changement de fenêtres Basculement vers des fenêtres plus courtes lors

    des transitoires Réduit l'effet de pré-écho Long window short window Long-short window Short-long window Transient region Time (samples) 1 2 3
  34. Subband vs. Transform Valeurs typiques Avec les outils adéquats (quantification,

    compression sans pertes, ...) subband coding et transform coding sont comparables en termes de performances/complexité FFT 256...2048 2 TC Polyphase matrix 2...64 2...64 SBC Implémentation M N/M Type
  35. Codage sans pertes Enlever la redondance Huffman: Les mots les

    plus fréquents reçoivent les symboles les plus courts
  36. L'alphabet Morse international A .- B -... C -.-. D

    -.. E . F ..-. G --. H .... I .. J .--- K -.- L .-.. M -- N -. O --- P .--. Q --.- R .-. S ... T - U ..- V ...- W .-- X -..- Y -.-- Z --.. 0 ----- 1 .---- 2 ..--- 3 ...-- 4 ....- 5 ..... 6 -.... 7 --... 8 ---.. 9 ----. 36 symboles Morse nécessitent 6 bit -> 64 possibilités (A=000001, B=000010, ...) En exploitant les probabilités des lettres dans les mots, la longueur moyenne des symboles en Morse (A .. Z)  3.2
  37. Codage stéréo Pour les fréquences élevées, l'oreille humaine: Devient moins

    sensible aux différences inter-aurales Détermine la direction à partir des différences d'intensité uniquement Intensity Stereo Coding
  38. Codage stéréo Sum difference (MS) coding Code L-R et L+R

    séparément (efficace pour les basses fréquences) L+R: év. 1 bit en plus L-R: nettement moins de bits si canaux fort corrélés Ajustement du modèle perceptuel et de la quantification nécessaires L = [(L-R) + (L+R)] / 2 R = [(L+R) - (L-R)] / 2
  39. D'autres outils TNS: Temporal noise shaping Exploite post-masquage autour des

    transitoires PNS: Perceptual noise shaping Substitue les bandes de fréquence par une synthèse de bruit blanc dans le décodeur (applaudissements=bruit blanc...) LTP: Long term prediction Réduction supplémentaire de la corrélation dans les sous-bandes par prédiction dans le domaine temporel TWIN-VQ Autre type de quantification dans les sous-bandes ...
  40. Model based coding Classification pour tous signaux musicaux/voix Description paramétrique

    des transitoires Bruit généré par le décodeur (cf PNS) Sinusoïdes peuvent être représentées efficacement Transients Sinusoids Noise Ct Cs Cn
  41. Les transitoires -100 -50 0 50 100 150 200 250

    300 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 Temps (en échantillons) amplitude Début du transitoire Enveloppe paramétrisée Signal d'entrée
  42. MPEG Layer III Fait partie du standard MPEG-1 depuis 1993

    Développé par FhG et AT&T Basé en partie sur le MPEG Layer II THE Internet codec  mp3 De-facto mode is stereo at 128 kbit/s High quality at 160 kbit/s
  43. Le MP3 n'est PAS libre! De nombreux brevets couvrent le

    MP3 La plupart de Thompson et Fraunhofer Si l'utilisateur peut en bénéficier gratuitement, Rien ne garantit que cela le restera dans le futur Il n'en est pas de même pour l'encodage...
  44. Advanced audio coding: AAC Addendum au standard MPEG-2 depuis 1997

    Développé par Dolby, FhG, AT&T, Sony et d'autres Trois profils: Main, Low complexity, Sampling rate scalable* (Sony)) Twin-VQ (MPEG4 tool) pour les faibles bit-rates* Qualité stéréo HiFi à 128 kbit/s Qualité stéréo mp3-like à 80-96 kbit/s * peu de preuves de réelle efficacité
  45. Autres CODECs propriétaires AC 3 (Dolby) ATRAC (Sony)  MD,

    ATRAC3 Apt-x E-PAC (ATT) Qsound (Qdesign) ...
  46. Qualité <> bit-rate Qualité mp3 @128 kb/s Transparence MPEG Layer

    I 224 384 MPEG Layer II 160 192 à 224 MPEG Layer III 128 160 AAC 80 - 96 128 MPEG-4 CELP 16 (uniq voix) n.a. AC-3 160 192 à 224 ATRAC3 128 ? 160 ? ePAC 80 - 96 128 QDMC n.a. n.a. WMA ? ? SSC Cible 37 ?
  47. Jugement de qualité objectif Les spécifications traditionnelles de la HiFi

    comme le SNR sont sans valeur marketing pour les CODECs audio (SNR 13 dB !) Il faut faire des mesures qui tiennent compte du caractère perceptuel utilisé dans les CODECs Méthode rapide et bon marché pour évaluer les CODECs Où est le meilleur modèle? Dans le CODEC? ou dans l'outil de mesure objectif?
  48. Jugement de qualité subjectif Le seul outil correct mais... Cher

    Lent Interne ou externe? Formel ou informel? Demande une bonne préparation L'interprétation des résultats est délicate (stats)
  49. Ogg Vorbis Ogg Vorbis est du logiciel libre, donc gratuit

    et ouvert pour l'éternité! L'idée initiale a germé en 1993 Le projet Ogg Vorbis a débuté à l'automne 1998, peu après que Fraunhofer décida de reprendre le mp3 et de poursuivre tous les projets libres autour du mp3
  50. Ogg Vorbis La license mp3 était prohibitive pour ces [musiciens

    un peu programmeurs] qui se sont transformés peu à peu en [programmateurs un peu musiciens]! C'est un exemple typique de la communauté des logiciels libres: Si quelquechose manque, on ne s'en plaint pas, on le crée... Le projet continue à évoluer: meilleur encodeur, outils plus rapides, error correction, etc.
  51. Ogg? Vorbis? Xiph? Ogg est un format de bitstream très

    complet, aussi bien pour l'audio que la vidéo (cf Mpeg4) Vorbis et le nom du CODEC audio Xiph est la société hébergeant les principaux développeurs, Xiph nous a déjà donné l'excellent cdparanoia, outil d'extraction audio, sous la license libre GPL. Tarkin est le prochain grand projet de Xiph: avoir également un CODEC libre pour la vidéo Tous ces noms et symboles tordus sont expliqués: http://www.xiph.org/xiphname.html
  52. Et qu'est-ce que ça donne? Meilleur que le mp3 Equivalent

    à l'AAC et au mp3pro? Exemples... Streaming radio avec la BBC... Supporté par de plus en plus de softs: Winamp, Freeamp, JAVA, etc, etc VBR: penser en terme de qualité plutôt que de bitrate (CBR ou ABR)
  53. Principales composantes Un modèle psycho-acoustique Une courbe de masquage La

    quantification vectorielle (VQ) Le couplage entre canaux (channel coupling) Le codage sans pertes de Huffman
  54. Windowing Problème du pré-écho Emploi de fenêtres plus courtes lors

    des transitoires Pourquoi pas tout le temps? La résolution fréquentielle est moins bonne C'est le compromis résolution temporelle <> résolution spectrale
  55. Floor Le modèle psycho-acoustique détermine les fréquences inaudibles et le

    bruit de quantification permis (modèle basé sur les travaux de Robert Ehmer, années '50) Le floor est la courbe maximale de 3 autres: Le max. de masquage par le bruit (cf expérience) Le masquage dû aux sons (tone masking) L'ATH: absolute threshold of hearing en dernier recours, tout en tenant compte que l'utilisateur peut augmenter le son lors des 'blancs'
  56. Encodage et décodage du floor Le floor étant déterminé, il

    reste à coder les résidus, différence entre le signal original et le floor. Mais le floor sera quantifié dans le bitstream donc on va d'abord calculer cette quantification, se servir de la sortie quantifiée, la décoder puis seulement la soustraire au signal Ainsi l'erreur de quantification du floor ne se répercutera pas sur le calcul des résidus.
  57. Les résidus Ils ont une très faible dynamique Obtenus séparément

    pour chaque canal On peut leur appliquer le channel coupling: Passage en coordonnées polaires rectangulaires L'angle (la phase) est fortement quantifié Puis la quantification vectorielle: Emploi de codebooks joints au bitstream Les mots des codebooks sont choisis selon un arbre d'Huffman
  58. VQ

  59. On emballe... Paquet Vorbis: Header avec fréquence, channels, etc Un

    tag avec des infos diverses (cf id3 sur mp3) Les codebooks Floor gauche Floor droit Les résidus Mais pas d'infos de synchro
  60. Ogg: container format C'est un format générique multimédia Audio, voix,

    video, ... Ajoute ses propres headers, sorte d'enveloppe supplémentaire autour du bitstream Vorbis Permet le streaming et la re-synchronisation Il est possible de s'en passer: utiliser l'UDP Cf Icecast