die perfekte Bildkompression?



  • Hi,

    Ich suche einen Algorithmus Bilder komprimiert. am besten wäre natürlich der "perfekte" Algorithmus, da es diesen aber nicht gibt möchte ich ein paar Tipps sammeln. Das Bild sollte möglichst verlustfrei, mit geringem RAM-Bedarf, aber am wichtigsten möglichst schnell komprimiert werden (es sollte möglich sein das ganze auf einenm µC zu machen).

    Gibt es eine entsprechende Möglichkeit?

    JPEG ist ja weder schnell noch RAM-sparend, da das gesamte Bild im Speicher sein muss.
    Bei PNG ist das Problem, dass es mithilfe einer Huffmann-Kodierung arbeitet, was allerdings wieder relativ großen Rechenaufwand bedeutet.

    LG



  • http://en.wikipedia.org/wiki/Run-length_encoding

    Normalerweise tauscht man Speicherbedarf gegen Geschwindigkeit.



  • Öh. JPEG ist eigentlich recht flott. Kann man ja auch leicht modifizieren wenn irgendwas speziell bremst.
    Und der Huffman Teil (brauchst du bei JPEG auch) sollte IMO nicht das Problem sein. Macht man üblicherweise Table-Driven, das geht sehr ruck-zuck. Du kannst ja ne fixe Verteilung annehmen, d.h. du musst auch nicht für jedes Bild nen neuen Table aufbauen.
    Wieso man das gesamte Bild dazu im RAM halten müsste sehe ich auch grad nicht ein. Ist ja Block-basiert.

    p.S.: und knivil hat natürlich Recht: beides, also gute Kompression und schnell wird's wohl nicht spielen. Bzw. alle drei: gute Kompression, schnell und "möglichst verlustfrei".



  • gibt einige die jpg benutzen weil man schneller laden kann wenn man die kleine jpg datei einlaedt und dekomprimiert statt die unkomprimierte datei zu laden.
    ich glaube carmack hat das deswegen bei Quake3 eingebaut (bevor es dxt gab).



  • Die wahl eines guten algorithms haengt auch davon ab was fuer bilder du komprimieren willst.

    JPG erfordert nicht dass du alles im speicher hast, du kannst blockweise komprimieren/dekomprimieren.

    du muesstest ein paar mehr informationen liefern fuer bessere tips
    -kompression ratio dass du brauchst/wuenscht
    -beispielbild (notfalls googlen oder grob die quelle nennen)
    -welche hardware
    -wieviel zeit darf der algo brauchen? 10ms? 1s? 1min?


Log in to reply