Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51
Video4Linux2. Несколько изображний. - Embedded Linux - Форум - starterkit.ru
Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:4
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
Video4Linux2. Несколько изображний.
mibin
Добавлено 03.02.2013 17:49 Сообщение: 11
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Изменил изначальный код копировая буфера следующим образом:
Код
memcpy(output_buffers[output_buf.index].start, capture_buffers[capture_buf.index].start, capture_buffers[capture_buf.index].length);
memcpy(output_buffers[output_buf.index].start + capture_buffers[capture_buf.index].length, capture_buffers[capture_buf.index].start, capture_buffers[capture_buf.index].length);


Фигня в том что получаются множественные наложения и тут вопрос..как именно v4l2 проводит отрисовку буфера...
Спуститься к концу Подняться к началу
Персональная информация
leh
Добавлено 04.02.2013 08:19 Сообщение: 12
leh
5

Пункты: 1646
Регистрация: 07.06.2009
Пол: Мужчина
Из: Волгоград
В модуле IPU iMX53 есть контроллер VDIC, который по прямому своему назначению делает деинтерлейсинг, а альтернативное его назначение - комбинация двух картинок на одном фоне. Упоминание об этом есть в главе 45.4.11.6 reference manual.
Правда, беглый взгляд на драйвер IPU в ядре (/drivers/mxc/ipu3) и библиотеку для userspace (/imx-lib/ipu) оставляет сомнения в наличии программной поддержки этой фишки со стороны фрискейла.
Кстати, у меня этот контроллер (VDIC) используется именно для деинтерлейсинга картинки с adv7180 с использованием патча с imx_community, т.к. стандартный "деинтерлейсинг" (через путь CSI->MEM) дает "расчески" в местах быстрого движения. Патч использует путь CSI->VDIC->MEM, поэтому с ним использование ее и комбинации картинок будет невозможно. Однако, как я понимаю, деинтерлейсинг можно делать и из userspace с помощью imx-lib (не проверял), тогда чисто теоретически обе эти задачи можно реализовать на VDIC по очереди.
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 04.02.2013 09:10 Редактировалось 04.02.2013 09:29 Сообщение: 13
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Не сталкивался с imx-lib есть примеры работы с ним и вообще что это такое?

А вот такой вопрос, в случае когда мы через mmap буфер получаем данные (форма получение указывается как V4L2_PIX_FMT_YUYV) в формате YUV422 или тот формат который указан в даташите?
В этом наборе данных присутствуют еще какие-то данные кроме информации об изображении которые нужно было бы исключать для конвертации изображения в RGB, тайминги какие-то или ее что-то?
Спуститься к концу Подняться к началу
Персональная информация
leh
Добавлено 04.02.2013 09:48 Сообщение: 14
leh
5

Пункты: 1646
Регистрация: 07.06.2009
Пол: Мужчина
Из: Волгоград
imx-lib можно скачать с сайта freescale (в Linux BSP по-моему), там же есть примеры ее использования - пакет imx-test. Я из этих пакетов использовал только примеры и библиотеку работы с VPU, так что по IPU ничего не могу сказать, кроме того, что оно там есть)
Камера у меня открывается в формате YUV420, т.к. это вроде единственный формат, который может потом сжимать VPU (исключение только JPEG). Это формат, в котором Y и U,V лежат в разных областях памяти (не перемешаны), причем U и V в 4 раза меньше по площади.
А сама камера (вернее чип adv7180) дает перемешанный формат UYVY, так что если в таком формате камеру открыть, то так они там лежать и будут. Никакой дополнительной информации в буфере V4L2 нет.
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 04.02.2013 09:56 Сообщение: 15
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Отлично, значит чисто теоретически я могу взять буфер декодировать его в RGB и вывести информацию нужную мне через /dev/fb0.

Хотя тут возникает в случае когда я создаю буфер выхода в два раза больше буфера входа и делаю два memcpy (второй со смешение на размер буфера видеовхода) то одна картинка норм и вторая вылазиет со смешением и как результат искажение отображения.
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 11.02.2013 20:37 Редактировалось 11.02.2013 21:29 Сообщение: 16
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
В общем, данный код выводит 4 изображения на экран, имея 4 разных буфера можно выкидывать их в четырех местах на экране.

Вот код:
Attachment file: uploads/forum/forum-JW1t32Z5eF-0.rar


Вот скрин результата:



В общем-то все просто, буфер видевыхода больше в 4 раза буфера видеовхода что и позволило запихнуть картинку 4 раза в него.

Осталось с драйвером разобраться как переключаться на лету с одной камеры на другую. но это уже совсем другой топик...
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux