$30 off During Our Annual Pro Sale. View Details »

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

    Présentation basée sur les matériaux de
    Werner Oomen & Nicolas Werner
    que je remercie au passage

    View Slide

  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

    View Slide

  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...

    View Slide

  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

    View Slide

  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)

    View Slide

  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

    View Slide

  7. Limaçon et membrane basilaire
    Déplacement
    de la
    membrane
    basilaire...
    Cellules
    nerveuses
    Signaux au
    cerveau via
    les nerfs

    View Slide

  8. 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...

    View Slide

  9. 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

    View Slide

  10. 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.

    View Slide

  11. 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

    View Slide

  12. 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.

    View Slide

  13. 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

    View Slide

  14. 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

    View Slide

  15. 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)

    View Slide

  16. 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

    View Slide

  17. Masquage spectral
    Seuil
    d'audibilité
    inaudible
    Audible
    Seuil
    masqué
    Fréquence
    (linéaire)
    Amplitude
    (log)
    Inaudible
    audible

    View Slide

  18. 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

    View Slide

  19. 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)

    View Slide

  20. 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

    View Slide

  21. 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

    View Slide

  22. 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.

    View Slide

  23. Buried data
    13dB SNR perceptually
    shaped noise
    Masked
    error
    power
    Frequency
    Amplitude (log)
    13dB SNR white noise
    Masked
    error
    power
    Frequency
    Amplitude (log)
    audible

    View Slide

  24. 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

    View Slide

  25. 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.

    View Slide

  26. Les principes utilisés
    pour le codage audio

    View Slide

  27. 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

    View Slide

  28. 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

    View Slide

  29. 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.
    )

    View Slide

  30. 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

    View Slide

  31. 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...

    View Slide

  32. 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.

    View Slide

  33. 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

    View Slide

  34. 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

    View Slide

  35. 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

    View Slide

  36. 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

    View Slide

  37. 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

    View Slide

  38. Codage sans pertes
    Enlever la redondance
    Huffman:
    Les mots les plus fréquents reçoivent les symboles les
    plus courts

    View Slide

  39. 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

    View Slide

  40. 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

    View Slide

  41. 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

    View Slide

  42. 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
    ...

    View Slide

  43. Différentes façons d'encoder...
    Pour différents types de sons
    Castagnettes Clavecin Heavy metal
    Fréquence
    Temps

    View Slide

  44. 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

    View Slide

  45. 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

    View Slide

  46. Les sinusoïdes
    Fréquence (en kHz)
    250
    7
    0
    0 Temps (en ms)

    View Slide

  47. Les CODECs disponibles

    View Slide

  48. 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

    View Slide

  49. 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...

    View Slide

  50. View Slide

  51. 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é

    View Slide

  52. Autres CODECs propriétaires
    AC 3 (Dolby)
    ATRAC (Sony)  MD, ATRAC3
    Apt-x
    E-PAC (ATT)
    Qsound (Qdesign)
    ...

    View Slide

  53. 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 ?

    View Slide

  54. 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?

    View Slide

  55. 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)

    View Slide

  56. Références
    Ted Painter and Andreas Spanias, Perceptual
    Coding of Digital Audio, IEEE , 2000

    View Slide

  57. Ogg Vorbis

    View Slide

  58. 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

    View Slide

  59. 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.

    View Slide

  60. 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

    View Slide

  61. 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)

    View Slide

  62. View Slide

  63. Références
    Le site officiel
    http://www.xiph.org/ogg/index.html
    http://www.xiph.org/about.html
    Why artists should be using Ogg Vorbis
    http://itw.itworld.com/GoNow/a14724a50163a75981044a4

    View Slide

  64. Ogg Vorbis en profondeur

    View Slide

  65. 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

    View Slide

  66. Fonctionnement de l'encodeur

    View Slide

  67. 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

    View Slide

  68. 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'

    View Slide

  69. Exemple de floor

    View Slide

  70. 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.

    View Slide

  71. 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

    View Slide

  72. VQ

    View Slide

  73. Fonctionnement du décodeur

    View Slide

  74. 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

    View Slide

  75. 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

    View Slide

  76. THE END

    View Slide