Hallo,
ich hoffe das hier ist der richtige Bereich....
Kurz zum Hintergrund meiner Frage:
ich möchte gerne Musik von einem embedded Gerät abspielen.
Die Daten kommen von SD-Karte, gelesen und verarbeitet werden können
realistisch ~300 KByte pro Sekunde, wobei ich das ungern ausreizen
würde, schon wegen der bloßen Datenmenge.
Abgespielt werden soll .wav, weil es mir mit mp3 zu kompliziert wird.
Die Ausgangdaten sind allerdings mp3, hauptsächlich 256kbit/s.
Das Audiogerät zum Abspielen bietet 16 Bit bei 48KHz und Stereo. An sich
würde das so gehen zu verarbeiten, ich würde es aber trotzdem gerne
etwas reduzieren.
Für mich kommen aktuell 3 Parameter in Frage:
- Stereo/Mono
- 48/24 Khz Sampling
- 16/10/8 Bit pro Sample
Ich dachte mir: probier es doch mal aus und erzeuge das Format
8Bit/24Khz/Mono damit und vergleich mal ob es mich stört.
Jetzt das eigentliche Problem:
Das Problem: weder ich, noch meine Frau, noch meine Tochter(7) hören im
Blindtest einen Unterschied.
Getestet habe ich 3 verschiedene Titel auf meinen (für Audiophile)
Low-Budget Boxen:
https://www.hifi-journal.de/testberichte/lautsprecher/14-test-edifier-r1280t
Mit nochmals reduzierten Settings höre ich deutliche Unterschiede:
- bei 7 Bit wahrnehmbares Grundrauschen
- 16 KHz klingt schon fast wie Telefon
Haben wir miserable Ohren? Schlechte Titelauswahl? Da man mit diesen
Settings schon mp3 Größe erreicht kann ich mir nicht vorstellen das dies
normal ist.
Einen Fehler kann ich ausschließen, weil ich eben die "kleine" .wav
abspiele.
Ideen dazu?
Hängt offensichtlich auch sehr stark vom Inhalt ab. Wenn du z.B. den
Unterschied zwischen Stereo und Mono nicht gehört hast, dann ist in
deinem Beispiel anscheinend nix was Stereo wirklich nutzt. Bei anderen
Beispielen kann das schon ganz anders aussehen.
Es wird sich mit Auflösung und Samplingrate ähnlich verhalten. Hängt
stark vom Inhalt ab welche Qualität notwendig ist.
Ferner weisst du nicht wo das mp3 nun herkommt. Wurde das 256kbit/s mp3
aus einem 8Bit/24Khz/Mono wav erzeugt ist dein Ergebnis nicht
überraschend ;-)
Hör Dir mal mit 8 Bit Dynamikumfang ein Stück an, was ganz langsam
leiser wird (fading). Da hört man üblicherweise ein ansteigendes
Quantisierungrauschen.
Außerdem würde ich zum Abhören brauchbare Kopfhörer verwenden...
Was die 48/24 KHz angeht:
Rein theoretisch kannst du mit 24kHz Samplerate Töne wiedergeben, die
12kHz Frequenz haben. Mein Hörvermögen endet inzwischen bei 16kHz, so
dass damit also bereits fast der gesamte Frequenzbereich abgedeckt wäre,
den ich wahrnehmen kann.
Dass deine Familie zwischen 24 und 48 kaum einen Unterschied wahrnimmt,
wundert mich nicht. Den Unterschied wird man wohl nur bei ungewöhnlichem
Tonmaterial bemerken.
Nimm mal als Ausgangsmaterial die Stimme einer Nachrichten-Sprecherin.
Das mache ich immer, um die Tonqualität einer Abspiel-Anlage zu
beurteilen. Achte vor allem darauf, wie deutlich du die Worte verstehen
kannst (je älter du bist, umso besser klappt dieser Test bei Vergleich
unterschiedlicher Geräte). Achte auch darauf auf die Unterscheidbarkeit
von "s" "z" und "f". Ich habe schon viele Mini-Lautsprecher gesehen, die
mit lautem Bass beeindrucken, aber bei gesprochenen Worten nicht
zwischen "Wasser" und "Waffer" unterscheiden konnte. Oder wo das "s"
auffällig zischte (kennt man vielleicht noch vom UKW Radio, da passierte
das auch oft).
Danke schonmal!
Hatte mit deutlich kritischeren Stimmen gerechnet, für manche wäre ja
schon 256kbit mp3 eine Qual.
Wenn es so wenig ausmacht, das es nur in besonderen Situationen ein
Unterschied macht...ich glaube dann spare ich es mir tatsächlich.
Ist ja nicht aus der Welt, wenn ich doch mal 16 Bit/48Khz "brauche" das
zu verwenden.
Für den Standard, abgespielt in Zimmerlautstärke von einfachen Boxen
scheints aber die Reduktion auch zu tun.
Oft unterschätzt bei Audioanwendungen ist die Qualität der
Stromversorgung.
8bit/24KS sollte auf eine gescheiten Anlage allein gegen CD Qualität
auffallen, negativ.
Zeit lassen beim Hören, nicht jedes Musiksignal ist geeignet Unteschiede
aufzuzeigen.
Fuer das kaputtkomprimierte Doedelradio aka UKW reichen wirklich 8 Bit.
Pausen gibt es da eh nicht, sondern nur einen sabbelnden Moderator.
Falls der Stereoeffekt auf der Strecke geblieben ist, kein Wunder,
ist doch die Defaulteinstellung der MP3-Encoder die Bitrate
bevorzugt der Summe der Kanaele anheim zu stellen.
Klar das da was auf der Strecke bleibt.
Das ist doch total verrückt. Damals, als wir noch Kassettenrekorder
benutzten, gingen Dynamik und Frequenzen an die Grenzen des
Wahrnehmbaren.
Heutzutage sind die billigsten Geräte besser als ein ungeschultes Ohr.
Aber die heutige Musik könnten wir genau so gut mit Kassette und
Plastiklautsprecher abspielen.
Wenn die Audiodatei keine grösseren Lautstärkeunterschiede beinhaltet
(wie zb klassische Musik) dann fallen 8 bit kaum auf oder dann eher in
Form von Rauschen, was ich zb kaum störend empfinde. Viel deutlicher
sind Kürzungen der samplingrate, da dies den Frequenzumfang beschneided
und somit alles dumpfer klingen lässt und wie gesagt Zischlaute
verschmiert
Tja, geschulte Ohren habe ich wohl nicht.
Vielleicht zum Glück, dann bin ich nicht auf teures Equipment
angewiesen.
Hab es jetzt direkt im Gerät probiert und bin zufrieden, das ist erstmal
das Wichtigste.
Dazu eine Randfrage:
Im Moment erzeuge ich 8Bit signed aus 16 Bit signed indem ich die
unteren 8 Bit abschneide.
Bei der Rekonstruktion fülle ich, egal ob positiv als auch negativ, mit
Nullen auf.
Kommt mir irgendwie komisch vor.
Bezüglich Samplingrate: ich gehe ja von 24Khz wieder auf 48 hoch. Sollte
man hier linear interpolieren, das Sample einfach 2 mal ausgeben oder
was ganz anderes machen?
FPGA zum Spass schrieb im Beitrag #5921686:
> Bei der Rekonstruktion fülle ich, egal ob positiv als auch negativ, mit> Nullen auf. Kommt mir irgendwie komisch vor.
Ist aber OK, den feinen Unterschied hörst du ja doch nicht.
Aber warum willst du das Signal wieder auf 16bit 48kHz hoch rechnen? Ich
kann darin keinen Vorteil erkennen.
> Sollte man hier linear interpolieren,> oder das Sample einfach 2 mal ausgeben
Wenn dein Tiefpass-Filter für 24kHz Samplerate ausgelegt ist, wird es
keinen Unterschied machen. Wenn dein Filter für 48kHz Sampelrate
ausgelegt ist, dann wird das Interpolieren sicher den Klang verbessern.
Am besten ist aber sicher, möglichst wenig hin und her zu rechnen.
FPGA zum Spass schrieb im Beitrag #5921686:
> Bei der Rekonstruktion fülle ich, egal ob positiv als auch negativ, mit> Nullen auf.> Kommt mir irgendwie komisch vor.
Etwas besser ist es, das letzte Bit 8-mal hintendran zu hängen. Da wird
der Wertebereich nicht verkleinert.
Danke, das klingt gut, ist auch nicht so aufwändig zu rechnen, schön.
Stefanus F. schrieb:> Aber warum willst du das Signal wieder auf 16bit 48kHz hoch rechnen?
Weil mein Interface nach außen fix 48Khz/16 Bit Stereo ist.
Ein 32 Bit Zugriff = Links/Rechts-Sample für den DAC, 48000 mal pro
Sekunde.
Aktuell rechne ich für jedes 8 Bit Sample:
"wert = wert << 24 | wert << 8"
und schreibe es dann ZWEI mal Richtung DAC wegen der Samplingrate.
FPGA zum Spass schrieb im Beitrag #5921841:
> "wert = wert << 24 | wert << 8"
Warum schiebst du 24 Bits nach Links, um 16 Bits zu bekommen?
> und schreibe es dann ZWEI mal Richtung DAC wegen der Samplingrate.
Aber wenn du zweimal den selben Wert schreibst, hast du effektiv immer
noch nur 24kHz Samplerate. Der Filter am Ausgang des DAC muss
dementsprechend aufgebaut bzw. konfiguriert sein. Sonst verzerrt es ganz
hässlich.
Stefanus F. schrieb:> FPGA zum Spass schrieb im Beitrag #5921841:>> "wert = wert << 24 | wert << 8"> Warum schiebst du 24 Bits nach Links, um 16 Bits zu bekommen?
Schrieb er doch. Das ist die Aufbereitung für ein 32bit-Sample, welches
beide Stereo-Kanäle enthält. Hier wird also von Mono auf Stereo und von
8Bit auf 16Bit aufgeblasen.
An sich könnte ich den DAC auch umkonfigurieren und dann mit anderen
Samples nach draußen gehen.
Ich wollte mir aber die vollen Möglichkeiten offen halten.
In Software ein bischen schieben und das Sample zwei mal Richtung DAC
schieben ist jetzt recht wenig Aufwand.
Stefanus F. schrieb:> Der Filter am Ausgang des DAC muss> dementsprechend aufgebaut bzw. konfiguriert sein.
Gute Frage, der DAC (WM8731) kann da Verschiedenes, der Standard scheint
aber aktuell zu passen, hört sich genauso an wie aus dem PC.
FPGA zum Spass schrieb im Beitrag #5921254:
> Abgespielt werden soll .wav, weil es mir mit mp3 zu kompliziert wird.> Die Ausgangdaten sind allerdings mp3, hauptsächlich 256kbit/s.
Schau dir mal die Chips von VLSI an z.B. den VS1011. Damit wird es
einfacher MP3 abzuspielen als die WAVs auszugeben.