Bild auf SRAM speichern

Also, "Teile und Hersche".


Zuerst: Entscheide dich für eine Komprimierung (libjpeg?).
Schau in welchem Pixelformat diese ihre Eingabedaten erwartet.
Implementiere das Laden der Kameradaten, evtl. Farbraum-Wechsel, das 
übergeben an die komprimierungs-Funktion.

Jetzt hast du einen Blob mit komprimierten Bilddaten.
Den zusammen mit Erstellungdatum, Bildnummer etc. ins SRAM ("verkettete 
Liste"?)
Datenbank ist overkill, da SRAM "Random Access Memory" ist, und du mit 
linearer Suche deine handvoll Bilder auch gleich durch hast.
Ibo de Souza schrieb:
> Ich möchte das Bild vorher noch komprimieren und so viele Bilder drauf
> bekommen wie es nur geht. Eine weitere Frage wäre noch im Datenblatt vom
> Sensor steht 8bit YUV heißt das dann nicht 352*288*1?
Nein YUV 8 Bit bedeutet, dass Y, U und V jeweils mit 8-Bit Farbauflösung 
gespeichert werden. Je nach Subsampling werden U und V aber mit 
geringerer (Bild)Auflösung gespeichert, z.B mit halber horizontalen 
Auflösung (4:2:2) oder halber vertikalen und horizontalen Auflösung 
(4:2:0)
Ibo de Souza schrieb:
> Speichern auf dem SRAM mit datum name nummer?

du speicherst pro Bild einmal
1
struct Bild {
2
  time_t datum;
3
  char name[12]; // 8.3;
4
  int nummer;
5
  size_t binaerdatengroesse;
6
}
.
Danach die Komprimierten Binärdaten.

Zum Auslesen/Suchen eines Bildes:

Setze Leseposition auf Speicherstelle 0:
while not found:
  struct Bild auslesen.
  Check ob Name/Nummer/... passt.
  Wenn nein: Leseposition um sizeof(struct Bild) + binaerdatengroesse 
weiterverschieben..
done

d.H. du hast im SRAM eine kette von Bild-Structs, dazwischen immer die 
Komprimierten Daten. Das Ende der Kette kannst du z.B. durch eine Struct 
Bild mit binaerdatengroesse==0 markieren.
Wozu den Punkt speichern wenn man eh die feste Länge hat? Die ersten 
acht Zeichen sind der Teil vor dem Punkt, dann folgt implizit der Punkt, 
und danach die drei Zeichen sind dann nach dem Punkt.

Da kriegt der Bgriff "Festpunktarithmetik" doch gleich eine vollkommen 
neue Bedeutung. ;-)
Eike S. schrieb:
> Wozu den Punkt speichern wenn man eh die feste Länge hat?

Weil es bei 10 Bildern auf die 10 Bytes auch nicht mehr ankommt und die 
Verarbeitung der Namen dann simpler ist, wenn man nicht erst mal die 
gelesenen Bytes herumwirbeln muss.
Ob er den Punkt speichert oder nicht, ist auch schon egal. Deswegen 
kriegt er auch nicht mehr Bilder in den Speicher.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.