|
Синхронизация вывода видео на VGA монитор, Как синхронизировать отмасштабированное видео c VGA монитором |
|
|
|
 |
Ответов
|
Aug 22 2018, 07:45
|

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

|
Итак господа, провел вчера весь вечер за эксперементами. В качестве эксперемента был применен обычный синхрогенератор и генератор цветных полос. Выводы таковы: Цитата(_4afc_ @ Aug 21 2018, 12:07)  1. Back porch 48 pixel - может быть хоть 148 2. Back porch 33 lines - может быть хоть 133 3. pixel_clk не 25.175 MHz, а 25 175 000 импульсов в секунду, с довольно свободной скважностью. Данное утвержение мной не совсем подтвердилось. Собственно произошло ровно то, о чем я говорил : изменение любого из параметров Back porch в небольших пределах приводит к тому что изображение смещается. Если же изменять это значение в больших пределах - то матрица не определяет синхронизациию и изображение не выводится вообще... Но ! Если изменить соотношение Back porch и Front porch таким образом, чтобы суммарная длина строки оставалась одинаковой (для разрешения 640 x 480 длина линии равна 800 pix) - то изображение нормальное т.е. если мы увеличили значение Back porch на 50 то должны и уменьшить Front porch на 50. В случае если длина строки изменяется: Back porch увеличили на 50 а Front porch не трогали - требуется пререрасчет частоты и в этом случа мы фактиески получаем новое разрешение, которое совместимо с большинством VGA мониторов. Думаю, можно попробовать применить данный способ в качестве синхронизации с источником. Но надо проверять на живой матрице, поймет ли она тайминги, не совпадающие с теми, что указаны в datasheet на неё. Похоже на очень и очень грязный хак. Но может и сработает ! Цитата(_4afc_ @ Aug 21 2018, 12:07)  у меня покупной видеодатчик, когда из 1600х1200 делает 640х480 выдаёт 4 строчных синхры - потом пропуск. Его что тоже никуда не подключишь? А можно узнать параметры выходных синхросигналов которые выдает датчик: Какая частота pixel_clk Каковы параметры Back porch, Front porch, sync pulse, полярность импульсов ? Неужто он выдает 4 строчки с параметрами VESA 640х480, затем делает пропуск в одну строчку. затем опять выдает 4 строчки ? И все это делает с частотой pixel_clk разрешения 1600х1200 ? Цитата(_4afc_ @ Aug 21 2018, 12:07)  Почему сразу не на ЖК матрице 1024х768? А у меня матрица такова, что она работает в точности как монитор. Пока не подашь на неё правильные тайминги - фиг вам, а не работа. Цитата(Plain @ Aug 21 2018, 12:59)  Итого, никакой синхронизации нет вообще, тогда как тема именно о ней. Тема была о том, как сделать такую синхронизацию... Цитата(Plain @ Aug 21 2018, 12:59)  Для работы с вышеописанными минимального размера буферами Вам надо синхронизировать начала видимых областей, т.е. сбрасывать автомат по этому событию на входе. А не будет так работать, поскольку формируя сигнал сброса по началу данных от источника - мы фактически искажаем периоды front_porch нашего выходного сигнала со всеми вытекающими последствиями в виде сдвига изображения. И пока мы передаем сигнал из домена source_data в домен Vga_sync_gen для формирования сброса - мы натыкаемся на 1 такт нестабильности - что приводит к неравномерному периоду front_porch - что приводит к дерганию изображения и сильнейшему искажению. Если интересно могу фотографию сделать, ибо этот вариант я сразу попытался применить. Как мне кажется без буфферизации кадров во внешнем буффере не обойтись. Хотя как в IP ядрах Altera без внешнего буффера работает - пока загадка. Проведу ещё пару экспериментов и скорее всего начну делать двойную или тройную буфферизацию.
|
|
|
|
|
Aug 24 2018, 07:07
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 13-04-17
Из: Зеленоград
Пользователь №: 96 508

|
Цитата(Flip-fl0p @ Aug 22 2018, 10:45)  Данное утвержение мной не совсем подтвердилось. Собственно произошло ровно то, о чем я говорил : изменение любого из параметров Back porch в небольших пределах приводит к тому что изображение смещается. Если же изменять это значение в больших пределах - то матрица не определяет синхронизациию и изображение не выводится вообще... Странно. Я тоже думаю, что вот эти неактивные интервалы между строками и кадрами (front porch, back porch) допускается менять в определенных пределах. Разумеется pixel clock при этом тоже плавает. Но на параметры изображения это не должно влиять, разрешение и частота кадра остаются постоянными (частота строк может при этом совпадать, а может и нет). Я делал вывод изображения на промышленную матрицу, в спецификации на нее было указаны разрешенные диапазоны для всех этих porch-ей. Например, Vertical front porch: min = 7, recomended = 51, max = 100. Правда, horizontal back porch и vertictal back porch по спецификации менять не разрешалось, они были заданы строго. А по задаче, самое универсальное решение это буфер на весь кадр в DDR-памяти.
Сообщение отредактировал lembrix - Aug 24 2018, 07:12
|
|
|
|
|
Aug 28 2018, 15:02
|
Местный
  
Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312

|
Цитата(lembrix @ Aug 24 2018, 10:07)  Странно. Я тоже думаю, что вот эти неактивные интервалы между строками и кадрами (front porch, back porch) допускается менять в определенных пределах. Разумеется pixel clock при этом тоже плавает. Но на параметры изображения это не должно влиять, разрешение и частота кадра остаются постоянными (частота строк может при этом совпадать, а может и нет). Я делал вывод изображения на промышленную матрицу, в спецификации на нее было указаны разрешенные диапазоны для всех этих porch-ей. Например, Vertical front porch: min = 7, recomended = 51, max = 100. Правда, horizontal back porch и vertictal back porch по спецификации менять не разрешалось, они были заданы строго. А по задаче, самое универсальное решение это буфер на весь кадр в DDR-памяти. Решаю аналогичную задачу, только интерфейс HDMI. Действительно porch можно менять в определенных пределах. Масштабирование получилось только если выдавать синхросигналы все на своих местах (кроме datavalid), изменять только datavalid сигнал, причем сначала необходимо выдавать все активные пиксели. Цитата(_4afc_ @ Aug 20 2018, 14:40)  Возьмите картинку 800x600 отскалируйте её до 640x480 и выведите в левом верхнем углу экрана 800х600. Можно поподробней про "отскалируйте". Как я понимаю делаем следующее: прореживаем каждую линию видео кадра, буферизируем полученный масштабированный кадр и выдаем его на экран 800х600. А если необходимо обойтись без внешней памяти для буферизации? менять пиксельклок?
|
|
|
|
Сообщений в этой теме
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 Plain Цитата(Flip-fl0p @ Aug 22 2018, 10:4... Aug 22 2018, 18:17   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 30 2018, 08:31) Извлеч... Aug 31 2018, 07:47 Plain Цитата(Flip-fl0p @ Aug 31 2018, 10:4... Aug 31 2018, 09:37  Flip-fl0p Цитата(Plain @ Aug 31 2018, 12:37)
Огром... Sep 18 2018, 08:19 Plain Для любой синхронизации естественно должен быть за... Sep 18 2018, 09:29
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|