Generera programkod för bildvisning på µC?

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
Klas-Kenny
Inlägg: 11341
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Generera programkod för bildvisning på µC?

Inlägg av Klas-Kenny »

Har funderat på en grej ett tag nu, som jag skulle behöva för att komma vidare i ett projekt.

Om jag har en µC kopplad till en liten TFT-display, där jag vill kunna visa upp någon bild, hur gör jag enklast?
Okej, bitmapp i en 2D-array är ju väldigt simpelt, det har jag gjort tidigare och haft program till att generera färdig kod att klistra in och använda. Men problemet att det tar mycket minne.
I mitt fall har jag bara processorns inbyggda flashminne på 128K, räcker inte så långt till bitmappar på typ 200*300 pixlar...

Men, i mitt fall så kommer bilderna att vara väldigt enkla, rätt stora ytor i samma färg -> kan komprimeras mycket.
Jag skulle kunna sätta mig och hårdkoda bilderna, mer avancerade är de inte, men det blir dels drygt, dels jobbigt om jag vill ändra i framtiden, dels så lär jag mig inget på det.

Processorn i fråga är en STM32F103 och jag programmerar i C, men det är inte så intressant då jag mest är ute efter lite mer allmänna sätt att lösa uppgiften oavsett plattform.

Så, vad finns det för smidiga sätt att göra lite enkelt komprimerad bildvisning?
Drömmen vore att kunna rita i något vanligt program på datorn typ Photoshop, Paint.net etc. och där ifrån generera någonting smidigt att köra in i processorn med minsta möjliga handpåläggning.

Alla tips, idéer, länkar etc. är mycket uppskattade. :)
thepirateboy
EF Sponsor
Inlägg: 2108
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Re: Generera programkod för bildvisning på µC?

Inlägg av thepirateboy »

Kanske inte svaret du sökte men ett sätt är att använda ett FTDI-chip http://www.ftdichip.com/EVE.htm
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45298
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Generera programkod för bildvisning på µC?

Inlägg av TomasL »

En JPEG decoder i din uC.
Användarvisningsbild
Klas-Kenny
Inlägg: 11341
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Generera programkod för bildvisning på µC?

Inlägg av Klas-Kenny »

thepirateboy: Inte vad jag sökte, nej. I mitt fall måste det hela lösas i mjukvara då hårdvaran är färdig. :)
Men fortfarande bra att veta till en annan gång!

TomasL: Om jag får in en JPEG-decoder, hur gör man i så fall enklast för att få in själva bilden?
Just eftersom att jag inte har tillgång till annat än processorns inbyggda minne menar jag. Hur kan man tänkas gå till väga för att få in bild-datan då om inte genom programkoden? :)
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Generera programkod för bildvisning på µC?

Inlägg av johano »

För gcc kan man göra såhär http://balau82.wordpress.com/2012/02/19 ... -with-gcc/

/johan
Användarvisningsbild
jesse
Inlägg: 9235
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Generera programkod för bildvisning på µC?

Inlägg av jesse »

Nyckeln är att skapa bilderna i realtid utifrån så lite data som möjligt.

"Hårdkoda" bilderna låter kanske fel, men tänk så här istället:
Koda några enkla funktioner som genererar fyrkanter eller linjer utifrån givna data. Och så gör du ett system som kan kombinera dessa till en bild.
Du måste fortfarande "koda" bilden (eller komprimera om du vill kalla det så), men funktionen är flexibel.

så här kanske :) : Craft, av Linus Åkesson.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45298
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Generera programkod för bildvisning på µC?

Inlägg av TomasL »

Klas-Kenny skrev: TomasL: Om jag får in en JPEG-decoder, hur gör man i så fall enklast för att få in själva bilden?
Just eftersom att jag inte har tillgång till annat än processorns inbyggda minne menar jag. Hur kan man tänkas gå till väga för att få in bild-datan då om inte genom programkoden? :)
Nu vet jag inte hur mycket programminne du har, men det borde ju inte vara några problem egentligen, till exempel har uChip några appnotes och kod med JPEG-decodrar för PIC32, det borde finnas rätt mycket om detta på nätet.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4694
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Generera programkod för bildvisning på µC?

Inlägg av Swech »

Kläm dit ett SD kort, så har du obegränsat med utrymme ( i princip)

Swech
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Generera programkod för bildvisning på µC?

Inlägg av blueint »

Är det sådana här bilder så använd JPEG

Bild

Är det istället denna typ så använd PNG

Bild
Användarvisningsbild
Meduza
EF Sponsor
Inlägg: 10718
Blev medlem: 30 april 2005, 22:48:05
Ort: Ekerö, Stockholm
Kontakt:

Re: Generera programkod för bildvisning på µC?

Inlägg av Meduza »

Eller rita i tex SVG, kommer kräva lite mer av processorn men kan bli väldigt snålt på utrymme om man använder relativt enkla former.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Generera programkod för bildvisning på µC?

Inlägg av blueint »

Filformatet för SVG kanske är något komplext att hantera för en MCU ?
Användarvisningsbild
Klas-Kenny
Inlägg: 11341
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Generera programkod för bildvisning på µC?

Inlägg av Klas-Kenny »

johano skrev:För gcc kan man göra såhär http://balau82.wordpress.com/2012/02/19 ... -with-gcc/
Sedär ja, det ska jag absolut kolla närmare på!
jesse skrev:"Hårdkoda" bilderna låter kanske fel, men tänk så här istället:
Koda några enkla funktioner som genererar fyrkanter eller linjer utifrån givna data. Och så gör du ett system som kan kombinera dessa till en bild.
Du måste fortfarande "koda" bilden (eller komprimera om du vill kalla det så), men funktionen är flexibel.
Det är precis så jag menade i första inlägget att jag skulle kunna göra, men helst vill undvika. :)
Swech skrev:Kläm dit ett SD kort, så har du obegränsat med utrymme ( i princip)
Jo, det förstås, men just nu är hårdvaran klar så jag vill inte göra om det då jag vet att det GÅR att lösa i mjukvara.
Sen så bär det mig lite emot också att lägga på extra kostnader i projektet, även om det egentligen inte spelar någon roll då det bara ska göras i enstyck för eget bruk..
blueint skrev:Är det sådana här bilder så använd JPEG

Är det istället denna typ så använd PNG
PNG är nog rätt väg i det här fallet. Men spelar nog inte jättestor roll skulle jag tro.

Ska ta och googla efter någon bra dekoder för PNG och/eller JPEG. :)

Edit: För övrigt, hur lång tid det tar att få fram bilden spelar i princip ingen roll, går det på under två sekunder är jag mycket nöjd. Skulle det ta längre tid vore inte det heller hela världen.
Senast redigerad av Klas-Kenny 31 augusti 2013, 16:42:36, redigerad totalt 1 gång.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4694
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Generera programkod för bildvisning på µC?

Inlägg av Swech »

Du kan kika på äldre typer också som användes på Amiga/Atari tiden
T.ex.
http://en.wikipedia.org/wiki/Run-length_encoding

Eller köra med mindre antal färger och då koda med palett

Swech
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Generera programkod för bildvisning på µC?

Inlägg av blueint »

Vad är det för process som skapar bilderna? är det statiska bilder som du skapar manuellt eller mätdata osv som ska visas osv?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Generera programkod för bildvisning på µC?

Inlägg av Micke_s »

Kör bilderna på ett spi flashminne.
Vet ej vad http://lodev.org/lodepng/ tar i flash/ram, testa.
Skriv svar