Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

10 Bit Bilder in 8 bit konvertieren unter C/C++

Wasi1860 / 2 Antworten / Baumansicht Nickles

Hallo,
ich habe einen Framegrabber, der 10bit-Bilder aufzeichnet (2byte, LSB links, die letzten 6 bit Müll) und muss diese zur Weiterverarbeitung in 8bit-Bilder umwandeln (also die Bits 3-10 von links rausschneiden).
Das Problem ist, dass das Ganze so schnell wie möglich vor sich gehen soll, ich habe bei 2MPixel-Bildern also keine Zeit für umfangreiche Schleifen (hab' ich schon ausprobiert).
Kann mir jemand einen Tipp geben, wie ich das Ganze anders realisieren kann?
Dazu sei noch gesagt, dass ich mich mit C/C++ nur ganz rudimentär auskenne...


Danke
Peter

bei Antwort benachrichtigen
Borlander Wasi1860 „10 Bit Bilder in 8 bit konvertieren unter C/C++“
Optionen

Ein Pixel sieht dann also so aus:
bbBB.BBBB BBMM.MMMM (B=fürs Bild, b=verwerfen, M=Müll)
Würde das ganze erst 6 Bits nach rechts shiften (-> 0000.00bb BBBB.BBBB)und dann in Byte "konvertieren" (dabei fällt dann 0000.00bb weg, BBBB.BBBB bleibt übrig)...

Gruß
Borlander

bei Antwort benachrichtigen
Borlander Nachtrag zu: „Ein Pixel sieht dann also so aus: bbBB.BBBB BBMM.MMMM B fürs Bild, b verwerfen,...“
Optionen

Evtl. lohnt es sich auch dafür Inline-ASM (wenn Du das Bild in einem Stück im Speicher hast, sonst wird man u.U. keinen Geschwindigkeitsvorteil feststellen können) einzusetzen, dann würdest Du jedes Pixel erst in AX laden, nach rechts shiften und aus AL Deine 8 Bit rausholen...

Gruß
Borlander

bei Antwort benachrichtigen