реклама на сайте
подробности

 
 
> Синхронизация вывода видео на VGA монитор, Как синхронизировать отмасштабированное видео c VGA монитором
Flip-fl0p
сообщение Aug 20 2018, 08:01
Сообщение #1


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Приверствую уважаемые посетители форума !
Возник вопрос про синхронизацию вывода изображения на VGA.
Поскольку альтеровское ядро scaler II"платное" - пришлось разработать собственный scaler в основе которого лежит алгоритм билинейной интерполяции.
Особых проблем при написании scaler у меня не возникло и моделирование показывает - что все работает правильно.
Но я столкнулся с тем, что никак не могу придумать как правильно синхронизировать вывод отмасштабированного видео с новым разрешением.
Чуть подробнее про проблему:
Допустим что scaler понижает масштаб видео с 800х600х60hz (Vertical refresh 37.878787878788 kHz) до 640х480х60Hz (Vertical refresh 31.46875 kHz). Так вот у нас получается, что не совпадают периоды Vertical refresh на этих разрешениях. И это несовпадение периодов приводит к тому, что выходной видеобуффер либо постоянно переполняется, либо слишком быстро опустошается, в зависимости от того какое разрешение масштабируется. Вот и сижу ломаю голову как правильно синхронизировать новый отмасштабированный видеопоток с выходным разрешением. Очень хотелось бы услышать подсказку от более опытных коллег !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Flip-fl0p
сообщение Aug 31 2018, 07:47
Сообщение #2


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(Plain @ Aug 30 2018, 08:31) *
Извлечение из поступающих сигналов полезной информации и создание из полезной информации исходящих сигналов — так понятнее?

Если Вы не способны создать синхронизацию, о чём собственно эта тема, то Вам, как и её автору, придётся делать послабление — сперва создание полного кадра в памяти, для эмоционального ощущения его целостности.


Так тема была создана для того, чтобы уважаемые гуру помогли помочь разобраться как правильно реализовать такую синхронизацию. И есть есть такой способ - то без применения внешнего кадрового буфера. И если мы не понимаем - чтобы нам дали пинка и разъяснили в чем мы не правы, и почему надо делать именно так, а не иначе, и данный процесс повторялся пока не наступит просветление в наших головах. Тогда и нам хорошо - мы поймем и будем знать как делать, и вам плюсик в карму. И база знаний накопится ещё одной толикой мудрости гуру(а форум я считаю в первую очередь отличной базой знаний), и вновь пришедшим и непросветлённым будет дана возможность созерцая эти страницы тоже наполниться мудростью...
Но уважаемые гуру лишь упрекают нас в неспособности создать такую синхронизацию....

Вот вы писали что:

Цитата(Plain @ Aug 30 2018, 08:31) *
На вход подано неизвестных размеров изображение, следовательно:
1) измерить его размеры, для чего посчитать в его CLK длину его DE и количество DE за интервал его VS;
2) на основе этих данных пересчитать коэффициенты интерполятора и задать длину всех буферов;
3) измерить интервал от VS до DE и посчитать требуемую положительную или отрицательную задержку для получения в требуемый, т.е. с учётом задержки на FIFO, момент аналогичных выходных сигналов;
4) по очередному входному VS зафиксировать собранные данные в качестве новых настроек выходного автомата и начать выдачу им сигналов;
5) продолжать измерять всё вышеперечисленное.

Тут понятно все кроме пункта 4.
Приведу картину для наглядности:

Из неё следует что одна строка состоит из:
1. Периода строчного импульса горизонтальной синхронизации(HSYNC)
2. Периода задней границы (Horisontal back porch).
3. Периода активных даных (data_enable).
4. Периода передней границы (Horisontal front porch).
Допустим я измерил интервал интервал времени источника от конца импульса VS до начала активных данных.
Получил некую константу. Что мне с ней делать ? Расскажите поподробнее про это, если Вас не затруднит...
Я изучаю исходники альтеры, и мне кажется скоро я плюну на это. Жуть жуткая. Несколько тысяч строк кода без комментариев и какой-либо логики...
PS UPD
А вообще тут правильно подметили, что такая синхронизация без применения внешнего буфера невозможна. Тому подтверждение найдено в xilinx appnote: https://www.xilinx.com/support/documentatio...g-with-vpss.pdf
Go to the top of the page
 
