Exporté depuis http://code.google.com/p/picojpeg. L'auteur original est Rich Geldreich chez richgel99 sur gmail.com .
picojpeg est un décompresseur JPEG du domaine public écrit en C brut dans un seul fichier source picojpeg.c et un seul en-tête picojpeg.h. Il possède plusieurs propriétés assez uniques qui le rendent utile sur les petits appareils embarqués 8/16 bits ou dans des environnements très contraints en mémoire :
picojpeg présente plusieurs inconvénients et problèmes connus par rapport à d'autres implémentations :
Une variante proche de picojpeg a été compilée et exécutée avec succès sur le microcontrôleur PIC18F4610 de Microchip à l'aide du compilateur intégré BoostC de SourceBoost Technologies. (Veuillez envoyer un e-mail si vous souhaitez voir cette variante.) picojpeg.c a également été utilisé sur les processeurs MSP430 et ARM Cortex-M4. (Pour un exemple d'utilisation, voir Utilisation de la bibliothèque picojpeg sur un PIC avec le module LCD ILI9341 320x240).
La distribution source comprend un exemple de projet VS2005 et des exécutables de ligne de commande Win32/Win64 précompilés qui convertissent les fichiers JPG en fichiers TGA à l'aide de picojpeg pour la décompression. Le module stb_image.c du domaine public de Sean Barrett est utilisé pour écrire des fichiers TGA.
picojpeg était à l'origine basé sur ma classe C++ de décompresseur jpgd, qui (sur les processeurs modernes) est plus rapide et plus performante que picojpeg.c mais utilise beaucoup plus de mémoire et suppose que les int sont de 32 bits.
Voici picojpeg fonctionnant sur un processeur 6809 (un Tandy Color Computer 3), compilé à l'aide de gcc6809 : picojpeg : décodage de Lena sur un Tandy Color Computer 3.
v1.1 - 23/03/2020 : Correction d'un problème non signé/signé dans la macro, correction d'un problème de débordement dans le décodeur empêchant le décodage de très gros fichiers JPEG
v1.1 - 19 février 2013 : double licence en tant que domaine public et (lorsque le domaine public n'est pas acceptable) licence MIT. S'il vous plaît contactez-moi pour la source.
v1.1 - 9 février 2013 : optimisation des boucles de ligne/col IDCT pour éviter la transformation inverse complète lorsque seule la composante continue est non nulle, ajout du mode « réduire » pour un décodage rapide de 1/8ème de résolution, meilleure gestion des erreurs, ajout de la prise en charge des facteurs de sous-échantillonnage de chrominance H2V1/H1V2, portage de jpg2tga.cpp vers jpg2jpg.c (donc tous les modules sont maintenant écrits en C brut), ajout de code pour comparer la sortie décodée de picojpeg par rapport à stb_image'c à des fins de test/vérification.
v1.0 - 10 novembre 2010 : version initiale. Dérivé de la version originale qui a été testée sur un processeur de la série PIC18F.
Merci à Daniel Swenson [email protected] pour sa contribution au développement de picojpeg, et à Chris Phoenix [email protected] pour ses correctifs MSP430.
Pour toute question ou problème avec ce module, veuillez contacter Rich Geldreich à richgel99 sur gmail.com . Voici ma page Twitter.