Hallo, Ich bin gerade am suchen, wie ein 16Bit PCM-Sample aufgebaut ist. Ich finde zwar Informationen darüber, aber die widersprechen sich in Teilen und sind ungenau. Also, falls sich jemand auskennt, wäre ich ihm sehr dankbar für eine erklärung, wofür die 4 einzelnen Nibbles genau stehen. Grüße Franz
Meinst du eine Bewertung nach A- oder µ-Law? Wenn nicht: PCM-Samples stellen Werte im 2er-Komplement dar.
A-law oder u-Law sind normalerweise 8-bittig (ITU-T G.711). 16 Bit PCM, also das, was auf Audio-CDs zu finden ist, ist wie T.H. richtig schreibt eine Aneinanderreihung von vorzeichenbehafteten 16-Bit Werten. Der Wertebreich erstreckt sich damit auf -32768..32767. Eine andere Sache ist noch, wie die einzelnen Abtastwerte z.B. bei Stereo-Signalen in einer WAV-Datei abgespeichert werden. Bei WAV ist es so, dass die Abtastwerte der beiden Kanäle immer abwechselnd hintereinander gespeichert werden, also: L | R | L | R | L | R | ... In anderen Dateiformaten / Streams etc. kann das aber anders sein. Gruß FL
also steht ein 'L' oder ein 'R' bei dir jeweils für einen 16-Bit-Wert? Ich hatte nämlich mal irgendwo gelesen, dass in einem 16Bit-Sample eben L und R gemeinsam 16bit sind. Und danke schonmal für beide Antworten.
Franziskus Karsunke wrote: > also steht ein 'L' oder ein 'R' bei dir jeweils für einen 16-Bit-Wert? Ja. > Ich hatte nämlich mal irgendwo gelesen, dass in einem 16Bit-Sample eben > L und R gemeinsam 16bit sind. Kann man sicher machen. Hab' ich aber noch nie gesehen.
> Ich hatte nämlich mal irgendwo gelesen, dass in einem 16Bit-Sample eben > L und R gemeinsam 16bit sind. Da die Daten sowieso "ein Bit hinter dem nächsten" in einem "Stream" sind, wäre das von Dir beschriebene lediglich eine "16-Bit-Interpretation" von 2 8-bit Werten, die hintereinander in dem Stream stehen. Jeder vernünftige(TM) Programmierer würde wohl die Daten aus diesem Stream als zwei getrennte 8-bit-Werte einlesen, und nicht als einzelnen 16-bit-Wert, den er dann erst wieder auseinanderfriemeln muss. Wenn Du die Daten als Datei auf einem PC hast, kannst Du sie ja mal in einen Audio-Editor einlesen (z.B. in Audacity als Rohdaten). Beim Import kannst Du angeben, wie sie interpretiert werden sollen -- wenn anschliessend ein vernünftiges Audio-Signal im Editor steht, hast Du das richtige Format gefunden... Gruß FL
ok dann danke für die antworten. Dann denke ich mal hab ich jetz das richtige. Ich habe leider keine Datei. Ich erzeuge einen Stream in Assembler und gebe ihn an einen AC97-Controller weiter.
Aber dann wirst Du doch bestimmt irgend ein Interface bedienen müssen. I2S oder ein ähnliches serielles Protokoll. BTW: die Daten für 16Bit PCM Wave liegen im Format LinksLowByte, LinksHighByte, RechtsLowByte RechtsHighByte vor (Little Endian).
die 24-Bit PCMs sind in WIkipedia ganz gut erklärt glaub ich. Entweder im englischen oder im deutschen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.