Forum: FPGA, VHDL & Co. digitale Bildbearbeitung mit Spartan-3


von Mirco (Gast)


Lesenswert?

Hallo zusammen,

im Rahmen einer Studienarbeit an der FH-Berlin beschäftige ich mich mit
digitaler Bildbearbeitung mittels FPGA.

Ich bin auf der Suche nach VHDL-Lösungen für Up-/Down-Scaling
(Resizing) zur Anpassung von Grafiken/Video an ein Display. D.H. eine
Grafik/Video in digital RGB-Format soll durch vergrößern/verkleinern an
eine bestimte Display-Auflösung angepasst werden bzw. Ausschnitte sollen
vergrößert/verkleinert werden.

Desweiteren würde mich interessieren wie man die Darstellung von
mehreren Video/Grafik-Layern realisiert. Speziell welche
VHDL-Strukturen wie Buffer, Zähler etc. dafür notwendig sind und wie so
etwas hardwaremässig in etwa auszusehen hat, aber VHDL-Lösungsansätze.

Ich würde mich über Codebeispiele genauso freuen, wie über
Hilfestellungen zur Realisierung, Links oder Beschreibungen über die
Struktur (einfach alle her damit... ;-).

Vielen Dank schon mal im Voraus.

Gruß

Mirco

von Brutus (Gast)


Lesenswert?

Puh also ich denke da hast du ne menge arbeit vor dir. Zumal du
anscheinend noch nicht so sehr die ahnung von Hardwareprogrammierung
hast oder? (Das war nicht bös gemeint) Wo du auf jeden fall immer
kostenlose Cores herbekommst ist www.opencores.org
Allerdings befürchte ich, das du auch keine fertigen lösungen für dein
problem findest. Aber nen Blick ist es wert.
Wenn du genauere Fragen hast versuche ich aber natürlich zu helten.

viel erfolg

von Jürgen Schuhmacher (Gast)


Lesenswert?

Auf open cores gibt es keine Quellen für derartiges :-)
Andererseits ist das auch nicht so schwer. Ich vestehe das so, daß man
z.B ein 1024x768 einspeist und dann ein 800x600 ausgibt.

Du brauchst im FPGA einen vector für das inputformat (Xin,Yin) und den
Ausgang (Xout, Yout) und einen Buffer, der zumindest mal 3-4 Zeilen
speichern kann. Einfacher sit es natürlci den komplettenbildschirm
speichern zu können und in einen zweiten RAM-Bereich mappen zu können.

Der Rest ist einfach Interpolation: Man lässt einen Zähler über x und y
laufen, nimmt je Koordinate 3 Pixel und bestimmt für alle Farben eine
Kurve. Dann den Interpolationswert über Geradengleichung bilden.

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.