Микроконтроллеры STM32 - тонкости работы, отладочные платы

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Нашел транзистор. Понюхал.
Сообщения: 156
Зарегистрирован: Пт май 20, 2022 22:19:02
Откуда: Ижевск

Сообщение Ифторик »

Я уже разобрался, на самом деле джипеги не нужны, прост интиресно стало запустить
Реклама
Опытный кот
Сообщения: 865
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Блоки декодируются размером 8х8, а некратный размер обрезается модулем DMA2D при конвертировании из YCbCr в RGB.
Реклама
Нашел транзистор. Понюхал.
Сообщения: 156
Зарегистрирован: Пт май 20, 2022 22:19:02
Откуда: Ижевск

Сообщение Ифторик »

Да, я понял как оно работает. Смог запустить декодирование по частям через DMA, но некоторые изображения получаются битыми, но не все, понять не могу почему, размер на фото 48 на 110, в маленьких цифрах ориентироваться проще, в функции HAL_JPEG_DataReadyCallback размер приходит меньше чем нужно только у самого последнего блока, у предыдущих всё ровно байт в байт. Тут у меня вообще идей нет в чем может быть причина.
(Фото из жернала плейбой 5 1958 года, если друг будет интиресоваться :oops: )
Вложения
20260921_202538287~2 (1).jpg
(147.84 КБ) 41 скачивание
Опытный кот
Сообщения: 865
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Да вы не сиськи декодируйте, а подготовьте тестовую картинку квадратного размера например 64х64. Ну и почитайте, что такое субдискретизация 4:2:0 и 4:2:2.
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Сообщения: 156
Зарегистрирован: Пт май 20, 2022 22:19:02
Откуда: Ижевск

Сообщение Ифторик »

Конечно, у меня несколько штук разных картинок чтоб тестировать обрезание дорисованных пикселей и сейчас оно работает во всех вариантах, но не более чем разрешение экрана, а чтобы искать проблему, я думаю нужно разбирать функцию декодирования HAL_JPEG_Decode и совместно изучать как работает сжатие, таблицы квантования и т.д., наверное предыдущие блоки несут информацию для следующих или это проеб ST с халом. Очень не хочется ковыряться в стандартных библиотеках, наверное так и оставлю в таком виде, мне интиреснее сделать перелистывание изображений влево и вправо, а не открыл - закрыл - открыл другую, сейчас падает оно в хардфаулт, когда подключу внешнюю память появится возможность обрабатывать изображения покрупнее, нужно будет уменьшать разрешение, может позже вернусь к этому вопросу
Реклама
Опытный кот
Сообщения: 865
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Чтобы сделать анимированное пролистывание вперед-назад, нужно декодировать два jpeg-файла и поместить в память две картинки. Поскольку внутри файла закодированные данные идут сплошным потоком и блоки 8х8 пикс связаны друг с другом (дифференциальное кодирование по таблицам Хаффмана), не получится произвольно выбрать пиксель в координатах изображения.
Поэтому, когда надо сделать анимацию перелистывания - декодируем и получаем следующую (предыдущую) картинку и средствами DMA2D в каждом шаге анимации передвигаем текущую картинку с обрезкой и копируем часть второй картинки.

Для экспериментов с внешней SDRAM памятью лучше купить на Алиэкспрессе готовую плату с STM32H743 и SDRAM. Потому как проводками соединять на частотах под сотню мегагерц - эт фигня выйдет.
Реклама
Ответить

Вернуться в «ARM»