kleines mp3 experiment

Erstellt 7 Antworten8 Beiträge
Startbeitrag#1
moin!
ich saß letzte nacht und erstellte einige mp3 cd´s fürs autoradio.
320kb strereo.
da überkam mich die idee mal zu schauen wass passiert wenn ich mit einem phasengetauschten wav der selben datei eine nullung probiere.
erstmal musste ich fesstellen das ich das wav um 1105 sampels verschieben musste.
das mp3 war vorne länger und hinten dementsprechend kürzer.
(da macht man stirnseitig schon etwas den skibbe)
das ergebnis war interessant. größtenteils höhen und hall.
also hab ich in die vollen gegriffen und eine 128 kb datei erstellt.
ergebnis, die sprachverständlichkeit des resultierenden signals war garnichtmal schlecht. erinnert ein wenig an "pubertätskassette nach bandsalat"
bei dem ergebniss wundert mich das mp3 überhaupt funktioniert.
ich denk noch drüber nach.
denkanstösse bitte in die runde werfen

grüße
ZitierenPost melden
Antwort#2
Wenn ich das Prinzip von mp3 richtig verstanden habe, dann wird doch genau das weggelassen, wovon der Konversionsalgorithmus denkt, daß man es nicht höre.
Wenn ich dein Experiment richtig verstanden habe, dann hast du aus einem WAV ein mp3 gemacht, dieses zurückkonvertiert und das phaseninvertierte Original-WAV dazugepackt.
Folge müßte theoretisch sein, daß genau die Unterschiede übrigbleiben - also das, was nicht in beiden Dateien gleich ist. Ich glaube, daß viele hier die Erfahrung gemacht haben, daß Hall - insbesondere Kunsthall - relativ schnell wegmaskiert wird (und also ein ideales Opfer für mp3-Algorithmen...).
Interessant finde ich, daß anscheinend bei 128k so viel weggelassen wird, daß das, was weggelassen wird immer noch verständlich ist...
Man müßte jetzt mal mit derselben Datei eine kleine Versuchsreihe starten: 320, 256, 160, 128, 80, 64. Ich vermute, daß die Sprachverständlichkeit im "genullten" Differenzsignal umso größer wird, je geringer die Bitrate der mp3-Datei ist.
ZitierenPost melden
Antwort#3
Ich sehe ein Problem an dieser Stelle beim Übereinanderschieben der Wav - files. Wie soll man wissen ob die Position bytegenau "richtig" ist? Da reicht ja schon 1 Byte Verschiebung um ein total gegenteiliges Ergebnis zu bekommen. IMHO eine große Fehlerquelle in diesem Experiment, ansonsten ein interessanter Versuch.
Erdie
ZitierenPost melden
Antwort#4
Habe ich auch schonmal gemacht und auch einigen gepostet. Man hört in der Tat eine Menge Matsch. Ich kann mich allerdings errinnern, Schwierigkeiten ehabt zu haben, die Summe aus Original und dem inverse Signal korrekt auf Null zu bringen. Es gabe mehrere Minima, wenn man bitweise verschob mit jeweils leicht abweichendem Klang. Man sollte auchmal probieren, mit den Amplituden zu spielen.
ZitierenPost melden
Antwort#5
Moin...
"Habe ich auch schonmal gemacht und auch einigen gepostet. Man hört in der Tat eine Menge Matsch. Ich kann mich allerdings errinnern, Schwierigkeiten ehabt zu haben, die Summe aus Original und dem inverse Signal korrekt auf Null zu bringen. Es gabe mehrere Minima, wenn man bitweise verschob mit jeweils leicht abweichendem Klang. Man sollte auchmal probieren, mit den Amplituden zu spielen. "
Man kann sich da mit Hilfe einer Kreuzkorrelation jede Menge Probier-Arbeit ersparen. Ich habe das zwar in DIESEM Anwendungsfall noch nicht ausprobiert, aber die KKF sollte einem auf jeden Fall den korrekten Bit-Offset liefern. Nebenbei erfährt man übrigens aus der KKF dann auch einiges über "typische" entfernte Frequenzen.
Evtl. kann man sogar Eigenschaften des Algorithmus ablesen, z.B. in wie großen Gruppen die Samples bearbeitet werden (so etwas hatte ich mal bei einem FFT-Filter: man konnte in der KKF periodische Peaks alle 2048 Samples erkennen)...
Wäre also vielleicht mal interessant.
Jens
ZitierenPost melden
Antwort#6
"Kreuzkorrelation"
Wie mache ich das ?
ZitierenPost melden
Antwort#7
Moin...
"Wie mache ich das?"
Zunächst mal zum Verständnis, was das überhaupt ist: http://de.wikipedia.org/wiki/Kreuzkorrelationsfunktion
Der Verweis deswegen, weil man hier so schlecht Formeln notieren kann...
Anschaulich erklärt: Du nimmst zwei Zeitreihen A und B (hier z.B. MP3 und WAV). Die verschiebst du gegeneinander um X Samples, multiplizierst beide Zeitreihen dann sampleweise miteinander und integrierst dann das Ergebnis über die Länge der Zeitreihe auf. Man erhält dann je Verschiebungslänge X einen Wert, der die Korrelation (den "Ähnlichkeitsgrad") der beiden Zeitreihen für diese Verschiebung repräsentiert. Die KKF ist also eine Funktion von X, die ihr Maximum dort hat, wo die beiden Funktionen sich am ähnlichsten sind.
So kann man z.B. auch Laufzeitdifferenzen zwischen zwei Mikrofonen herausfinden.
Wie du das jetzt praktisch anstellst? In Audio-Software habe ich eine solche Funkion noch nicht gefunden. Aber in allen Signalanalyse-Programmen, Computeralgebra-Software etc. ist sowas drin, und jede Programmiersprache bietet dir dafür fertige Routinen. Das ist genauso Standard wie z.B. die FFT.
Wenn du also z.B. Zugriff auf MATLAB o.ä. hast, geht das einfach.
Jens


http://de.wikipedia.org/wiki/Kreuzkorrelationsfunktion
ZitierenPost melden
Antwort#8
Guten Tag
ich hätte noch ein paar passende Links zum Thema falls noch Intresse besteht.

[Beitrag von JohnV über die Untauglichkeit solcher Analysen]
http://de.europe.creative.com/support/forums/thread.asp?thre=34500&foru=12&page=2
[Observing the Loss (u.a. Post #18)]
http://www.hydrogenaudio.org/forums/index.php?showtopic=11286
[Dualstream support for MPC" - Korrekturdatei für Musepack mit sox]
http://www.hydrogenaudio.org/forums/index.php?showtopic=19713&view=findpost&p=194036
Gruss
Lego
ZitierenPost melden

Deine Antwort

Du kannst ohne Anmeldung schreiben.