Schritt 2: Bitmap-Konvertierungs-Software
Seit Beginn des Projekts wussten wir, dass war es für uns unmöglich, alle Arten von Farbformate auf die Bilder zu verwenden, die wir anzeigen möchten. Um die Spezifikationen zu erfüllen und die technischen Zwängen zu respektieren, mussten wir wählten einen festen format und bleiben sie dabei. Das Farbformat erforderlich ist mit 16-Bit-Pixel und 12-Bit-Farbe und 4 Bit-Transparenz-Komponente die RGBA. Wissend, dass dieses Format kein standard ist, mussten wir eine Konvertierungs-Software zu entwickeln, um Bilder von diesem Format zu erstellen. Ein weiterer Vorteil einer solchen Software ist die Möglichkeit, einige Eigenschaften des Bildes, wie die Transparenz ändern.
Wir entschieden uns für die C++ als Programmiersprache und wir für die Grafikbibliothek QT Creator verwendet. Die C++ ist eine Software-Entwicklung-Sprache, die wir dienen und wir wussten, dass die Datei Streamss einfach zu handhaben wäre. Wir es geschafft, die Bilder zu lesen, die wir ohne Probleme ändern wollten. Dank der QT Creator-Software und der Qt-Bibliothek haben wir eine sehr einfache grafische Oberfläche, damit die Nutzung der Software sehr intuitiv.
Die Software, die wir entwickelt, ist sehr nützlich für das Format der Bilder ändern, wenn wir sie erfolgreich in die FPGA-Karte verwenden möchten. Die Bilder konvertieren muss das BITMAP 24-Bit-Format aus drei Gründen:
- Diese Art von Format komprimieren die Bilder nicht. Da das Bild, das wir in den FPGA gespeichert werden sollen werden nicht komprimiert werden, eine Bild dekomprimiert werden.
- FPGA Bildverarbeitung zur Kompression/Dekompression (JPEG/MPEG) bereits vorhanden ist als open-Core IPs, aber es ist sehr schwer zu implementieren. Deshalb ist es leichter zu verarbeiten von Bildern, die bereits dekomprimiert werden. Wir sollten beachten, dass die übermäßige Größe für diese Art von Bilder kein Problem wegen der verfügbaren Speicherbereich und die Geschwindigkeit der Datenübertragung via DMA ist.
- Seine Qualität ist besser als 16 Bits.
- Es steht überall (ein Großteil der verfügbaren Software wie "Farbe" kann jede Art von Bildern in BITMAP-24-Bit-Format konvertieren).
- Transparenz ist nicht verfügbar. Das gibt uns mehr Flexibilität im Umgang mit der Transparenz in unseren eigenen Weg.
Wir erwähnten das Transparenz-Management. In der Tat wurde unsere Software auch geschaffen, um in der Lage, die Transparenz der Farben eines bestimmten Bildes eingestellt werden. Da unsere Grafikkarte bis zu 4 unabhängige Anzeige-Layer handhaben kann, ist es entscheidend, dass wir in der Lage, die Transparenz eines Bildes ändern oder legen Sie eine Transparenz Farbe sonst mehrschichtigen ausgestellten Itn bringt keinen Gewinn.
Wir haben zwei verschiedene Optionen für diese Transparenz:
- Die erste besteht aus eine Reihe von Farbe (maximal 5) undurchsichtig machen. Bsp.: Machen Sie der Hintergrund eines Sprites durchsichtig
- Die zweite besteht die Transparenz aller Farben, die nicht unter Berücksichtigung in der Option zu wählen. Bsp.: Machen Sie das Bild von einem Feuer 50 % transparent um die Animation zu verfeinern.
Verfahren
Erster Schritt: Laden das Bild und wählen Sie die richtigen Parameter der Konfiguration.
Wir beginnen Sie wählen das Bild konvertieren und den Pfad, wo wir es retten wollen. Anschließend setzen wir die Transparenz-Parameter, die wir im vorherigen Abschnitt erläutert. Wenn das Bild geladen wurde, startet die Software durch das Lesen des ersten Bytes des jeweiligen Bildes. Diese Bytes enthält die Abmessungen des Bildes und wird nicht in die Ausgabe-Datei kopiert werden, da die FPGA Karte nehmen nicht berücksichtigt diese Daten aber verwendet nur die Daten, die ein Pixel entspricht. Nach der Übernahme des ersten Bytes des Bildes kann die Software die Konvertierung zu starten.
Zweiter Schritt: Konvertieren das Bild.
In dieser zweiten Phase wird die Software nur jedes Byte definiert die Farben eines Pixels um steckte es in eine 16-Bit-Format lesen. Es ist ein einfacher Prozess mit einer direkt binäre Verschiebung des 4-Bit, 4 Bit pro Farbe anstelle von 8-Bit haben zu können. Wir zu diesen 12 Bit Og Farben 4 Bit Transparenz mit den Parametern hinzufügen zu Beginn des Verfahrens definiert.
Dritter Schritt: Das richtige Format des Bildes einstellen.
Dieser letzte Schritt besteht über die Anpassung der Daten. Die BITMAP-Matrix speichert die Pixel in absteigender Reihenfolge unter Berücksichtigung der Linien. Seit die Spezifikationen des Bildformats, die wir wollen, dass einen aufsteigender Reihenfolge der Pixel zu verhängen, müssen wir die Pixel in der richtigen Reihenfolge zu ordnen. Wir traf das gleiche Problem für die Bitfolge. Wir korrigieren es durch den Wechsel von 0xRGBA zu 0xGRAB.
Sobald das Bild in das gewünschte Format ist, ist nur noch das Bild in den RAM des FPGA mit der STM32-Mikrocontroller übertragen.