Ich implementiere derzeit einen JPEG Resizer in C++ mit der jpeglib-turbo Bibliothek.Kann eine hochleistungsfähige jpeglib-turbo Implementation in <100ms dekomprimieren/komprimieren?
Ich habe das Ziel von 100 Millisekunden für JPEG-Dekompression und Rekompression mit der Bibliothek gegeben. Das Beste, was ich mit den empfohlenen Optimierungseinstellungen (dokumentiert in jpeglib-turbo usage.txt) erreichen kann, ist ungefähr 320ms, also frage ich mich, ob 100ms sogar möglich/realistisch sind? Dies würde ein Bild mit 3000x4000 px von etwa 6MB auf 130Kb dekomprimieren/komprimieren.
Der Code, den ich für eine schnelle Dekompression ist:
dinfo.dct_method = JDCT_IFAST;
dinfo.do_fancy_upsampling = FALSE;
dinfo.two_pass_quantize = FALSE;
dinfo.dither_mode = JDITHER_ORDERED;
dinfo.scale_num = 1/8;
Aus Neugier, warum brauchen Sie es so schnell zu sein? 320ms für ein 6MB JPEG ist ziemlich schnell. – Bojangles
Sie haben keine Plattform erwähnt. Ist das für Handys? Desktop? Single oder Multithread? Ich habe einen schnellen DCT-Miniatur-Code, an dem ich gearbeitet habe. Auf meinem 2GHz Core i7 (mit einem einzigen Thread) kann ein RGB-Bild mit einer Größe von 1/8 aus 6 Megabyte JPEG-Daten (einem 4000x4000 Bild) in etwa 120 ms extrahiert werden. Um das 500x500 Bild auf 130KB neu zu komprimieren würde wahrscheinlich noch weitere 40-100ms dauern (ich habe noch keine extreme Optimierung am Kompressor vorgenommen). Der zeitkritische Teil des Thumbnail-Extrakt-Codes wird in einer 64-Bit-Assemblersprache geschrieben. Kontaktieren Sie mich für weitere Informationen ([email protected]). – BitBank
ist dieses Projekt Open Source zufällig? post a link :) – kritzikratzi