171 / 27 / 16
Регистрация: 02.02.2014
Сообщений: 345
|
|
1 | |
Работа с HDMI 2.121.01.2022, 14:32. Показов 920. Ответов 11
Метки нет (Все метки)
Привет всем!
Есть мысль сделать устройство, которое будет анализировать на лету картинку, проходящую через HDMI 2.1, и на основе неё управлять светодиодными лентами. Это довольно типовая задача, но есть нюанс - картинка 4K 120 Гц с HDR (10 бит/к). Я вижу два пути - сначала пропускаем через сплиттер, один сигнал идет на экран, второй сначала уменьшаем по герцовке/разрешению/разрядности, потом пихаем в наше устройство. Но здесь меня беспокоит, не создаст ли HDMI сплиттер дополнительной задержки в 1 или более кадров. Второй вариант - сделать устройство, которое пропускает через себя оригинальный сигнал и попутно его анализирует, и делает это построчно, т.к. не запоминая себе в буфер кадр, для того, чтобы минимизировать задержку. Если я правильно понимаю, то первый вариант в принципе реализуем на просто хорошем контроллере, единственное - сплиттер, даунскейлер и... что-то, преобразующее HDR в SDR, здесь должны быть очень суровые, чтобы выдержать сигнал 4K 120 Гц HDR. Второй вариант, насколько я понимаю, реализуем только средствами FPGA, причем очень неслабых, т.к. поток информации очень большой. Для такой картинки я с трудом нашел даже простой переходник DisplayPort -> HDMI, а с обработкой, как я подозрвеаю, дела обстоят еще хуже. Пока я воспринимаю такую реализацию как слишком сложную и дорогую по отношению к результату (пониженная задержка), но может быть, сейчас уже есть какие-то инструменты, чтобы HDMI сигнал с такими параметрами обрабатывать не используя профессиональное/промышленное оборудование?
0
|
21.01.2022, 14:32 | |
Ответы с готовыми решениями:
11
Через что подключить DVI-HDMI или HDMI-HDMI? Выбор hdmi (hdmi to hdmi) для тв Некорректная работа hdmi и монитора GeForce GT520 одновременная работа hdmi и dvi |
Native x86
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,424
|
|
21.01.2022, 19:22 | 2 |
Нет, сплиттер ничего не буферизирует.
FPGA очень сложно и дорого, даунскейлер и контроллер тоже не факт что проще и дешевле. Я бы взял сплиттер, дешевый x86 miniPC, USB-карту видео-захвата, USB-RGB-контроллер для лент, и написал не очень сложную программу на любом высоко-уровневом языке.
1
|
171 / 27 / 16
Регистрация: 02.02.2014
Сообщений: 345
|
|
21.01.2022, 19:32 [ТС] | 3 |
Ну тут нюанс что сигнал идёт с пк. По идее тогда проще уже прямо на нём средствами DirectX картинку анализировать. Я просто думал может можно сделать это как то с меньшей задержкой.
0
|
Native x86
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,424
|
|
21.01.2022, 19:46 | 4 |
А вот насчет DirectX уже не факт.
Я не знаток DirectShow, но, помнится, начиная с Vista, подглядывать за чужим видео-потоком в реальном времени и разрешении то ли невозможно, то ли как-то очень трудно. Тогда уж просто делать снимки полноэкранного окна плеера через банальный GetDC + BitBlt.
1
|
171 / 27 / 16
Регистрация: 02.02.2014
Сообщений: 345
|
|
21.01.2022, 19:54 [ТС] | 5 |
Вроде в dx11 появился какой-то хитрый механизм, позволяющий прямо из видеопамяти копировать себе текстуру рабочего стола: https://www.codeproject.com/Ar... tX-Library
Если оно не рабочее, то тогда уже точно надо делать как Вы описали выше, GetDC+BitBlt точно не вариант, слишком большой поток данных.
0
|
Native x86
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,424
|
|
21.01.2022, 21:11 | 6 |
Я так понимаю, вам нужно световое сопровождение картинки? Если на экране красное и зеленое, то зажигаем огни тех же цветов?
Для этого не обязательно хватать 120 раз в секунду, хватит и 10 раз, а с этим проблем нет и у GDI.
1
|
171 / 27 / 16
Регистрация: 02.02.2014
Сообщений: 345
|
|
23.01.2022, 10:54 [ТС] | 7 |
Спасибо, попробую. Надеюсь, Вы правы и скорости хватит.
0
|
171 / 27 / 16
Регистрация: 02.02.2014
Сообщений: 345
|
||||||
01.02.2022, 15:30 [ТС] | 8 | |||||
К сожалению, GDI не переваривает - где-то 5 раз в секунду, при этом очень напрягает процессор. Планируется использовать всё это на разрешении 11520х2160, поэтому если оно на 4K тормозит, то дальше будет только хуже. Пытаюсь реализовать захват и уменьшение картинки экрана через DirectX.
Нашёл в целом хороший рабочий пример, где сначала идет захват, затем уменьшение средствами видеокарты (C#/SharpDX), потом копирование в ОЗУ и сохранение.
В случае полноэкранных приложений (протестил на Battlefield 4 и GZDoom) валится на попытке вызвать DuplicateOutput. Вроде как говорит, что нет прав. Код
SharpDX.SharpDXException: "HRESULT: [0x80070005], Module: [General], ApiCode: [E_ACCESSDENIED/General access denied error], Message: Отказано в доступе. Изначально это исключение было создано в этом стеке вызовов: SharpDX.Result.CheckError() SharpDX.DXGI.Output1.DuplicateOutput(SharpDX.IUnknown) WinFormsApp3.Form2.button1_Click(object, System.EventArgs) в Form2.cs System.Windows.Forms.Control.OnClick(System.EventArgs) в Control.cs System.Windows.Forms.Button.OnClick(System.EventArgs) в Button.cs System.Windows.Forms.Button.OnMouseUp(System.Windows.Forms.MouseEventArgs) в Button.cs System.Windows.Forms.Control.WmMouseUp(ref System.Windows.Forms.Message, System.Windows.Forms.MouseButtons, int) в Control.cs System.Windows.Forms.Control.WndProc(ref System.Windows.Forms.Message) в Control.cs System.Windows.Forms.ButtonBase.WndProc(ref System.Windows.Forms.Message) в ButtonBase.cs System.Windows.Forms.Button.WndProc(ref System.Windows.Forms.Message) в Button.cs ... [Стек вызовов обрезан]
0
|
171 / 27 / 16
Регистрация: 02.02.2014
Сообщений: 345
|
|
01.02.2022, 16:22 [ТС] | 10 |
Не, стационарник, довольной старый, но неплохой.
Кликните здесь для просмотра всего текста
2 х Xeon E5-2650 v.1 (каждый 2 ГГц, 8 ядер/16 потоков в каждом + HT) GTX Titan (который самый первый, по сути GTX 780 с double и 6 Гб памяти) 64 Gb RAM DDR3 (4 х 2 каналов) Windows 8.1 Pro Сейчас к нему подключено два 4К экрана, пробую на 1 из них. 11520х2160 буду пускать уже на RTX 3080Ti (к сожалению, она не умеет в Windows 8.1, поэтому ждет когда я поставлю Win11) - это будет объединение трёх 4К в один виртуальный экран средствами драйвера. Есть ещё мысль, что виновата винда, но миграция на вин 11 дело не быстрое, ибо очень много переферии и софта, поэтому я перехожу на новую очень осторожно и плавно. Пока хочу отработать другие версии.
0
|
171 / 27 / 16
Регистрация: 02.02.2014
Сообщений: 345
|
|
01.02.2022, 16:57 [ТС] | 12 |
Так и делаю, у меня оно после нажатия кнопки ждёт 30 сек, потом только все инициализирует и фоткает. За эти 30 сек успеваю запустить игру.
0
|
01.02.2022, 16:57 | |
01.02.2022, 16:57 | |
Помогаю со студенческими работами здесь
12
Тормоза на телевизоре LG 42LD565 при подключении к компу через HDMI-HDMI Подключение монитора без hdmi (dvi и vga) к видеокарте c hdmi Подключение Sony KDL-32R413B к ноутбуку через HDMI-HDMI Как грамотно электрически и безопасно соединить ПК и ТВ кабелем HDMI-HDMI? При длине кабеля HDMI, связующего Пк и TV, 8 метров, нужен ли усилитель по линии HDMI? Acer 8930G при подключении через HDMI-HDMI к телевизору не выдаёт картинку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |