STM32 видеоплеер AVI с OSD меню. Оптимизация jpeg декодера на ассемблере

STM32 видеоплеер AVI с OSD меню. Оптимизация jpeg декодера на ассемблере. В видео демонстрируются анимационные фильмы (на правах лицензии Creative Commons): “Elephants Dream“: © Сopyright 2006, Blender Foundation / “Big Buck Bunny“: © Сopyright 2008, Blender Foundation / “Sintel“: © Copyright 2010, Blender Foundation / Blender Foundation — некоммерческая организация, занимающаяся разработкой программного пакета трёхмерного моделирования с открытым исходным кодом под названием Blender (). Требования к формату AVI: - поток видео mjpeg (motion jpeg), т.е. видеокадры должны быть закодированы jpeg кодеком; - поток аудио mp3, т.е. звук должен быть закодирован mp3 кодеком. Для преобразования видеофайла к поддерживаемому плеером формату рекомендуется использовать библиотеку ffmpeg. Например, следующая командная строка преобразует mp4-видео в поддерживаемый плеером формат avi с размером кадра 320х240, частотой 25 кадров в секунду, с качеством кодирования 15: ffmpeg -i -c:a mp3 -c:v mjpeg -s 320x240 -r 25 -q 15 где: -i - указание на файл-источник, который вы хотите преобразовать в поддерживаемый плеером формат avi; - выходной файл с расширением avi, в котором будет сохранен результат преобразования; -c:a mp3 - указание на то, что “звуковая дорожка“ (аудиопоток) в выходном файле должна быть в формате кодека mp3; -c:v mjpeg - указание на то, что “видео дорожка“ (видеопоток) в выходном файле должна быть в формате кодека mjpeg (набор картинок, закодированных кодеком jpeg, т.н., motion jpeg); -s 320x240 - указание на размер видеокадра в выходном файле avi (ширина, высота); -r 25 - указание на частоту видеокадров в выходном файле avi (кадров в секунду); -q 15 - указание на качество кодирования файла avi (от 1 (наилучшее) до 31 (наихудшее)). Качество звука можно задать ключом -b, означающим bitrate (скорость потока в бит/с). Например, такой ключ, как, -b:a 128k, задаст для звукового потока скорость в 128 кбит/с, что считается для кодека mp3 начальным уровнем при кодировании музыкальных данных (32-96 кбит/с достаточно для кодирования речи, а от 96 кбит/с и более - музыки низкого качества). Потока в 256 кбит/с достаточно для высокого качества музыки при кодировании mp3. 320 кбит/с - предел для кодека mp3. При преобразовании видео учитывайте соотношение сторон кадра исходного видео. Например, если исходное видео имело соотношение сторон кадра 16:9, то при использовании дисплея с шириной 320 пикселей, высота выходного кадра должна быть 180 пикселей. Т.е. параметр s для приведенного примера должен быть задан в виде 320х180. Если соотношение сторон исходного кадра 4:3, то при использовании дисплея с шириной 320 пикселей высота выходного кадра должна быть 240 пикселей. Т.е. параметр s для этого примера должен быть задан в виде 320х240. Параметр q определяет качество кодирования и может принимать значения от 1 до 31. С увеличением q качество снижается, а с уменьшением - увеличивается. Этот параметр, естественно, влияет на производительность программного декодера jpeg. Перечень компонентов: - плата разработки stm32f401ccu6 - 3.2“ дисплей с тачскрином ILI9341 (подключение по spi) - аудио-ЦАП pcm5102a - модуль микро SD-карты - макетная плата - провода для макетной платы - энкодер с кнопкой - конденсаторы керамические мкФ - 2 шт. Ссылка на проект (гитхаб): Контакты автора: @VadRov stm32, jpeg stm32, avi stm32, mp3 stm32, video stm32, audio stm32, видео stm32, аудио stm32 #stm32 #jpeg #video
Back to Top