dB - TU Ilmenau

Transcrição

dB - TU Ilmenau
Multimediale Werkzeuge, Audio: Formate, Tools
Sound/Audio Objekte
Formate, Beispiele:
• Mp3 (Kurz für MPEG1/2 Layer 3)
• PCM (Pulse Code Modulation, z.B. Wave Datei),
übliche Formate:
CD: 44100 Hz Abtastrate, 16 Bits/Abtastwert.
=> Maximale Frequenz des Audio-Signals < 22050
Hz (echt kleiner)
Schwingungen/sekunde →22050 Hz
Abtastung:
44100 Abtastwerte
(AW) pro sek.
→nur Nullen nach Abtastung
praktisch:
< ca. 20-21 kHz wegen begrenzter Flankensteilheit
der Rekonstruktions-Tiefpass Filter
(Sicherheitsabstand).
=> Signal-to-Noise Ratio = Signal/Noise
(hier : Max. Signal / Noise).
Schätzung: SNR = 6 dB/bit,
also SNR = 16 * 6 dB= 96 dB
2
Voltage A
Power A
R
dB : 10⋅log 10 (
)=10⋅log 10 (
)⇒
2
Power B
Voltage B
R
Voltage A
⇒ 20⋅log 10 (
)
Voltage B
2
( log(x )=2⋅log (x) )
d.h.: ist unabhängig von der Wahl von Leistung oder
Spannung für Signal oder Noise.
Beispiel:
Umrechnung der 96 dB in Spannungsverhältnis:
96=SNR(dB)=20⋅log 10 (
Signal
)
Noise
Signal/Noise
SpannungsVerhältnis
(
→10
SNR
)
20
96
( )
Signal
4.8
=
→10 20 =10 =63095
Noise
Wichtige Eigenschaft des dB Masses:
Multiplikationen von Faktoren werden zu
Additionen von deren dB Werten. Beispiel: Wir habe
2 Dämpfungsglieder oder Antennen-Kabel mit einem
Dämpfungsfaktor (Leistung) von je 0.1 Dies
entspricht einem dB Wert von 10⋅log 10 (0.1)=−10
dB.
Über die 2 Dämpfungsglieder erhalten wir eine
Gesamtdämpfung von deren Produkt, also
0.1*0.1=0.01. Dies entsrpicht -20 dB. Wir können
nun diese Multiplikation vermeiden, indem wir
einfach das entsprechende Resultat bekommen
indem wir die beiden dB Zahlen addieren: -10dB+(10)dB =-20 dB. Dies ist z.B. im Studio zum schnellen
im Kopf berechnen einer Gesamt-Dämpfung einer
Verbindung aus mehreren Kabeln sehr praktisch.
dB(x) for voltage
0 dB
6 dB
10 dB
x (linear factor)
1
≈2
√ 10
20 dB
60 dB
-10 dB
10
1000
-20 dB
-60 dB
−∞ dB
0.1
1/1000
0
√ 0.1
Rules:
dB (x)+dB( y)=dB (x⋅y)
k⋅dB( x)=dB( x k )
weitere gebräuchliche Formate:
Abtastfrequenzen: 32000 Hz, 22050 Hz, ca. 11000
Hz (Apple),
8000 Hz (Sprache, < 3.5 khz Audio), 48 kHz, 96kHz.
192 kHz (High quality Audio)
Anzahl der Bits/Abtastwert: 8bit, 20 bit, 24 bit, 32 bit
Quantisierung:
Gleichförmige Quantisierung: Unterteilung der
moeglichen Amplituden in gleich grosse
Quantisierungsintervalle. Bei N bits z.B.:
Quant(x)=round(x/Delta)
Delta= (Max-Min)/2^N
Rekonstruktion, Umkehrung der Quantisierung:
Quant(x) gibt die Nummer des
Quantisierungsintervalls an. Also ist die Umkehrung:
x_rek=Quant(x)*Delta
Beispiel:
x ist im Bereich -1 bis +1, x=0.6, N=4 bits.
D.h. Delta=2/16=1/8
Quant(x)=round(0.6/(1/8))=5
Beachte: Quant(x) ist vorzeichenbehaftet. Dafuer
gibt es verschiedene Ansaetze, z.B. auch die
Verschiebung des Intervals, so dass nur positive
Zahlen erscheinen, oder das separate codieren des
Vorzeichens.
x_rek=5*1/8=0.625
Wir sehen eine Abweichung vom Originalwert 0.6,
das ist der sog. Quantisierungsfehler, der ist hier
0.025.
Sprache
Für Sprache gebräuchlich:
mu-Law: Ungleichförmiger Quantisierer, um das SNR
bei kleinen Signalen zu verbessern:
Feine Schritte bei kleineren Amplituden, gröbere
Schritte bei großen Amplituden.
• SNR sinkt nicht mehr wesentlich bei kleinen
Amplituden. Z.B. mu-Law bei 8 KHz und 8 bit /
Abtastwert wichtig wegen geringem SNR
• Verwendung z.B. in ISDN Telefonen
Out
In
μ-Law
Im Bild: Ungleichfoermige Quantisierung, x-Achse:
Input des Quantisierers, y-Achse: Output des Dequantisierers.
Z.B. sog. Mu-Law: Wir verwenden vor einer
gleichförmigen Quantisierung eine nicht-lineare
Funktion zur Kompression des Wertebereichs, und
nach der gleichformigen Rekonstruktion die inverse
Funktion zur Expandierung des Wertebereiches. Bei
mu-Law: Nach z.B. 16 bit A/D converter wenden wir
folgende Funktion an
y=F ( x)=sgn( x)
ln(1+μ|x|)
ln(1+μ)
−1⩽x⩽1
Diese Werte schicken wir dann in einen 8-bit
Quantisierer. Nach dem 8-bit De-Quantiserer wenden
inverse Funktion zur Rekonstruktion an:
−1
F ( y)=sgn( y)(1/μ)((1+μ)|y|−1)
−1⩽ y⩽1
(sh. Wikipedia, mu-law)
D.h. Bitrate (Bits/Sekunde):
8000
Abtastwert
bit
bit
×8
=64000
Sekunde
Abtastwert
Sekunde
Bitrate CD Signal: 16 bit/AW, 44100 AW/s
Bitrate = 16 bit/AW * 44100 AW/s= 705.6 kb/s
CD's sind immer stereo, also zusammen
2*705.6 =1411.2 kb/s
Kompressionsrate von MP3: Bitrate für einen
Monokanal: Z.B. 64 Kb/s
Also: Kompressionsrate =705.6 kb/s / 64 kb/s
=11.025
D.h. wir bekommen auch erhebliche Kompression bei
MP3 (nicht nur ein Format!)
Mehr Audio Formate, Tools wie Adobe Audition,
Audacity
PCM: Signal, z.B. vom Mikrofon
quantisierte Abtastwerte, z.B. CD: 44 100
Abtastwerte (AW) pro Sekunde 16 bit -> 2 byte
-> 2 Möglichkeiten, diese 16 bit/ 2 byte pro AW
darzustellen!
Es gibt verschiedene Rechnerarchitekturen, die
intern 16 bit mit zuerst dem höherwertigen byte
oder dem niederwertigen byte darstellen.
Entsprechend gibt es 2 Darstellungen für PCM
Audio-Formate:
• sog." Little Endian": Das 1. byte ist das
niederwertige
• sog." Big Endian": Das 1. byte ist das
höherwertige.
Diese Information muss der Nutzer kennen wenn das
Audio-Signal im sog. "raw" Format vorliegt, d.h.
wenn das File nur die AW des Signals enthält.
-> Für diese Information sind die sog. "Header"
in Audio-Formaten nützlich, wie z.B. in den
Formaten:
.au, .snd (SUN), .aif (Apple), .wav...
Information in Header, u.a.: Little-Endian oder
Big-Endian, Abtastrate, Bits pro AW, Lineare oder
mu-Law Kennlinie, Verwendung von Kompression,
wie z.B. ADPCM...
Weiter: einfache Kommentare zum Inhalt.
Beispiel zum Einbinden von Audio Dateien in
Webseiten in HTML: Einen Link auf die Audio Datei
setzen:
<html>
<head>
<title>Verweise auf sound Dateien</title>
</head>
<body>
<h1>Sound File</h1>
<p>
<a href="Beethovens Symphonie Nr. 9
(Scherzo).mp3">Beethovens Symphonie Nr. 9
(Scherzo).mp3</a><br>
Eine Sound Datei
</p>
</body>
</html>
Teste es mit z.B.:
firefox soundlink.html
Beispiel mit HTML5:
<html>
<head>
<title>Audio Demo</title>
</head>
<body>
Testing HTML 5
<audio src="groove1.ogg" controls preload="auto"
autobuffer></audio>
</body>
</html>
Teste es mit z.B.:
firefox audio_demo.html
und
firefox audio_demo2.html
Codec support in modern desktop browsers
(Stand:2010)
Browser
FireFox 3.6+
Ogg Vorbis MP3 WAV
✓
Safari 5+
Chrome 6
Opera 10.5+
Internet Explorer 9 (beta)
✓
✓
✓
✓ ✓
✓
✓
✓ ✓
From: http://html5doctor.com/native-audio-in-thebrowser/
Beachte: HTML5 und Browserunterstützung ist noch
im Fluss.
Beispiel Live Streaming von Video in einer
Webseite mit Python Flask: In Video Streaming
example:
python main.py
Im Browser gehe nach:
http:0.0.0.0:5000
Beachte: In der Webseite startet in der Tat das Live
Video der angeschlosssenen Webcam.
Siehe auch:
https://github.com/log0/video_streaming_with_flask_
example
ADPCM: Adaptive Differential Pulse Code
Modulation.
Prinzip:
Benachbarte AW sind meist sehr ähnlich, d.h. wir
können Bits bei der Darstellung sparen, wenn wir nur
die Differenz zum vorherigen Abtastwert übertragen
oder speichern (daher "Differential")
Übertragen der Differenz von
praedizierten und den tatsaechlichen
Werten
Nächster Schritt:
Wenn die AW z.B. auf einer Kurve Liegen, die durch
eine Grade angenähert werden kann, können wir den
nächsten Abtastwert ungefähr vorausberechnen
oder schätzen ( Extrapolation der Graden), und die
Differenz zum vorausberechneten Wert übertragen.
Der Empfänger führt die gleiche Vorausberechnung
durch, und addiert diese Differenz darauf.
Das Verfahren kann erweitert werden auf Kurven,
auch höherer Ordnung. Dafür werden nur mehr AW
aus der Vergangenheit benötigt, um diese Kurven
extrapolieren zu können.
Dieses Verfahren der Extrapolation wird "Prädiktion"
genannt.
Anwendung:
Verlustlose Audiocodierung, Sprachcoder.
ADPCM Prinzipstruktur
Encoder
Decoder
Audio
Prädiktionsfehler
Prädiktor
Prädiktor
Prädizierter
Wert
Verzögerungsglied
Für 1 AW, d.h. Prädiktor
“sieht” nur vergangene AW!
Wird an das
Signal adaptiert
Üblicher Kompressionsfaktor von ADPCM: Ca. 2
Stereo, Multikanal
Mikrofone
Lautsprecher
Woher bestimmt das menschliche Gehirn die
Richtung eines Schallereignisses?
Antwort:
• Laufzeitunterschiede/Phasendifferenzen
zwischen den Ohren, bei Frequenzen unterhalb
ca. 1 kHz.
• Pegelunterschiede zwischen den Ohren (Paning),
intensity stereo.
Intensity Stereo ist weit verbreitet, weil es für die
Produktion einfach ist (Lautstärkeunterschiede durch
Regler), und weil es für die Übertragung vorteilhaft
ist: keine Phasenunterschiede, d.h. Differenzen
werden gering.
• Simples verfahren, z.B. in MP3 verwendet:
statt Links/Rechts wird Summe (Mitte) und
Differenz (Seite) übertragen, wenn es vorteilhaft
ist, ansonsten wird Links/Rechts getrennt
übertragen.
• Verfeinerung: Anwendung dieses Verfahrens auf
sog. Teilbänder, also versch. Frequenzbereiche.
(z.B. in MPEG2/4 AAC)
Neuere Kompressionsformate
• MPEG2/4 AAC (Advanced Audio Coding) gedacht
als Nachfolger von MP3. Kompressionsrate ca.
1.5..2 größer als MP3 Verwendung z.B. in Apple
iTunes, Handys..., File-Endung z.B.: .mp4, oder
.aac
• MPEG4: Lossless Audio Coding, Verlustlose
Komprimierung, d.h. die Original AW werden
nach der Decodierung wieder exakt hergestellt.
Dies ist anders als bei der verlustbehafteten
Codierung (MP3, AAC), wo das rekonstruierte
Signal gleich klingt, aber andere AW hat.
(Unvollkommenheit des Ohres, Psycho-Akustik)
• Kompressionsfaktoren von Lossless Compression
sind abhängig vom Signal, meist um Faktor 2.
Verwendetes Verfahren: Meistens prädiktive
Codierung.
• MPEG 4 Scalable Lossless: Deckt Bereich von
Lossless bis Perceptual Coding (AAC) ab, also
Kompressionsraten von Ca. 2 bis über 10!
Anwendungen:
Archivierung, Studios mit Bearbeitung des Signals
und mehreren Codier/Decodier Schritten.
(Tandem Coding Problem des Perceptual Coding, mit
jedem Codier/Decodier-Schritt verschlechtert sich die
Qualität).
Durch höhere Bitrate bekommen wir "Reserve".
Verwendetes Verfahren: Integer-to-Integer MDCT
(Filterbank).
Bearbeitung (z.B. Adobe Audition, Audacity)
Filter, Equalizer, ändern der Abspiel-Geschwindigkeit
ohne Tonhöhenänderung (Verwendung sog.
Filterbänke)
N ≈ 1000
N Frequenzbereiche
z.B.
0...22 kHz
hN-1(n)
x(n)
Eingang
.
.
.
21980...22000 Hz
↓r
yN-1(n)
.
.
.
.
.
.
y1(n)
y0(n)
h1(n)
22...44 Hz
↓r
h0(n)
0...22 Hz
↓r
Inputsantworten der Filter
Verringerung der Abtastrate
Um Faktor r, also schnelleres Abspielen
->Tonhöhe bleibt durch die Teilband-Zerlegung
konstant.
Weitere Möglichkeit der Verarbeitung:
statt Downsampler wird ein Verstärkungs- oder
Dämpfungs-Faktor eingebaut.
-> Wir bekommen einfach wählbare Filter oder
Equalizer
y(n)
Ausgang