Forum: Digitale Signalverarbeitung / DSP / Machine Learning AC-3 (Dolby Digital) "Preamble" auf IEC60958 ("SPDIF")


von T. H. (pumpkin) Benutzerseite


Lesenswert?

Moin,

ich beschäftige mich gerade mit der Decodierung von AC-3 Bitstreams die 
per SPDIF übertragen werden. Für's erste habe ich den AC-3 Bitstream in 
den DSP geladen und geguckt, was ich bekomme. Was ich beobachte, deckt 
sich wie erwartet mit dem Standard [1]. Der Datenstrom startet mit dem 
Sync-Word 0x0B77:

1
DVB-Receiver     DVD-Player
2
 .                .
3
 .                .
4
0000             0000
5
0000             0000
6
0000             0000
7
0000             0000
8
0000             0000
9
10
F872             F872
11
4E1F             4E1F
12
0001             0001
13
3800 <- Diff. -> 3000
14
15
0B77 <- Start -> 0B77
16
2C9B <-  CRC  -> 7191
17
 .                .
18
 .                .

Vor dem Sync-Word 0x0B77 kommen vier weitere 16 Bit-Werte, die bis auf 
ein Bit bei beiden getesteten Quellen (DVB-Receiver und DVD-Player) 
gleich sind. Nun finde ich keinerlei Info über diese "Preamble" des 
Datenstroms. Genau genommen gehört sie nicht zum AC-3 Datenstrom, die 
Übertragungsstrecke wird von der Spezifikation nicht berücksichtigt. 
Also denke (*) ich, dass es vom SPDIF-Standard abgedeckt wird (dem 
Empfänger wird z.B. mitgeteilt ob es sich um PCM oder etwas anderes 
handelt) [2]. Nur leider ist der nicht offen (jedenfalls finde ich 
nichts dazu). Hat jemand Quellen zur Hand?

[1]_http://www.dolby.com/uploadedFiles/English_(US)/Professional/Technical_Library/Technologies/Dolby_Digital_(AC-3)/a_52b.pdf
[2]_http://www.hardwarebook.info/S/PDIF#Multi_channel_audio_and_S.2FPDIF

*) So ganz richtig scheint mir das aber auch nicht zu sein, SPDIF ist ja 
die Hardware. Was ich beobachte gehört ja scheinbar zu einem Protokoll - 
aber welchem?

von T. H. (pumpkin) Benutzerseite


Lesenswert?

T. H. wrote:
> So ganz richtig scheint mir das aber auch nicht zu sein, SPDIF ist ja
> die Hardware. Was ich beobachte gehört ja scheinbar zu einem Protokoll -
> aber welchem?

Vllt hilfts ja mal jemanden weiter:

Richtig vermutet. Das steht wohl im IEC61937, diesen Standard bekommt 
man aber ebenso wenig für lau im Netz. Ganz nett ist es hier erklärt:

  http://www.braindex.com/patent_pdf/patents/US6804655.pdf
  http://www.patentstorm.us/patents/6804655/fulltext.html

1
In a conventional synchronous IEC61937 data stream, the basic data frame
2
structure includes a header, typically composed of four preambles
3
(Pa,Pb,Pc,Pd), the payload itself, and a string of padding bits (zeros).
4
The first two preambles (Pa and Pb) are constants 0xF872 and 0x4E1F are
5
used for synchronization, while the third preamble Pc carries control
6
information including a payload type identifier. Preamble Pd sets the
7
length of the payload, up to 65535 bits.

Pa, Pb und Pd sind also klar. Pc ist laut [1]:

  Dolby Digital  0x0001
  DTS-1 (512)    0x000B
  DTS-2 (1024)   0x000C
  DTS-3 (2048)   0x000D

MPEG konnte ich nicht finden.

[1] http://www.dtek.chalmers.se/groups/dvd/dist/conversion.c

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.