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
Verwende einen RAM mit 14 Bit Adressbreite und schreibe die generierten Werte da hinein.
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
Für die gestellte Aufgabe braucht es kein Dualport RAM. Es reicht die Implementierung eines Singleport-ROMs locker aus. Allerdings könnte ich mir ein kleineres ROM mit wenigen Stützstellen und eine Interpolation zwischen den Stützstellen auch gut vorstellen...
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.