Оптимизируем программный декодер JPEG для архитектуры RISC-V
Графический формат JPEG уменьшает размер изображений без особо заметной для глаза потери качества — упрощая тем самым их хранение и передачу. Студенты из БГУИР — Артём Подгайский, Сергей Буйвид, Юрий Наскевич и Дмитрий Степанчук — в рамках Зимней школы RISC-V YADRO изучили работу декодера JPEG для архитектуры RISC-V, нашли пути для его оптимизации и рассказали о своём проекте в статье на Habr.
Что разбирается в статье
- Как устроен конвейер декодирования JPEG: таблица Хаффмана, извлечение и деквантование коэффициентов ДКП, обратное дискретное косинусное преобразование, преобразование YCbCr → RGB.
- Почему исходная реализация оказалась медленной на RISC-V: около 90% времени работы программы занимает ДКП, а в нём — вычисление косинусов.
- Как ускорить декодер: мемоизация — таблица заранее вычисленных косинусов (
idctCoefficients[8][8]) вместоstd::cosв горячем цикле. - Как встроить оптимизированный вариант в код: выбор функции ДКП через
setIdctCallиsjpg_idct.h.
Ссылка на оригинал
📖 Читать полную статью на Habr
Эта запись — краткая выжимка. Полный текст, листинги и результаты профилирования — в оригинальной статье YADRO.
Понравилась статья?
Ещё материалы, которые могут вас заинтересовать:
- Программный генератор случайных чисел на RISC-V с использованием PUF в DRAM
- Физически неклонируемые функции и аппаратная безопасность
- Участие в ежегодном инженерном хакатоне «Soc Design Challenge»
- ИТС-2025. Секция «Проектирование встраиваемых систем»
- Студенты БГУИР приняли участие в ежегодном инженерном хакатоне SoC Design Challenge
- Зимняя школа RISC-V 2025
- Первые результаты работы лаборатории Инженерного Центра Ядро и БГУИР