LINUX.ORG.RU

OpenCV и hardware codec

 , ,


0

2

Собственно, хочется завести аппаратный кодек на Exynos4 так, чтобы его использовала OpenCV. Сразу скажу, что речь идёт о Linux, а не Android.

Мне известно, что:

OpenCV использует libAV

OpenCV использует libJPEG

Для кодека Exynos4 (MFC5.1) есть V4L2 драйвер

Для JPEG кодека (FIMC, если не ошибаюсь) тоже есть V4L2 драйвер

Поиском я наткнулся на OpenMAX, V4L2, VA API. Но я не могу понять, что из этого является аналогами, а что звеньями в одной цепи.

Опять же, libAV и libJPEG умеют аппаратное усокорение?

ИМХО, я бы возложил все функции на V4L2 драйвер. Унифицировал бы вызовы к ним и позволил бы библиотекам декодирования спрашивать об их (железок) возможностях. Но как сделано на самом деле, я пока понятия не имею.


Опять же, libAV и libJPEG умеют аппаратное усокорение?

libav имеет аппаратное ускорение, но сильно сомневаюсь, что там есть поддержка кодирования/декодирования через V4L2. libjpeg работает на CPU. Проверь исходники для надёжности.

VA API

В VA-API есть кодирование и декодирование JPEG, но я не знаю, работает ли оно где-то кроме intel'овских процессоров. И то, кодирование требует чего-то современного.

я бы возложил все функции на V4L2 драйвер. Унифицировал бы вызовы к ним и позволил бы библиотекам декодирования спрашивать об их (железок) возможностях.

Ты прямо https://events.linuxfoundation.org/images/stories/pdf/lceu2012_debski.pdf цитируешь.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Я мельком уже видел этот документ.

Но всё равно ситуация остаётся достаточно мутной. Я так понял, что с JPEG всё плохо и аппаратно его не спешат кодировать на Linux. Появилась идея найти исходники libJPEG от ведроида с поддержкой Exynos и портировать её оттуда в Linux версию. Не помню, чтоб ведро использовало libAV.

Печально всё со стандартами и мультимедиа у Linux, к сожалению :(

WOLF ()
Ответ на: комментарий от WOLF

Сомневаюсь, что на Android используется libjpeg. Там скорее OpenMAX.

i-rinat ★★★★★ ()
Ответ на: комментарий от WOLF

Имеет смысл доработать ffmpeg и libav для поддержки кодированмя-декодирования через V4L2 и OpenMAX (наверное, IL), прикрутить кодер картинок к OpenCV.

Но как обычно, этим некому заниматься. Кому нужно, тот и пилит.

i-rinat ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.