[Arm64-baikalm] Аппаратное декодирование видео

Nikolay Zhuravlev n.zhuravlev на edelweiss.msk.ru
Ср Май 26 12:41:26 MSK 2021


On Tue, May 25, 2021 at 09:44:35PM +0400, Evgeny Sinelnikov wrote:
> Добрый вечер,
> 
> аппаратное декодирование - это отдельный модуль: "HD видеодекодер с
> частотой 60 кадров/с"
> https://www.baikalelectronics.ru/products/238/
> 
> Для него имеются (я не распознал где он лежит в прошивке или на сайте
> отдельно качается):
> - драйвер ядра;
> - библиотека для работы с драйвером;
> - плагин gstreamer.

Это у байкальцев в SDK всё, частично в prebuilts, частично в src/vdec,
src/mali. Драйвер mali_kbase в исходниках ядра лежит.

Мы пытались поисследовать, каким боком может быть полезен gstreamer.
Частичный успех был, но видео всё равно с тормозами играли почему-то (в
Дебиан 10). Вот результат исследования:

"Baikal provides the OpenMAX-capable driver for GStreamer (vxd.ko).
This driver works with our kernel and demonstrates good performance.
Comparing omxh264dec with the software decoder avdec_h264 shows that
the first one spends almost no user CPU budget:

user at bm:~$ sudo insmod img_mem.ko
user at bm:~$ sudo insmod vxd.ko
user at bm:~$ sudo chmod og+rw /dev/vxd0
user at bm:~$
user at bm:~$ time gst-launch-1.0 filesrc location=simpsons_x264.mp4 ! qtdemux ! queue ! h264parse ! omxh264dec ! filesink location=/dev/null
[skip]
real    0m5.510s
user    0m1.220s
sys 0m1.522s
user at bm:~$ time gst-launch-1.0 filesrc location=simpsons_x264.mp4 ! qtdemux ! queue ! h264parse ! avdec_h264 ! filesink location=/dev/null
[skip]
real    0m9.891s
user    0m45.725s
sys 0m0.945s

Software decoder will use all the 8 CPU available. However, in both
cases gstreamer is still lagging when playing the videos, for unknown
reason."

-- 
WBR, Nick Zhuravlev
Software Developer
www.edelweiss-tech.ru



Подробная информация о списке рассылки Arm64-baikalm