+Quote Post
Plain
сообщение Aug 31 2018, 09:37
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 6 776
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710



Цитата(Flip-fl0p @ Aug 31 2018, 10:47) *
измерил интервал времени источника от конца импульса VS до начала активных данных

Измерить реальный интервал (т.е. непрерывными собственными (выходными) тактами) от начала входного VS до конца первого входного DE и прибавить к этому задержку на FIFO, т.е. измеренный теми же единицами интервал DE, умноженный на размер FIFO — получится задержка готовности входных данных (т.е. завершения принятия N входных строк, требуемых для вычисления первой выдаваемой строки) от фронта кадрового синхроимпульса.

В соответствии с заданным форматом выходного изображения, требуемая задержка от фронта создаваемого выходного кадрового синхроимпульса до требуемой предустановки выходных данных перед началом их выдачи известна и однозначна — вычитаете первую задержку из этой и получаете положительную или отрицательную фазу выходного автомата (состояния всех его счётчиков), с которой его надо устанавливать по фронтам входного кадрового синхроимпульса.

П.4 и п.5. напоминают о том, что о формате входного изображения всегда требуется знать всё, и он имеет право в любой момент смениться на другой, тупая молотилка захлебнётся.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Flip-fl0p   Синхронизация вывода видео на VGA монитор   Aug 20 2018, 08:01
- - warrior-2001   Берем 3 буффера. В один пишем, из другого читаем, ...   Aug 20 2018, 08:43
|- - Flip-fl0p   Цитата(warrior-2001 @ Aug 20 2018, 11...   Aug 20 2018, 09:08
- - prostoRoman   Цитата(Flip-fl0p @ Aug 20 2018, 11:0...   Aug 20 2018, 09:34
|- - Flip-fl0p   Цитата(prostoRoman @ Aug 20 2018, 12:34) ...   Aug 20 2018, 09:50
|- - _4afc_   Цитата(Flip-fl0p @ Aug 20 2018, 13:5...   Aug 20 2018, 11:40
|- - Flip-fl0p   Цитата(_4afc_ @ Aug 20 2018, 14:40) С как...   Aug 20 2018, 12:11
|- - _4afc_   Цитата(Flip-fl0p @ Aug 20 2018, 16:1...   Aug 20 2018, 13:56
|- - _4afc_   Цитата(Flip-fl0p @ Aug 20 2018, 16:1...   Aug 21 2018, 09:24
- - _4afc_   Цитата(Flip-fl0p @ Aug 20 2018, 12:0...   Aug 20 2018, 09:38
- - Plain   1080 / 768 = 1,4 строки FIFO, округляется до 2, пл...   Aug 20 2018, 20:51
- - warrior-2001   Я вот так и не понять сути проблемы. Указал выше, ...   Aug 21 2018, 07:16
- - Flip-fl0p   Мне стыдно признаться, но даже сейчас я не совсем ...   Aug 21 2018, 08:01
|- - _4afc_   А я считаю, что 1. Back porch 48 pixel - може...   Aug 21 2018, 08:45
||- - warrior-2001   Цитата(_4afc_ @ Aug 21 2018, 11:45) у мен...   Aug 21 2018, 08:48
||- - ikm   Цитата(_4afc_ @ Aug 21 2018, 11:45) у мен...   Aug 21 2018, 09:02
|- - _4afc_   Цитата(Flip-fl0p @ Aug 21 2018, 12:0...   Aug 21 2018, 09:07
|- - prostoRoman   Цитата(Flip-fl0p @ Aug 21 2018, 11:0...   Aug 21 2018, 09:14
||- - Flip-fl0p   Цитата(prostoRoman @ Aug 21 2018, 12:14) ...   Aug 21 2018, 09:32
|- - Plain   Цитата(Flip-fl0p @ Aug 21 2018, 11:0...   Aug 21 2018, 09:59
- - Sergey_Bekrenyov   По-моему, у TC в голове все смешалось. Scaler толь...   Aug 21 2018, 19:39
|- - Flip-fl0p   Цитата(Sergey_Bekrenyov @ Aug 21 2018, 22...   Aug 22 2018, 03:51
|- - Sergey_Bekrenyov   Цитата(Flip-fl0p @ Aug 22 2018, 06:5...   Aug 23 2018, 13:45
|- - Flip-fl0p   Цитата(Sergey_Bekrenyov @ Aug 23 2018, 16...   Aug 23 2018, 15:33
|- - Sergey_Bekrenyov   Цитата(Flip-fl0p @ Aug 23 2018, 18:3...   Aug 23 2018, 18:52
|- - Flip-fl0p   Цитата(Sergey_Bekrenyov @ Aug 23 2018, 21...   Aug 23 2018, 19:07
|- - Sergey_Bekrenyov   Цитата(Flip-fl0p @ Aug 23 2018, 22:0...   Aug 24 2018, 11:37
- - Flip-fl0p   Итак господа, провел вчера весь вечер за экспереме...   Aug 22 2018, 07:45
|- - Plain   Цитата(Flip-fl0p @ Aug 22 2018, 10:4...   Aug 22 2018, 18:17
|- - lembrix   Цитата(Flip-fl0p @ Aug 22 2018, 10:4...   Aug 24 2018, 07:07
|- - Alexey_Rostov   Цитата(lembrix @ Aug 24 2018, 10:07) Стра...   Aug 28 2018, 15:02
|- - _4afc_   Цитата(Alexey_Rostov @ Aug 28 2018, 18:02...   Aug 28 2018, 15:53
|- - Flip-fl0p   Цитата(Alexey_Rostov @ Aug 28 2018, 18:02...   Aug 29 2018, 05:12
|- - _4afc_   Цитата(Flip-fl0p @ Aug 29 2018, 08:1...   Aug 29 2018, 05:49
|- - Alexey_Rostov   Цитата(Flip-fl0p @ Aug 29 2018, 08:1...   Aug 29 2018, 06:05
|- - Plain   Цитата(Alexey_Rostov @ Aug 29 2018, 09:05...   Aug 29 2018, 06:21
||- - Alexey_Rostov   Цитата(Plain @ Aug 29 2018, 09:21) Надо у...   Aug 29 2018, 09:47
||- - Flip-fl0p   Цитата(Alexey_Rostov @ Aug 29 2018, 12:47...   Aug 29 2018, 10:26
||- - Alexey_Rostov   Цитата(Flip-fl0p @ Aug 29 2018, 13:2...   Aug 29 2018, 10:46
||- - Flip-fl0p   Цитата(Alexey_Rostov @ Aug 29 2018, 13:46...   Aug 29 2018, 10:51
|- - Flip-fl0p   Цитата(Alexey_Rostov @ Aug 29 2018, 09:05...   Aug 29 2018, 06:23
|- - _4afc_   Цитата(Alexey_Rostov @ Aug 29 2018, 09:05...   Aug 29 2018, 10:21
|- - Alexey_Rostov   Цитата(_4afc_ @ Aug 29 2018, 13:21) Вот п...   Aug 29 2018, 10:29
- - warrior-2001   Ну я же скинул ссылку на проект рабочий от Альтеры...   Aug 22 2018, 08:33
|- - Flip-fl0p   Цитата(warrior-2001 @ Aug 22 2018, 11...   Aug 22 2018, 09:02
- - Plain   Цитата(Alexey_Rostov @ Aug 29 2018, 12:47...   Aug 29 2018, 10:40
|- - Alexey_Rostov   Цитата(Plain @ Aug 29 2018, 13:40) Суммир...   Aug 29 2018, 10:53
|- - Plain   Цитата(Alexey_Rostov @ Aug 29 2018, 13:53...   Aug 29 2018, 12:31
|- - Alexey_Rostov   Цитата(Plain @ Aug 29 2018, 15:31) Нет, в...   Aug 29 2018, 13:23
|- - Plain   Цитата(Alexey_Rostov @ Aug 29 2018, 16:23...   Aug 29 2018, 13:48
|- - Alexey_Rostov   Цитата(Plain @ Aug 29 2018, 16:48) С чего...   Aug 30 2018, 05:05
- - Plain   Извлечение из поступающих сигналов полезной информ...   Aug 30 2018, 05:31
|- - Flip-fl0p   Цитата(Plain @ Aug 31 2018, 12:37) Огром...   Sep 18 2018, 08:19
- - Plain   Для любой синхронизации естественно должен быть за...   Sep 18 2018, 09:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 04:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.0144 секунд с 7
ELECTRONIX ©2004-2016