Sida 1 av 1

Generera programkod för bildvisning på µC?

Postat: 30 augusti 2013, 15:58:45
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. :)

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

Postat: 30 augusti 2013, 16:06:28
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

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

Postat: 30 augusti 2013, 16:41:30
av TomasL
En JPEG decoder i din uC.

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

Postat: 30 augusti 2013, 19:51:26
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? :)

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

Postat: 30 augusti 2013, 20:14:48
av johano
För gcc kan man göra såhär http://balau82.wordpress.com/2012/02/19 ... -with-gcc/

/johan

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

Postat: 30 augusti 2013, 20:15:39
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.

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

Postat: 30 augusti 2013, 21:32:38
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.

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

Postat: 30 augusti 2013, 23:47:40
av Swech
Kläm dit ett SD kort, så har du obegränsat med utrymme ( i princip)

Swech

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

Postat: 31 augusti 2013, 00:57:46
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

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

Postat: 31 augusti 2013, 03:06:34
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.

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

Postat: 31 augusti 2013, 08:13:48
av blueint
Filformatet för SVG kanske är något komplext att hantera för en MCU ?

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

Postat: 31 augusti 2013, 16:31:46
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.

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

Postat: 31 augusti 2013, 16:39:55
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

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

Postat: 31 augusti 2013, 20:11:10
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?

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

Postat: 31 augusti 2013, 20:13:09
av Micke_s
Kör bilderna på ett spi flashminne.
Vet ej vad http://lodev.org/lodepng/ tar i flash/ram, testa.