14bit auf 8bit LUT

OP #1812754
Lesenswert?

Hallo zusammen,

ich bin gerade auf der Suche nach einer einfachen Implementierung für 
eine 14-auf-8-bit LUT.
Es sollen also 14bit Werte rein und die sollen anhand einer Kurve in 
8bit gewandelt werden. Quasi wie in der Bildverarbeitung zur 
Kontrastanhebung etc.

Gibt es da einfache Möglichkeiten?

Denn wenn ich 14bit Eingänge habe, ist es nicht wirklich zweckdienlich, 
wenn ich über 16000 Werte in einer case Anweisung auswerte. Genauso auf 
der 8bit Ausgangsseite. Ganz zu schweigen davon, wenn ich die Kurve mal 
ändern muss/möchte.

ich habe mir schon die Templates angeschaut, aber da gibt es nur 4bit 
Eingänge und 1bit Ausgang... diese clever zu kombinieren ist sicher 
nicht ohne Weiteres möglich.

Gibt es schon vorgefertigte ip-cores oder sowas für diese Art von 
Aufgaben?

Ich verwende einen Spartan 3A-DSP (1800er).

Vielen Dank!
Andi
Gast #1812785
Lesenswert?

Du brauchst keine Cores.

Implementiere einfach einen Dual-Port-Speicher (Blockram). Auf dem einen 
Port kannst Du die Daten reinschreiben (initialisieren), auf der anderem 
kannst Du die Daten dann lesen.


hier mal pseudocode:

if rising_edge(clk) then
 if wr='1' then
  blockram(integer(write_addr)) <= write_data;
 end if;

 read_data <= blockram(integer(read_addr));

das war's

read_addr sind deine Eingangsdaten (Pixel), die 14 Bit breit sind, und 
read_data ist Ausgang (8 Bit)


Grüße,
Kest
Gast #1813031
Lesenswert?

Aber er OP möchte doch die Werte ändern können:

> der 8bit Ausgangsseite. Ganz zu schweigen davon, wenn ich die Kurve mal
> ändern muss/möchte.

ob das zur Laufzeit geschehen soll hat er nicht geschrieben.

Das mit Interpolation ist ne gute Idee, allerdings habe ich so eine 
Lösung immer verworfen, weil es auch Kurven gibt, die nicht stetig sind. 
Für Bildverarbeitung ist es einfach unüblich. Außerdem erschien mir 
immer der Aufwand viel zu groß im Vergleich zu eine LUT ;-)


Grüße,
Kest

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