daten schnell speichern



  • Ich weiss nicht ob LZO (oder andere Dictionary-basierten Algorithmen) bei Bilddaten wirklich viel Sinn machen.

    Delta + Entropy-Coding funktioniert dagegen bekanntermassen gut.
    Und Huffman kann man über Lookup-Tables auch richtig schnell bekommen.



  • tntnet schrieb:

    Was mir da einfällt ist ein separater Thread, der über eine Queue mit den Daten versorgt wird und sich um die Speicherung kümmert. Dadurch wird der Haupthread nicht blockiert.

    Es würde sich auch eine schnelle Komprimierung anbieten. Wie wäre es mit LZO (http://de.wikipedia.org/wiki/Lempel-Ziv-Oberhumer). Das ist sehr schnell. Durch die Komprimierung wird die Datenmenge, die auf das Speichermedium geschrieben werden muss reduziert.

    Wenn mehrere Cores zur Verfügung stehen, kann man auch die Komprimierung parallelisieren. Also statt eines Speicherthreads gleich einen Threadpool.

    Und wenn die CPU-Leistung im Vergleich zur I/O Leistung sehr groß ist, dann kannst Du auch höher komprimierende Algorithmen verwenden, die mehr Rechenaufwand benötigen.

    LZO ist aber keine freie Software oder? Das sieht noch GPL aus.



  • zlib ist frei, und auch ausreichend schnell. Ist nur leider auch Dictionary-basiert.
    Entropy-Coder FTW! 🕶



  • So wollte nur nochmal Feedback geben.
    Also setbufs bzw setvbufs hat dann schlussendlich gereicht. Einfach nen Buffer mit 860mBytes erstellt und ich konnte 20 sekunden Aufzeichnen.
    Also ich denke zur Verbesserung könnte ich jetzt noch die Threads nutzen, da ich aber eh wenig rechenleistung habe reicht es mir wenn ich die Verarbeitung am Ende mache. Naja und klar außerdem könnte ich wie noch erwähnt wurde meine 4 10Bit Werte in 5 Bytes speichern anstatt jetzt in 8. Das werd ich dann wohl machen wenn ich länger aufzeichnen will.

    Dankeschön aufjedenfall für die Hilfe

    gruß
    Felix
    p.s. das mit der Komprimierung klingt interessant ist mir glaub ich gerade zu aufwendig und außerdem hab ich keine Rechenzeit übrig


Anmelden zum Antworten