Экспортировано с http://code.google.com/p/picojpeg. Первоначальный автор — Рич Гелдрайх на richgel99 на gmail.com .
picojpeg — это общедоступный декомпрессор JPEG, написанный на простом языке C в одном исходном файле picojpeg.c и одном заголовке picojpeg.h. Он обладает несколькими уникальными свойствами, которые делают его полезным на небольших 8/16-битных встроенных устройствах или в средах с очень ограниченным объемом памяти:
picojpeg имеет несколько недостатков и известных проблем по сравнению с другими реализациями:
Близкий вариант picojpeg был успешно скомпилирован и выполнен на микроконтроллере Microchip PIC18F4610 с использованием встроенного компилятора SourceBoost Technologies BoostC. (Если вы хотите увидеть этот вариант, отправьте электронное письмо.) picojpeg.c также использовался в процессорах MSP430 и ARM Cortex-M4. (Пример использования см. в разделе «Использование библиотеки picojpeg на PIC с ЖК-модулем ILI9341 320x240»).
В дистрибутив исходного кода входит образец проекта VS2005 и предварительно скомпилированные исполняемые файлы командной строки Win32/Win64, которые преобразуют файлы JPG в файлы TGA с использованием picojpeg для распаковки. Общедоступный модуль stb_image.c Шона Барретта используется для записи файлов TGA.
picojpeg изначально был основан на моем классе C++ декомпрессора jpgd, который (на современных процессорах) быстрее и эффективнее, чем picojpeg.c, но использует гораздо больше памяти и предполагает, что int являются 32-битными.
Вот picojpeg, работающий на процессоре 6809 (Tandy Color Computer 3), скомпилированный с использованием gcc6809: picojpeg: Декодирование Lena на Tandy Color Computer 3.
v1.1 — 23.03.2020: исправлена проблема с беззнаковым/подписанным макросом, исправлена проблема с переполнением в декодере, препятствующая декодированию очень больших файлов JPEG.
Версия 1.1 — 19 февраля 2013 г.: двойная лицензия: общедоступная и (если общедоступное достояние неприемлемо) лицензия MIT. Пожалуйста, свяжитесь со мной для получения исходного кода.
v1.1 — 9 февраля 2013 г.: Оптимизированы циклы строк/столбцов IDCT, чтобы избежать полного обратного преобразования, когда только постоянная составляющая не равна нулю, добавлен режим «уменьшения» для быстрого декодирования с разрешением 1/8, улучшенная обработка ошибок. добавлена поддержка коэффициентов субдискретизации цветности H2V1/H1V2, портирован jpg2tga.cpp на jpg2jpg.c (поэтому все модули теперь написаны на чистом C), добавлен код для сравнения декодированного вывода picojpeg и stb_image'c для тестирования/проверки.
v1.0 — 10 ноября 2010 г.: первый выпуск. Получено из исходной версии, протестированной на процессоре серии PIC18F.
Спасибо Дэниелу Свенсону [email protected] за вклад в разработку picojpeg и Крису Фениксу [email protected] за его патчи для MSP430.
По любым вопросам или проблемам с этим модулем обращайтесь к Ричу Гелдрайху по адресу richgel99 на gmail.com . Вот моя страница в Твиттере.