Hallo zusammen. Für ein Bildverarbeitungsprojekt setzen wir einen BF533 Blackfin DSP ein. Dabei wird über einen ADV7183 ein analoges Videosignal digitalisiert und soll dann im DSP verarbeitet werden. Meine Frage nun: Wie kann ich abschätzen, ob ein zusätzliches Video-RAM benötigt wird? Kann ich mit dem BF533 ganz darauf verzichten, oder sollte man allgemein immer Video-RAM für so etwas einsetzen? Generell geht es um einen Schärfealgorithmus. D.h. aus mehreren Bildern soll das schärfste erkannt werden. Ich hoffe Ihr könnt mir hier weiterhelfen. Gruss Patrick
Nun bin ich kein Experte auf dem Gebiet, aber ich verstehe die Frage nicht ganz, so dass Du vielleicht den geplanten Schaltungsaufbau praezisieren koenntest. Geht es darum, ob Du am Blackfin noch externen Speicher benoetigst? Moechtest Du den ADV7183 per PPI an den Blackfin anschliessen? Das waere nur bequem, der schriebe die Daten dann aber per DMA an eine vorher spezifizierte Speicherstelle, so dass Du waehrend der Uebertragung keinen Zugriff auf die Daten haettest, sondern erst, wenn sie vollstaendig uebertragen sind. In dem Falle waere eine einfache Rechnung der benoetigten Speichermenge fuer ein Bild ein gutes Entscheidungskriterium fuer die benoetigte Speichermenge (ist, denke ich, mit dem internen Speicher nicht zu machen). Ich betreibe einen Aufbau mit einem Blackfin 532 und externem SDRAM, bei der Bilddaten via PPI mit einer Pixelfrequenz von 25 MHz eingelesen und in den SDRAM geschrieben werden. Das geht problemlos.
Danke für Deine Antwort. Meine Frage zielt dahin, ob ich noch zusätzlichen Speicher benötige, um die benötigte Geschwindigkeit zu erreichen. Wir haben uns ein EZ-KIT von Analog bestellt, bei dem der ADV7183 per PPI mit dem Blackfin verbunden ist. Verstehe ich das richtig, dass der BF533 während dem Einlesen der Videodaten keine Berechnungen daran durchführen könnte. Dann würde es eher Sinn machen, die Videodaten vom ADV7183 in einen externen Speicher zu schreiben und dann mit dem Blackfin auszulesen? Schreibt dann der ADV7183 die Daten selbständig in den Speicher, oder muss das über den BF533 erfolgen? Danke für Deine Hilfe.
Wenn Ihr das EZ-KIT bestellt habt, wird da wohl externer Speicher dabei und der ADV7183 ueber den PPI angeschlossen sein. Nicht der ADV7183 schreibt die Daten sondern der DMA-Controller des Blackfin. Das geschiet ohne Zutun und Moeglichkeiten des Zugriffs des Prozessorkerns. Man hat also sowieso nur die Moeglichkeit, nachtraeglich auf das im Speicher abgelegte Bild zuzugreifen. Auch nehme ich an, dass mittlere Bildschaerfe ein globales Merkmal eines Bildes ist (es koennte ja durchaus unscharfe und scharfe Bereiche im Bild geben infolge der Fokusierung) und dass man Bildschaerfe nur in einer Nachbarschaft ueber mehrere Zeilen ermitteln kann, Ihr haettet also wahrscheinlich sowieso einen Speicherbedarf, der ueber den internen hinausgeht. Das mit dem PPI und dem ADV7183 sollte aber super easy sein; das ist wirklich bequem geloest im Blackfin. (Unter Umstaenden wird sogar genau dafuer Beispielcode mit Visual DSP++ mitgeliefert.)
OK. Dann warten wir mal, bis das EZ-Kit bei uns eintrifft. Dann können wir schon mehr sagen. Falls dazu noch weitere Fragen auftreten sollten, werde ich mich wieder melden. Danke für die Hilfe Gruss Patrick P.S: Noch ein kleiner Nachtrag zum Zweck unserer Übung. Es geht um ein Autofokussier-System, dass auf Grund der Bilddaten die Fokussier-Linsen bewegen soll, bis das Bild die maximale Schärfe erreicht. Und die Bilddaten stammen von einer Video-Kamera. Dann wird man wahrscheinlich mehrere Bilder miteinander vergleichen müssen um eine Änderung der Bildschärfe zu erkennen.
Aus reinem Interesse: In welcher Anwendung wollt Ihr denn das Autofokus-System verwenden? In vielen Faellen koennte ich mir bei einer Schaerfenmaximierung naemlich vorstellen, dass dann auf den grossflaechigen Hintergrund fokussiert wird, anstatt auf kleinere Objekte im Vordergrund zu fixieren, was vielleicht nicht im Sinne der Anwendung ist. Auch weiss ich nicht, ob man die Bilder tatsaechlich vollstaendig speichern muss. Ich koennte mir vorstellen, dass man Bildschaerfe tatsaechlich absolut quantifizieren kann. Wenngleich ich wenig Ahnung auf dem Gebiet habe, koennte ich mir eine Loesung im Frequenzbereich vorstellen: Unschaerfe entspricht sicherlich einer Tiefpassfilterung, waehrend hohe Kontraste mehr hochfrequente Anteile haben. Man koennte also fuer jedes Bild die Energie der hochfrequenten Anteile speichern anstatt die vollstaendigen Bildinformationen zu behalten. (Ich nehme aber an, dass Euch eher eine Schaerfemessung im Bildbereich als im Frequenzbereich vorschwebt.)
Die Anwendung des Autofokus ist für ein Operationsmikroskop gedacht. Dabei wird auch nur ein Ausschnitt aus dem Videobild betrachtet und verarbeitet. Für die Ermittlung der Schärfe gibt es ja viele unterschiedliche Algorithmen. Ein Teil unserer Aufgabe besteht auch darin, einen geeigneten Algorithmus auszuwählen. Aber die Frequenzermittlung (wahrscheinlich mit Fourier) ist bestimmt eine mögliche Variante. Eine Frage habe ich noch zum ADV7183: Die Bilddaten werden ja über die 8-bit PPI an den DSP weitergegeben. Aber in welcher Form liegen die Daten dann vor? Wie muss ich mir das vorstellen?
Hi Patrick, guck mal im Blackfin-HardwareManual nach ITU-656 - so kommen die Daten rein. Also eine Marke, Sync-Zeilen, Y/Cb/Cr-Daten - fuer die Schaerfe-Erkennung brauchst Du nur den 'Y'-Anteil. Wuerde das ganze Bild zunaechst mal ins SDRAM einlesen. Wenn sich dann der Algorithmus schnell genug erweist, geht's ev. auch ohne externes RAM, sofern dein Algorithmus jeweils nur einige (z.b. 3 reichen fuer die 2. Ableitung :-) ) Zeilen evaluiert. Mit Pingpong-Buffern schafft man es auch, im L1-SRAM Daten zu verarbeiten, waehrend neue eingelesen werden, da der DMA-Bus parallel zum Adress/Datenbus verlaeuft. Allerdings muss man die Buffer in unterschiedlichen SRAM-Banken ablegen, aber auch dazu verraet das HW-manual ein paar Geheimnisse. Gruss, - Strubi
@Strubi:
>fuer die Schaerfe-Erkennung brauchst Du nur den 'Y'-Anteil
Das mag zum Testen schon funktionieren, in der Realität gehen aber auch
Farbkanten in die Schärfe ein, also wird die Farbinformation sehr wohl
benötigt. Nimm an, du hast ein Bild mit Farbstreifen, die alle gleich
hell sind, dann kannst du mit Y allein keine Aussage über die Schärfe
machen. Unter Kenntnis der Farbrauminformation kann man das schon.
Grüße,
Peter
Auf dem Ez-kit BF533 ist genung Speicher da. Die Frage muss du selber beantworten wie viel Rechenzeit brauchst du? und wie viele Bilder oder Frames/s und was für eine Auflösung? Falls der Speicher nicht reicht kannst du auch über den Expansionstecker Speicher oder zusätzliche Schaltungen anschließen. Die Frage muß also nicht heißen brauche eine Speicher sondern was will ich genau machen.
Ziel ist es das nachher auf einer eigenen Hardware laufen zu lassen. Das EZ-Kit ist nur zur Entwicklung des Algorithmus gedacht. Zur Entwicklung der eigenen Hardware muss ich dann natürlich wissen, ob und wieviel Speicher ich brauche. Aber ich denke wir können mehr Aussagen treffen, wenn das EZ-Kit erst mal da ist.
wie gesagt über die Extension (Erweiterungsstecker) auf dem untere Seite kannst du auch klein Platinchen mit einem Speicher anhänge.
Hallo Patrick, sorry für OT, aber manchmal wundere ich mich schon über die Vorgehensweise bei der Entwicklung. Wenn es bei mir in der Firma so laufen würde, würden wir sehr schnell weg vom Fenster sein. Was ich meine: 1. man bestellt ein DSP-Kit 2. man fragt nach den Daten des Kits (Speicher...) 3. man fragt nach dem Videostrom-Format 4. Algorithmus muss ausgewählt werden Fällt Dir da nicht auf, dass die Reihenfolge komplett falsch ist? Man macht sich erst Gedanken über das zu verwendete Algo und implementiert alles vielleicht mit PC (Matlab, C++, Basic...). Dann werden die Anforderungen klar und deutlich festgehalten (so und so viel Speicher, so und so viel Zeit pro Frame...). Dann sucht man sich ein DSP-Kit (oder eben FPGA, Microcontroller ...) aus. Hättest Du die Reihenfolge richtig gewählt, würde Dir man auch hier sicherlich schneller und kompetenter helfen können :-) Grüße, Lolly
@Lolly Wer sagt denn, dass das eine Entwicklung für eine Firma ist? Und woher willst Du wissen, welche Schritte wir schon gemacht haben oder in welcher Reihenfolge wir das noch machen werden? Die Antworten, die bisher hier gegeben wurden haben mir schon weitergeholfen. Dein Beitrag nützt mir dagegen überhaupt nichts.
Hast Recht, woher soll ich das wissen? Aber denk mal darüber nach: Du stellst eine Frage, nach ein Paar Stunden wirst Du ungeduldig und fragst nach, wieso denn keiner antwortet... Und dann erwartest Du, dass die Forumteilnehmer, Deine "Hausaufgaben" machen, weil Du vielleicht zu faul warst etwas Hirnschmalz darin zu investieren. Die Problemstellung an sich finde ich sehr interessant und würde gerne meinen Senf dazu geben, nur Deine Ungeduld hat mich davon abgehalen. Und ich bin mir sicher, dass es vielen so geht. Dennoch wollte ich Dir "helfen", die Problemstellung besser zu definieren. Grüße, Lolly
Ich weiss Deinen Rat zu schätzen. Aber es ging mir nicht darum, dass Ihr meine "Hausaufgaben" machen sollt. Ich kenne mich in diesem Gebiet nunmal überhaupt nicht aus und dachte, dass hier im Forum bestimmt Leute sind, die sich darin auskennen. Was meine Ungeduld betrifft: In diesem Forum gibt es sehr viele Threads. Und alle paar Minuten gibt es wieder ein paar neue dazu. Weil es dann passieren kann, dass ein Thread mal ganz schnell unbeantwortet auf Seite 2 landet, wollte ich das verhindern, indem ich ihn mit einem neuen "Beitrag" wieder nach oben "gehoben" habe. Aber das sind alles Dinge, die man hier nicht diskutieren muss, weil sie absolut nichts mit dem Thema zu tun haben. Wie bereits gesagt, werde ich gerne wieder auf dieses Forum zurückkommen, wenn die ersten konkreten Fragen oder Probleme auftauchen. Neben der Einarbeitung ins Thema der Videobildverarbeitung gehört auch die Einarbeitung ins Thema DSP dazu. Und deshalb warten wir jetzt auch erstmal auf das EZ-Kit. Vielleicht noch ein Wort zu uns: Wir sind eine Gruppe von 2 Personen. Die Aufgaben wurden so verteilt, dass einer für die Software im DSP (Algorithmus, etc.) und der andere (ich) für die Hardware inkl. Anbindung an einen CAN-Bus mittels Mikrocontroller verantwortlich ist. Ein interessantes Projekt, das bestimmt nicht ganz trivial ist. Aber bei Fragen werde ich mich einfach nochmal melden. Danke erstmal für Eure Hilfe.
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.