Разделить изображение HDMI на систему 3D-проектора

Я совершенно застрял на доске или что-то, что может соответствовать моим потребностям.

Я сделал 3D-систему с двумя проекторами дома, например: php

И HDMI может иметь разные (8) форматы (слева направо, вверху внизу и т. д.) все здесь: https://www.tridef.com/user-guide/3d-file-formats

Таким образом, необходимые изображения на входящем порту HDMI могут быть размещены, как указано выше, и мне нужно разделить их на два отдельных выхода HDMI в соответствии с форматом, чтобы я мог подключить их к проекторам.
В основном мне нужно устройство, которое на первом изображении в первой ссылке выше заголовка: «Усилитель-распределитель HDMI и эмулятор EDID»

Я знаю, что Arduino не может справиться с таким объемом обработки, потому что я перегрузил его более простыми задачами.
Может ли кто-нибудь помочь мне, с чего начать? Я нашел Panda макетную плату, но это слишком дорого.
Или, если есть не слишком дорогое устройство для этой задачи, я мог бы купить его.
Мне удалось использовать систему от Tridef 3D, но это трудно заставить работать.

Я бы хотел, чтобы мое устройство получало данные от Chromecast 2.0, но если это невозможно, это сделает обычный проигрыватель.

Я нашел некоторые устройства, называемые HDMI Demultiplexer, они просто обрезают половину входа, но это довольно дорого, за 260 долларов, а нужно два.
Помогите мне, пожалуйста.

Заранее спасибо.


person Roland Jakubik    schedule 29.05.2016    source источник
comment
Какое разрешение и частота кадров в исходнике? Это даст вам приблизительные частоты для обработки. Поскольку обычно люди не знают терминологии, Arduino — это не MCU и не CPU, а просто абстракция. Но вы правы, стандартных MCU для этого скорее всего не хватит. Например, мне удалось сжать AT32 UC3A3256 для создания цветового сигнала VGA 640x480 60 Гц с интенсивным использованием встроенных в него аппаратных периферийных устройств. Но я думаю, вам нужны большие разрешения + поддержка HDMI, что, скорее всего, слишком много для MCU. Попробуйте найти микросхему приемника/передатчика HDMI и использовать ее. Если ничего не найдено, там также есть FPGA   -  person Spektre    schedule 30.05.2016
comment
После минуты поиска в Google я нашел это datasheets360.com/pdf/-4896960444351380765, поэтому попробуйте нашел комплект SDK для SIL9134 + SIL9135 с каким-то быстрым процессором (скорее всего FPGA) и достаточным объемом оперативной памяти для приема/разделения/отправки кадров и копирования аудиоданных, если они используются   -  person Spektre    schedule 30.05.2016
comment
Вау Спасибо! Это мне очень помогло. Это кажется довольно продвинутым, но я впечатлен. Обычный поток HD HDMI имеет разрешение 1920*1080, но в зависимости от формата 3D обычный поток 3D имеет разрешение 3840*1080. Так что мне нужен скачок вычислительной мощности.   -  person Roland Jakubik    schedule 30.05.2016
comment
или просто секвенсоры сигналов на основе FPGA с некоторой памятью FIFO для каждого потока... (без какого-либо процессора). Но я думаю, что этот вопрос будет лучше для какого-нибудь сайта аудио/видео и/или аппаратного обеспечения/электротехники, чем для сайта необработанного программирования, такого как этот.   -  person Spektre    schedule 30.05.2016
comment
Если я правильно рассчитываю, у вас есть 1920*1080*60Hz -> ~248.8MHz пиксельные часы, которые на 10 битном сигнале равны 3 * 2.488GHz, но я не знаю, что фон HDMI выглядит так, как будто у него больше каналов, поэтому, вероятно, это часть этого +/- некоторые синхронизации ... Это слишком много для любого процессора / микроконтроллера, поэтому FPGA - единственный оставшийся выход (даже мне они не нравятся, поскольку у меня очень плохой опыт работы с ними на частотах около 1 ГГц)   -  person Spektre    schedule 30.05.2016
comment
Для FIFO попробуйте найти двухпортовую оперативную память, это дороже, но вам не нужно будет обрабатывать конфликты, которые могут привести к мерцанию или потере синхронизации. Надеюсь, понятно, что я имею в виду, если не прокомментируете меня, и я попытаюсь нарисовать блок-схему...   -  person Spektre    schedule 30.05.2016
comment
Большое спасибо за вашу помощь и ваше время. Я пока не знаю, смогу ли я его создать, но я буду усердно работать. Вы уже потратили много своего времени, чтобы помочь мне, и я действительно этого не жду, но если бы вы могли нарисовать мне диаграмму, я был бы так счастлив. то есть: изображение будет 3840*1080 или 1920*2160 в зависимости от форматирования 3D.   -  person Roland Jakubik    schedule 30.05.2016


Ответы (1)


Из спецификации HDMI на стр. 56 передача/соединение выглядит следующим образом:

HDMI

Я бы начал с чередующегося левого/правого формата, где четные пиксели остаются левыми, а нечетные — правыми, потому что велика вероятность того, что для этого не нужен FIFO. Если вы хотите стандартный левый/правый, вам нужна одна строка FIFO для каждого канала и для полного изображения вверх/вниз FIFO. Если ваше аппаратное обеспечение поддерживает переменные часы, этот упрощенный пример должен работать:

нет FIFO

Вам нужно добавить декодер синхронизации H/V из Channel0, чтобы сбросить двоичный счетчик. Двоичный счетчик подсчитывает, какой адрес данных обрабатывается. Единственная линия данных к вентилям И должна составлять D1 половину входных тактовых импульсов, но не полностью вам нужно переключаться между D0 и D1 в зависимости от времени обработки данных (для пикселей это будет D1, а для других данных это будет D0 ) это переменные часы, о которых я упоминал ранее. Компаратор просто сравнивает адрес с предопределенными константами (например, половина строки для неперемежающегося левого/правого формата или определение четного нечетного для чередующегося формата, но оба должны принимать +/- другие смещения данных). будет умножаться на количество битов в блоке данных ... Ворота просто переключают часы между левой и правой частью. ЗАЩЕЛКИ гарантируют, что выходной сигнал не будет смешиваться, а также усиливают сигнал.

Я бы начал с осциллографических замеров каналов, чтобы было видно, как передаются данные, а потом уже экспериментировал. Если вы используете FPGA, вам не нужно вносить какие-либо изменения в плату во время экспериментов с конфигурациями, поскольку схема будет находиться исключительно внутри FPGA.

Если переменная синхронизация не поддерживается, вам необходимо использовать FIFO и/или RAM для хранения полной строки/изображения, а затем отправить соответствующие части на соответствующие разъемы. Для этого вам, скорее всего, потребуется полная возможность декодирования, поэтому используйте SIL9134 + SIL9135. Уменьшение вдвое разрешения приведет к проблемам с синхронизацией, потому что вам потребуется больше времени для отправки полукадра с половинной скоростью, чем полный кадр с полной скоростью (вспомогательные данные и данные синхронизации копируются, а не уменьшаются вдвое). Если в отправке есть достаточно большие промежутки, вы можете указать недостающее время, но опять же, не все HW могут поддерживать потерю синхронизации/мерцания/и т. д. В таком случае вы можете изменить разрешение на немного меньшее (после уменьшения вдвое), чтобы соответствовать времени отправки ... или увеличить ввод с полным разрешением (по оси X).

Удачи в ваших поисках.

person Spektre    schedule 31.05.2016