Forum: Mikrocontroller und Digitale Elektronik einfaches komprier code


von peter (Gast)


Lesenswert?

Hi
Ich muss ein 90x90 Led Matrix mit Video in Form von Bitmaps steuern. Was 
ist die cyclen mässig die effizienteste Art und Weise das ganze zu 
komprimieren auf ein Controller? Es geht um 25 Framework per second. Die 
Bitmaps ändern sich aber selten. Bzw nur alle paar Frames.
ZIP? Dpcm? Adpcm?
Any Idea?
Maziar

von egbert (Gast)


Lesenswert?

Farbtiefe?
Vermutlich RLE.

von Harry L. (mysth)


Lesenswert?

Bei 90x90 Pixel kostet die Komprimierung vermutlich mehr Rechenzeit, als 
die Daten einfach aufs Display zu schaufeln...

von nachdenkliche sprüche vong 1 mikrokontroler her? (Gast)


Lesenswert?

Ich denk nicht, das, du 1 dekomprieren hin bekomst. vong cyclen her.

Were es fileicht besser, das, um die Framework per second vong speed 
geschwinidgkeit zu schafen, die Daten vong 1 SD Kate mit SPI lesen?

Solte auch vong spaicherplaz memory her nich so des problem sein auf 1 
SD kare, da paseen heuzetutage ja paar Gigabyte daruf.

von peter (Gast)


Lesenswert?

sorry es geht umk eine 9x90 LED matrix.
Also nochmal:
Wie komprimiert man sowas am besten?
danke

von jzjjf (Gast)


Lesenswert?

9x 90   eine farbe?
wieviel bit pro pixel?

1bpp sind 810 bits -> array mit 101 bytes

8bpp -> array mit 810 bytes

bei double buffer sind das 1620 bytes im RAM

pro protokoll 810 bytes * 25 frames sind 20250 bytes pro sekunde


also alles in allem .. sau lahm

was soll man da noch komprimieren :-/

von Falk B. (falk)


Lesenswert?

@peter (Gast)

>sorry es geht umk eine 9x90 LED matrix.

Ist ja noch weniger. Sind das 9x90 einfache LEDs (an/aus), sind die LEDs 
per PWM gedimmt oder sind es gar 9x90 RGB LEDs?

>Wie komprimiert man sowas am besten?

Die Frage steht gar nicht an 1. Stelle. Sondern:

Muss man überhaupt komprimieren?

Speicher gibt es heute in Hülle und Fülle.

Wieviele Frames sollen denn gespeichert und angezeigt werden?

> Es geht um 25 Framework per second. Die
>Bitmaps ändern sich aber selten. Bzw nur alle paar Frames.

Dann braucht man auch keine 25 Bilder/s. Und vor allem sollte man 
zwischen der Multiplexfrequenz der LED-Matrix und der Bildrate des 
Videos unterscheiden! Die Matrix kann mit 100 Hz laufen, damit es 
flimmerfrei wird, das Video aber nur mit 5-10 Bildern/s.

von H. R. (hacker_r)


Lesenswert?

rgb ist meiust 8 bit

: Bearbeitet durch User
von SpeicherMeister (Gast)


Lesenswert?

statt 1byte pro farbe nimm 8bit pro Pixel und ne Palettentabelle.
Dann nur die Deltas zwischen den Bildern speichern, nicht die vollen 
Frames.

Aber eigentlich:
https://www.mouser.de/ProductDetail/ISSI/IS25LP032D-JBLA3?qs=sGAEpiMZZMtI%252bQ06EiAoG%252bAe0qJpJIMLGZDzs%2fPKX1Q%3d

32Mbit für rund 2€, da hält auch ein indischer Stundensatz nicht mit.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

peter schrieb:
> sorry es geht umk eine 9x90 LED matrix.
> Also nochmal:
> Wie komprimiert man sowas am besten?
> danke

Am "besten" wahrscheinlich mit einem h265 video codec.
Aber so wie ich das seh', willst du wohl eher dekomprimieren, also 
wieder aufblasen und weiterhin nicht unbedingt am besten, sondern 
vielleicht am schnellsten.
Aber eigentlich auch nicht am schnellsten, sondern nur schnell genug, 
dass es auf deiner hochgeheimen Platform gerade noch laeuft, ohne zu 
ruckeln.
Und dann wird's wahrscheinlich noch drauf ankommen, wieviel 
Pufferspeicher du bereitstellen kannst.
Das wird keiner ausser dir wissen koennen.

Gruss
WK

von Stefan F. (Gast)


Lesenswert?

> Wie komprimiert man sowas am besten?
Was heißt in diesem Fall "am besten"? Nenne deine Kriterien, 
insbesondere welcher Art die Bilder sind und welche Verluste du 
akzeptierst.

Deine Frage ist ungefähr so wie "Ich brauche was zu essen", was nehme 
ich am besten?

von W.S. (Gast)


Angehängte Dateien:

Lesenswert?

Dergute W. schrieb:
> Am "besten" wahrscheinlich mit einem h265 video codec.

Also jetzt hast du ein bissel übertrieben.

Ich hatte ja schon vor einiger Zeit auf besser geeignete Verfahren 
hingewiesen, siehe Beitrag "BMP/JPEG/GIF/PNG nach C-Code konvertieren"

Das für µC wohl am ehesten geeignete Verfahren besteht darin, erstens 
die Anzahl der Farben zu reduzieren und dann mit geeigneter Bitbreite 
als Bitstream zu speichern. Sowas dekodiert sich im µC ausgesprochen 
leicht und ist sparsam.

Ich hatte mir die dazu nötigen Tools vor Jahren mal selber geschrieben 
(Thema waren Landkarten im µC). Ich häng mal ein kleines Beispiel dran.

W.S.

von Egon N. (egon2321)


Lesenswert?

Dergute W. schrieb:
> Am "besten" wahrscheinlich mit einem h265 video codec.

Genosse, AV1 ist inzwischen angesagt.

Würde ja gerne eine AVR Implementierung von AV1 sehen. :D

von c-hater (Gast)


Lesenswert?

peter schrieb:

> Any Idea?

Traffic-Troll. Alle Anzeichen sind da:

- lausigste Rechtschreibung
- Salamitaktik
- falsche Anfangsinformationen
- fehlende Spezifikation der Anforderungen
- werden auch bei Rückfrage nicht nachgeliefert

Also: Traffic-Troll oder Vollidiot. Thread bitte schliessen...

von Stefan F. (Gast)


Lesenswert?

Vielleicht gibst du dem Peter genug Zeit, unsere Rückfragen zu 
beantworten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.