Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Kompresja kolorowego obrazu pod ATMEGA

16 Cze 2006 18:34 1663 5
  • Poziom 18  
    Zakupiłem wyświetlacz od nokii 3510i i zaczynam pisać sobie biblioteki do tego wyświetlacza. Zauważyłem, że obrazki są dość pamięciożerne. Czy ktoś próbował pisać jakieś procedury dekompresujące obaz na ten wyświetlacz pod ATMEGE czy to w C czy w ASM? Jeśli tak to proszę o jakieś sugestie. Być może GIF by się nadał. Spróbuje coś też napisać do kompresji małych (kilkupikselowych) animacji. Prosze o wszystkie pomysły i uwagi wstępne które pozwoliłyby mi na nie wywarzanie otwartych drzwi :) .
  • Poziom 21  
    No nie wiem, w końcu obrazki są niewielkie (pixelowo) to czy kompresja będzie znacząco wpływała na rozmiar. Poza tym trzeba to rozkompresować, ciekawe czy dasz radę na AVRku. Może zamiast tego dołóż sobie jakiegoś zewnętrznego FLASHa np DataFlash.
  • Poziom 39  
    Metoda LZW (stosowana GIF-ach) jest dość skomplikowana jak na prosty mikrokontroler. Stosuje ona słowniki które będą potrzebować trochę więcej pamięci RAM. Ponadto stosując ją musiałbyś wykupić stosowną licencję. :(

    Raczej zainteresuj się metodą RLE polagającą na eliminacji powtarzających się bajtów, albo półbajtów. Sprawdza się ona najlepiej, gdy na obrazach jest dość mało szczegółów. Modyfikując nieco tą metodę, tak by kolory różniące się jednym, dwoma odcieniami traktowała jako takie same można jeszcze podnieść nieco efektywność.
    Mam gdzieś kod pokazowy - napisany od zera przez kolegę Marteeneza w języku QBASIC - gdzie mógłbyś przeanalizować jak to w uproszczeniu działa.
  • VIP Zasłużony dla elektroda
    LZW już chyba od kilku lat nie jest komercyjny...
  • Poziom 18  
    Generalnie chodzi mi o to, żeby łatwo można było ładować obrazy z komputera i zeby zajmowały możliwie najmniej pamięci. Zwykły gif o tej rozdzielczości zapisany paintem zajmuje 5kb, a bmp 7kb. Będe więc musiał zrobić jakiś swój standard w którym powywalam niepotrzebne informacje z pliku. Puki co znalazłem coś takiego. Tak jak pisze Light-I wyświetlanie (dekompresja) GIF chyba nigdy nie była komercyjna.
    Muszę przegrzebać jeszcze algorytmy pakujące z ATARI :) . Pamiętam, ze zmniejszenie rozmairu pliku binarnego z przeciętnym programem o 20-30% wymagało około 1kB kodu dekompresora tam.