Verplaatsbaar Wild Lessenaar (ARM MCU Team) (2 / 6 stap)

Stap 2: Bitmap conversiesoftware


Sinds het begin van het project wisten we dat het onmogelijk voor ons was gebruik van allerlei kleur formaten op de beelden die we wilt weergeven. Om te voldoen aan de specificaties en het respecteren van de technische beperkingen, we moesten een vaste koos opmaken en stok mee. Het vereiste formaat van kleur is de RGBA met 16 bit pixels en 12 bit kleur en 4 bit transparantie component. Wetende dat deze indeling niet standaard is, moesten we een conversiesoftware ontwikkelen om het maken van beelden van deze indeling. Een ander voordeel van dergelijke software is de mogelijkheid om een aantal kenmerken van de afbeelding, zoals de transparantie wijzigen.

We kozen de C++ als een programmeertaal en gebruikten we de QT-creator voor de grafische bibliotheek. De C++ is een software ontwikkelingstaal die we gewend zijn en we wisten dat bestand streamss zou gemakkelijk te hanteren. We kunnen lezen van de beelden die we wilden wijzigen zonder enig probleem. We gemaakt dankzij de QT-Creator-software en de Qt-bibliotheek, een zeer eenvoudige grafische interface, dus waardoor het gebruik van de software zeer intuïtief.

De software die we ontworpen is zeer handig voor het wijzigen van het formaat van de afbeeldingen als we willen ze met succes in de FPGA-kaart gebruiken. De beelden om te zetten moet de indeling BITMAP 24 bits vanwege drie redenen:

  • Dit type indeling de beelden niet comprimeren. Aangezien de afbeelding die we willen slaan in de FPGA zullen niet worden gecomprimeerd, een gedecomprimeerd beeld nodig zal zijn.
  • FPGA beeldverwerking voor compressie/decompressie (JPEG/MPEG) al bestaat als open kern IPs, maar het is zeer moeilijk te implementeren. Dit is de reden waarom het is makkelijker voor het verwerken van afbeeldingen die al zijn gecomprimeerd. We moeten er rekening mee dat de buitensporige omvang van dit soort opnamen niet een probleem vanwege de beschikbare geheugen zone en de snelheid van data-overdracht via de DMA is.
  • Zijn kwaliteit is superieur aan 16-bits.
  • Het is beschikbaar overal (een heleboel beschikbare software zoals 'Paint' kunt converteren naar elk type van afbeeldingen in de indeling BITMAP 24-bits).
  • Doorzichtigheid is niet beschikbaar. Dat geeft ons meer flexibiliteit in de omgang met de transparantie in onze eigen manier.

Eerder vermeldden wij het beheer van de transparantie. In een kwestie van feit, is onze software ook gemaakt om te kunnen de niveaus van de transparantie van de kleuren van een bepaalde afbeelding instellen. Aangezien onze grafische kaart maximaal 4 onafhankelijke vertoning lagen verwerken kan, is het cruciaal voor ons om de transparantie van een afbeelding wijzigen of instellen van een transpareny te kunnen kleur itn anders gelaagde tentoongesteld brengt geen winst.

We hebben twee verschillende opties voor transparantie:

  1. De eerste bestaat uit een reeks van kleur (maximaal 5) ondoorzichtig maken. Ex: De achtergrond van een sprite doorzichtig maken
  2. Ten tweede bestaat de transparantie van alle kleuren niet nemen in overweging bij de nummer één optie te kiezen. Ex: Het beeld van een brand 50% transparant maken ter verfijning van de animatie.

Procedure

Eerste stap: Laden van de afbeelding en het kiezen van de juiste parameters voor configuratie.

We beginnen met het kiezen van de afbeelding om te zetten en het pad naar waar we wenst op te slaan. Dan zetten we de transparantie-parameters die we uitgelegd in de vorige sectie. Wanneer de afbeelding is geladen, zal de software beginnen met het lezen van de eerste bytes van de opgegeven afbeelding. Deze bytes bevat de afmetingen van de afbeelding en worden niet gekopieerd in het uitvoerbestand omdat de FPGA-kaart doen geen rekening gehouden met deze gegevens, maar alleen de gegevens die overeenkomen met een pixel gebruikt. Na de overname van de eerste bytes van het beeld, kan de software start de conversie.

Tweede stap: Het omzetten van de afbeelding.

In deze tweede fase zal de software alleen lezen elke byte de kleuren van een pixel te definiëren om te zetten in een 16-bits indeling. Het is een eenvoudig proces met behulp van een juiste binaire verschuiving van 4 bit te kunnen hebben van 4 bits per kleur in plaats van 8 bits. We het toevoegen aan deze 12 bit og kleuren 4 bit transparantie met behulp van de parameters vastgesteld aan het begin van de procedure.

Derde stap: Instellen van het juiste formaat van de afbeelding.

Deze laatste stap bestaat over het aanpassen van de gegevens. De BITMAP matrix slaat de pixels in aflopende volgorde gelet op het niveau van de lijnen. Sinds de specificaties van de installatiekopie-indeling die we willen opleggen van een toenemende volgorde van de pixels, hebben we aan het herschikken van de pixels in de juiste volgorde. Wij ontmoeting idem werkstuk voor de bitvolgorde. Wij gecorrigeerd door het veranderen van 0xRGBA naar 0xGRAB.

Zodra het beeld in het gewenste formaat is, is het enige wat overblijft het beeld overbrengen naar het RAM van de FPGA met behulp van de STM32 microcontroller.

