Forum: Mikrocontroller und Digitale Elektronik Audio abspielen: Sampling und Bitrate


von FPGA zum Spass (Gast)


Lesenswert?

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?

von test (Gast)


Lesenswert?

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 ;-)

von Bernd (Gast)


Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

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

von FPGA zum Spass (Gast)


Lesenswert?

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.

von NichtWichtig (Gast)


Lesenswert?

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.

von ... (Gast)


Lesenswert?

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.

von Noch eine Meinung (Gast)


Lesenswert?

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.

von GHz-Nerd (Gast)


Lesenswert?

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

von FPGA zum Spass (Gast)


Lesenswert?

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?

von Stefan F. (Gast)


Lesenswert?

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.

von Bernd (Gast)


Lesenswert?

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.

von FPGA zum Spass (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von c-hater (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> Hier wird also von Mono auf Stereo und von
> 8Bit auf 16Bit aufgeblasen.

Ach so, jetzt habe ich es verstanden.

von FPGA zum Spass (Gast)


Lesenswert?

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.

von Martin (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.