Exportiert von http://code.google.com/p/picojpeg. Der ursprüngliche Autor ist Rich Geldreich von richgel99 bei gmail.com .
picojpeg ist ein Public-Domain-JPEG-Dekompressor, der in einfachem C in einer einzigen Quelldatei picojpeg.c und einem einzigen Header picojpeg.h geschrieben ist. Es verfügt über mehrere ziemlich einzigartige Eigenschaften, die es auf kleinen eingebetteten 8/16-Bit-Geräten oder in Umgebungen mit sehr begrenztem Speicher nützlich machen:
picojpeg weist im Vergleich zu anderen Implementierungen mehrere Nachteile und bekannte Probleme auf:
Eine ähnliche Variante von picojpeg wurde erfolgreich kompiliert und auf dem Mikrocontroller PIC18F4610 von Microchip mit dem eingebetteten BoostC-Compiler von SourceBoost Technologies ausgeführt. (Bitte senden Sie eine E-Mail, wenn Sie diese Variante sehen möchten.) picojpeg.c wurde auch auf den MSP430- und ARM Cortex-M4-CPUs verwendet. (Eine Beispielverwendung finden Sie unter Verwenden der Picojpeg-Bibliothek auf einem PIC mit dem ILI9341 320x240 LCD-Modul.)
Die Quelldistribution umfasst ein VS2005-Beispielprojekt und vorkompilierte ausführbare Win32/Win64-Befehlszeilendateien, die JPG-Dateien mithilfe von Picojpeg zur Dekomprimierung in TGA-Dateien konvertieren. Das gemeinfreie stb_image.c-Modul von Sean Barrett wird zum Schreiben von TGA-Dateien verwendet.
picojpeg basierte ursprünglich auf meiner C++-Klasse jpgd decompressor, die (auf modernen CPUs) schneller und leistungsfähiger als picojpeg.c ist, aber viel mehr Speicher benötigt und davon ausgeht, dass es sich bei den Ints um 32 Bit handelt.
Hier ist picojpeg, das auf einer 6809-CPU (einem Tandy Color Computer 3) arbeitet und mit gcc6809 kompiliert wurde: picojpeg: Decoding Lena auf einem Tandy Color Computer 3.
v1.1 – 23.03.2020: Unsigniertes/signiertes Problem im Makro behoben, Überlaufproblem im Decoder behoben, das die Dekodierung sehr großer JPEGs verhinderte
v1.1 – 19. Februar 2013: Doppellizenz sowohl als Public Domain als auch (wo Public Domain nicht akzeptabel ist) MIT-Lizenz. Bitte kontaktieren Sie mich für den Quellcode.
v1.1 – 9. Februar 2013: Die IDCT-Reihen-/Spaltenschleifen wurden optimiert, um die vollständige inverse Transformation zu vermeiden, wenn nur die Gleichstromkomponente ungleich Null ist. „Reduzieren“-Modus für schnelle 1/8-Auflösungsdekodierung hinzugefügt, bessere Fehlerbehandlung. Unterstützung für H2V1/H1V2-Chroma-Subsampling-Faktoren hinzugefügt, jpg2tga.cpp nach jpg2jpg.c portiert (damit alle Module jetzt in einfachem C geschrieben sind), hinzugefügt Code zum Vergleichen der dekodierten Ausgabe von picojpeg mit stb_image'c zum Testen/Verifizieren.
v1.0 – 10. November 2010: Erstveröffentlichung. Abgeleitet von der Originalversion, die auf einer CPU der PIC18F-Serie getestet wurde.
Vielen Dank an Daniel Swenson [email protected] für seinen Beitrag zur Entwicklung von picojpeg und an Chris Phoenix [email protected] für seine MSP430-Patches.
Bei Fragen oder Problemen mit diesem Modul wenden Sie sich bitte an Rich Geldreich unter richgel99 unter gmail.com . Hier ist meine Twitter-Seite.