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