Forum: Digitale Signalverarbeitung / DSP / Machine Learning Dateien im YCbCr-Format?


von xy (Gast)


Lesenswert?

Hallo
ich schreibe gerade für eine Kamera eine Konvertierung
von YCbCr nach RGB24. Es gibt jetzt noch ein paar Probleme, weswegen ich
gerne ein paar Testdaten hätte, mit denen ich meine Software testen 
kann.
Kennt jemand z.B. ein Bildformat, in dem die Pixel als YCbCr gespeichert 
sind,
und man einfachen Zugriff drauf hat, also keine 
(De-)kompressionsverfahren etc. nötig sind.
Oder kennt jemand Alternativen, evtl. mit Hilfe von Scilab ?

Vielen Dank für alle Tipps

von Christoph S. (mixer) Benutzerseite


Lesenswert?

Hallo,

.bmp speichert Bilder ohne Kompression. Die Pixel koennen durch einfache 
Matrixmultiplikation in YCbCr-Werte umgeaendert werden. Geht mit ein 
paar Zeilen in Matlab/Ocatave.

Gruss

: Bearbeitet durch User
von xy (Gast)


Lesenswert?

Hallo,

ich versuche es mit Scilab. Ist für mich nur ein Freizeit-Projekt, 
deshalb die späte Meldung.
Mit der Matrix
M = [1  0      1.402;
     1 -0.344 -0.714;
     1  1.772  0];

sollte dann die Umrechnung von YCbCr auf RGB funktionieren, lt div 
Quellen.
Vielleicht nochwas: Kann ich mich darauf verlassen, dass Y in [16 219] 
und
Cb,Cr in [0 224] liegen, oder ist das Kamerahersteller-abhängig.

Gruß
xy

von Christoph S. (mixer) Benutzerseite


Lesenswert?

xy schrieb:
> Hallo,
>
> ich versuche es mit Scilab. Ist für mich nur ein Freizeit-Projekt,
> deshalb die späte Meldung.
> Mit der Matrix
> M = [1  0      1.402;
>      1 -0.344 -0.714;
>      1  1.772  0];
>
> sollte dann die Umrechnung von YCbCr auf RGB funktionieren, lt div
> Quellen.

Was sind denn das fuer Quellen? Ich habe in Wikipedia folgende Matrix 
gefunden:
[0.299 0.587 0.114; -0.168736 -0.331264 0.5; 0.5 -0.418688 -0.081312];

Dazu muss man bei Cb und Cr noch 128 draufaddieren

> Vielleicht nochwas: Kann ich mich darauf verlassen, dass Y in [16 219]
> und
> Cb,Cr in [0 224] liegen, oder ist das Kamerahersteller-abhängig.

Ist wohl eher Kamerahersteller-abhaengig. Moeglich sind jeweils 8-bit 
Werte soweit ich bis jetzt gesehen habe.

Gruss Christoph

von Carsten (Gast)


Lesenswert?

>8 Bits
Es gibt auch Kameras mit mehr Bits.

>128 addieren
Sind die Daten wirklich offset-beaufschlagt?
Dann dürfte das mit den 224 nicht stimmen, oder?

> Kann ich mich darauf verlassen, dass Y in [16 219]
Woher kommt das? Ich meine die Werte gehen bis 232 oder 233.
Gfs war das aber ein anderes Format.

von Christoph S. (mixer) Benutzerseite


Lesenswert?

Carsten schrieb:
>>128 addieren
> Sind die Daten wirklich offset-beaufschlagt?
> Dann dürfte das mit den 224 nicht stimmen, oder?

Ich beziehe mich auf Wikipedia:
http://de.wikipedia.org/wiki/Jpeg#Farbraumumrechnung

>> Kann ich mich darauf verlassen, dass Y in [16 219]
> Woher kommt das? Ich meine die Werte gehen bis 232 oder 233.
> Gfs war das aber ein anderes Format.

Y ist die Helligkeit, wieso sollte man wenn sowieso 8 bit benoetigt 
werden die nicht ausnutzen und die Helligkeit in 256 Stufen angeben?

Gruss

von Philip S. (psiefke)


Lesenswert?

Werte unter dec16 werden im Broadcastbereich als "Subblack" bezeichnet 
und für diverse Effekverfahre, wie z.B, das Keying benötigt. Bei den 
üblichen 10bit in diesem Bereich fällt das auch nicht weiter ins 
Gewicht.

Von dort hat es sich dann auch in Consumergeräte und -schnittstellen 
geschlichen. Deshalb sind HDMI und DVI z.B. zwar elektrisch 
weitestgehend kompatibel der Signalsenke muss aber mitgeteilt werden, ob 
pures schwarz durch dec0 oder dec16 repräsentiert wird. (nennt sich 
häufig movie- oder cinema mode...)

: Bearbeitet durch User
von xy (Gast)


Lesenswert?

>Was sind denn das fuer Quellen? Ich habe in Wikipedia folgende Matrix
>gefunden:
>[0.299 0.587 0.114; -0.168736 -0.331264 0.5; 0.5 -0.418688 -0.081312];

>Dazu muss man bei Cb und Cr noch 128 draufaddieren

Sorry, hatte da einen Gedankensprung drin, den ich nicht erwähnt habe. 
Meine Matrix berechnet RGB, deine berechnet YCbCr.
Habe ich aus
http://de.wikipedia.org/wiki/JPEG

Zu den nicht ausgenutzten Y,Cb,Cr Wertebereichen:

Steht so in
http://www.itwissen.info/definition/lexikon/luminance-chrominance-blue-chrominace-red-YCbCr-YCbCr-Farbmodell.html

und da in der Berechnung der Linux-API  unter
http://linuxtv.org/downloads/v4l-dvb-apis/colorspaces.html
auch solche Berechnungen drin sind, habe ich das mal als gegeben 
angenommen.

Naja, ich muss nochmal dran rumbasteln bevor ich mehr sagen kann.

Gruß

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.