Forum: Mikrocontroller und Digitale Elektronik Frage zu TMDS Kodierung von Audio in HDMI


von M. Н. (Gast)


Lesenswert?

Hallo,

ich habe eine Frage zu HDMI.

Ich habe in dieser HDMI-spec: 
http://www.microprocessor.org/HDMISpecification13a.pdf
(Seite 76 im PDF, Seitennummer: 59)

gelesen, dass das Audiosignal in der Blanking-Zeit des Videos übetragen 
wird, neben den Control-Bits CTL[0..3], HSYNC und VSYNC.

Das ist ja alles auch schön und gut. Nun frage ich mich aber, wie das 
möglich ist. HDMI nutzt TMDS.

TMDS nutzt eine 8b/10b Kodierung. 4 Werte für das 10 bit Wort sind 
reserviert um die zwei Control-Bits des TMDS Kanals zu kodieren, ~500 
sind für die 8 bit Daten und wieder ~500 sind "reserved".

Wie funktioniert das dann, dass sowohl die Controlbits als auch die 
Daten für Audio etc. kodiert werden. TMDS kann soweit ich sehe nur 
entweder oder. Entweder 8 bit Daten oder 2 Control-Bits.

Ich hoffe jemand kennt sich damit aus. Ist ja schon ne recht spezielle 
Frage.

Vielen Dank

von M. Н. (Gast)


Lesenswert?

Ich habe es glaub' ich verstanden:

Wenn Audio/sonstige Daten gefahren werden, werden ganz normale Daten 
gesendet. Da es nicht möglich ist HSYNC/VSYNC zu kodieren in diesem 
Zeitraum, werden die Signale einfach zu den Daten gelegt.

Ein Empfänger, der nur DVI beherrschen würde und ein solcehs Signal 
abbekommt, würde diese Frames fälschlicherweise als Pixeldaten 
interpretieren, da er die, auf den CTL bits gesendete, Präambel nicht 
erkennt.

Liege ich damit richtig?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

M. H. schrieb:
> TMDS nutzt eine 8b/10b Kodierung.
Hmmmnja - aber nicht "die uebliche" 8b/10b Kodierung.

iirc hast du 512 Codes fuer die Pixeldaten, und ein paar fuer 
HV-Sync/Blanking und dann noch 16 Codes fuer Audio. Wenn man das Audio 
nicht versteht, dann ist das trotzdem noch was anderes als die 
Pixeldaten.

Gruss
WK

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Dazu gabs doch beim 33C3 nen Talk.
Zwar nicht direkt zu Audio, aber wie die TMDS 8/10 Codierung funzt und 
wie dort die Kontrollbits eingebettet sind.

Da:
https://media.ccc.de/v/33c3-8057-dissecting_hdmi

: Bearbeitet durch User
von M. Н. (Gast)


Lesenswert?

Dergute W. schrieb:
> iirc hast du 512 Codes fuer die Pixeldaten, und ein paar fuer
> HV-Sync/Blanking und dann noch 16 Codes fuer Audio. Wenn man das Audio
> nicht versteht, dann ist das trotzdem noch was anderes als die
> Pixeldaten.

Das ist so leider nicht richtig. TMDS lässt die anderen Werte nicht zu.
In der Spezifikation von HDMI steht, dass das Audio in die normalen 
Daten eincodiert wird. Genau so wie andere Informationen.
Vor jedem datenaket wird über die Control Bits ctl0 bis ctl3 eine 
Präambel gesendet, die angibt, ob das nachfolgende Pixeldaten oder ein 
Datenpaket ist.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Hm - ich hab' jetzt keine Tabelle da, wo zu den 1024 moeglichen 
Eingangsbits jeweils aufgelistet ist, was das dann bedeutet - aber ich 
haett' jetzt gedacht, dass sich die 8 bit Videodaten und die TERC4 Codes 
nicht ins Gehege kommen. Wenn das nicht so ist - tja, dann spielt doch 
jeweils die Vorgeschichte eine Rolle,also ob jetzt grad' Blanking ist 
oder nicht.

Gruss
WK

von M. Н. (Gast)


Lesenswert?

Dergute W. schrieb:
> dann spielt doch
> jeweils die Vorgeschichte eine Rolle,


Wie ich bereits gesagt habe: Es wird über die CTL[0..3] Bits eine 
Präambel gesendet, die angibt, ob die nachfolgenden Daten Pixeldaten 
oder eine "Data-Island" sind, die Audio etc beinhalten kann.

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.