Gerelateerde Artikelen

Verplaatsbaar Wild Lessenaar (GPU Team)

Verplaatsbaar Wild Lessenaar (GPU Team)

ContextOnze docenten gezocht voor ons project voor procestechniek, ons om de uitdagingen van het ontwerpen van een real-time systeem met relatief hoge prestaties op beperkte hulpbronnen (geheugen, bandbreedte).De specificaties vereisen een gokkenplat
Wederopbouw van een open haard Surround

Wederopbouw van een open haard Surround

dit Instructable (Instructanovel) gegevens het proces ging ik door naar een bestaande open haard surround gemaakt van flagstone slopen en te vervangen door een veel aantrekkelijker (althans in mijn ogen) een op maat gemaakt.Toen ik naar mijn huis ver
De naam tekenen CNC

De naam tekenen CNC

Dit instructable ontstond vervulling de project-eis van de Makecourse bij de Universiteit van Zuid-Florida (www.makecourse.com).Met dat in gedachten is het eindresultaat van dit project een CNC dat volledig kan worden uitgevoerd op GRBL, maar om te v
Slimme huis met arduino en jubito

Slimme huis met arduino en jubito

jubito is een software dat ik ontwikkelen op basis van jaNET kader. Een slimme Thuisserver waarmee interfaces tussen verschillende hardware (zoals arduino) en softwareonderdelen, geven de mogelijkheid om elkaar te communiceren en laat me toegang auto
Externe gecontroleerde relay

Externe gecontroleerde relay

In dit project ga ik om u te tonen hoe maak je een goedkope remote gecontroleerde relay met een zender en ontvanger. Deze draadloze relay kan worden gebruikt op om het even wat kunt u en prank uw vrienden door het te koppelen aan een lamp schrikken h
Brei je eigen Instructables Robot

Brei je eigen Instructables Robot

Gebreide Instructables RobotVergeten speelgoed dat zal praten met u, of dans voor u, of batterijen worden gespeeld met nodig. Laten we terug naar de basis met een goede oude ouderwetse plushie speelgoed. Iets om te knuffelen, maar iets dat past in de
Macht van uw Arduino/AVR met een batterij Hand-Cranked

Macht van uw Arduino/AVR met een batterij Hand-Cranked

als u ooit hebt willen macht uw Arduino of AVR uit een batterij voor het testen van de ontwikkeling (batterijen hebben verschillende macht levering kwaliteiten dan, zeg, getransformeerde AC of zelfs een gereglementeerde muur wrat in DC) testen maar w
Zinderende zeepokken, een andere fiets aanhangwagen!

Zinderende zeepokken, een andere fiets aanhangwagen!

ik wilde een eenvoudige fiets aanhangwagen dat zou sterk, lichtgewicht, weerbestendig en eenvoudig te maken. Mijn ontwerp werd beïnvloed door het materiaal dat ik had bij de hand van andere (huis) bouwprojecten, dus er kan beter ijzerhandel onderdele
Een ander Arduino teller

Een ander Arduino teller

Adaptieve rapportage delen batch tellerEen teller die zich aan de machine het aanpassen kan is gemonteerd op en rapportgegevens terug naar andere locaties bijvoorbeeld supervisor ReceptieHier is teller die ik gebouwd als een werkend prototype voor ee
DIY LED bord met MAX7219 Dot Matrix Module STM8S003F3 MCU voor AVR PIC MSP430 Arduino ARM STM32

DIY LED bord met MAX7219 Dot Matrix Module STM8S003F3 MCU voor AVR PIC MSP430 Arduino ARM STM32

om te voldoen aan de elektronische DIY hobbyisten, ICStation MAX7219 Dot Matrix Moduleheeft ontwikkeld. Het gebruikt de Max7219-chip die een geweldige job op besparing van MCU i/o. Het kan geen alleen controle over elk punt afzonderlijk, maar ook kan
MIJN GEWELDIGE TAMIYA WILD ONE!!

MIJN GEWELDIGE TAMIYA WILD ONE!!

this is my awesome tamiya wild one, it was released in 1985 and still runs like ice-cream on a sunny day.een van mijn vader's vrienden vond het op het puntje en ik ben herstellen, modding en re bouwen.met de slicks aan de achterkant zijn zo zacht dat
Edison Robotic Arm

Edison Robotic Arm

Welkom bij mijn eerste ooit Instructable. Voordat ik aan de slag, zou ik willen het Instructables team bedanken voor mij te voorzien van de Intel Edison kit met de geweldige add-ons in de recente Intel weggeven. Robotica is altijd verbaasd me dus het
Androïde slimme telefoon Bluetooth afstandsbediening intelligente slimme auto 51 MCU (Code STC89C52)

Androïde slimme telefoon Bluetooth afstandsbediening intelligente slimme auto 51 MCU (Code STC89C52)

aan het begin van het nieuwe jaar, Robot/Smart auto hobbyisten en studenten (zoals jullie allemaal) over techniek, wetenschap en technologie zijn bezig met de voorbereiding voor de robot wedstrijden nu.Het is de geweldige tijd om te laten zien de wer
Hoe Arm een schaal Model slagschip van kras te bouwen

Hoe Arm een schaal Model slagschip van kras te bouwen

Welkom in de fascinerende wereld van R/C grote GEWEER oorlogsschip bestrijden. Dus wat is precies R/C oorlogsschip bestrijden? Het is een hobby waar schaal model oorlogsschepen, bewapend met lagedruk CO2 kanonnen, brand kleine kogellagers op een tege