toslink/spdif AC-3

Gast #4243048
Lesenswert?

Hallo,

ich suche Informationen zu AC-3 aka "Dolby Digital", speziell zum 
übertragungsformat hardwarseitig, also spdif/toslink.

Ich bin soweit, auf einem ARM (Freescale)) PCM-Stereo im SPDIF Format 
auszugeben, funktioniert soweit prächtig.
Ich finde aber kaum Informationen im Netz um das ganze weiter 
aufzubohren. Vielleicht suche ich auch nur falsch, weiß nicht:

Es geht erstmal nur darum, eine entsprechende 5.1 Wavedatei auszugeben. 
Also kein encodieren in Echtzeit oder sowas. Nur die reine Ausgabe einer 
5.1 Datei.

Meine Hauptfragen:
Wird für AC-3 ("Dolby Digital 5.1") die selbe Bitrate wie für PCM 
verwendet ?
Und falls ja, 2.8MHz (44.1kHz PCM) oder 3.1MHz (48kHz PCM)?

Reicht es, im Bitstream das entsprechende Bit für das Fomat zu setzen, 
und stumpf die Daten auszugeben, oder gibt es noch mehr, das beachtet 
werden muss ?

Würde mich über konkrete Infos, Links, und Hinweise sehr freuen!

Frank.
#4243067
Lesenswert?

Hallo,

AC3 ist ein Audio-Codec-Format, Du wirst es also schon in Echtzeit 
codieren müssen oder eben AC3-Files ausgeben können, die schon codiert 
sind.
Ein Mehrkanal Wave sind ja jedesmal z.B. 16Bit/44,1kHz, da müßtest Du 
dann ja statt 2x für Stereo 6x ausgeben, also die 3-fache Datenrate über 
SPDIF schicken. Das geht aber nicht bzw. passt in keine Norm.

Gruß aus Berlin
Michael
#4243068
Lesenswert?

Frank schrieb:
> ich suche Informationen zu AC-3 aka "Dolby Digital"

Die Spezifikation gibt's kostenlos:
http://atsc.org/standard/a522012-digital-audio-compression-ac-3-e-ac-3-standard-12172012/

> Es geht erstmal nur darum, eine entsprechende 5.1 Wavedatei auszugeben.
> Also kein encodieren in Echtzeit oder sowas.

Ohne Encodieren hast du aber nicht AC-3.

> Wird für AC-3 ("Dolby Digital 5.1") die selbe Bitrate wie für PCM
> verwendet ?

S/PDIF kann eigentlich nur Stereo-Daten übertragen. Deshalb ist so etwas 
wie AC-3 nötig, um die Daten auf die selbe Bitrate wie Zwei-Kanal-PCM zu 
komprimieren.

> Und falls ja, 2.8MHz (44.1kHz PCM) oder 3.1MHz (48kHz PCM)?

Ja.
Gast #4244118
Lesenswert?

Habe mal wieder zu kompliziert gedacht.
Das funktioniert "out if the box". Wenn man erfolgreich eine 
Stereo-Wavdatei ausgeben kann, geht das genauso mit einer 5.1 Wavedatei. 
Man muss rein garnix ändern !  Zumindest "receiver"/decoder ignoriert 
z.B. die auxbits völlig und interessiert sich nicht dafür. Ich glaube er 
erkennt das Format an ein paar "0"-Samples (da bin ich mir aber nicht 
100% sicher)

Dies nur zur Info..
#4245253
Lesenswert?

Kann dein Receiver überhaupt MP2? Normal sind da eigentlich nur PCM und 
AC3, DTS ist schon nicht immer dabei.

Das steht alles im IEC61937, leider ist der $$$. Evtl. findet er sich in 
dunklen Ecken... Aber egal, schau mal, ob du aus dem Code bezüglich des 
Headers was rausziehen kannst:

https://github.com/jojva/gst-plugins-base/blob/master/gst-libs/gst/audio/gstaudioiec61937.c

Nachdem der auch AC3 macht, solltest du dich ja schon auskennen ;)

Zur Synchronisierung musst du halt aufpassen, dass die Zeit eines vollen 
MPEG-Frames (1152 Samples, also 24 bzw. 26.1xms) immer stimmt. Wenn der 
Frame von den Daten her kürzer ist, muss er mit Nullen aufgefüllt 
werden.
#4245395
Lesenswert?

frank schrieb:
> Wie übertrage ich (z.B.) MP2 über SPDIF ?

Am einfachsten: gar nicht. Dekodieren und als PCM übertragen.

Bei MPEG-1 Audio Layer II ist Komprimierung nicht notwendig, weil die 
benötigte Bandbreite der Rohdaten nie höher sein kann, als S/PDIF eh 
schon unterstützt. Deswegen werden die meisten Receiver auch nicht 
erwarten, dass MP2 über S/PDIF kommt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren