Всем здравствуйте. Такая задача: Нужно разложить композитный сигнал с камеры (пока чернобелый)
оцифровать его и передать на компьютер. Вроде структура платы понятна: ADC+FPGA(Xilinx Spartan3)+RAM буфер и по pci передать. Но как мне можно достаточно качественно и недорого разложить композитный сигнал. Может микрухи какие сразу готовые есть?
aaarrr
May 28 2008, 14:49
Есть - TI TVP5150, NXP SAA711x, у ADI тоже. Ключевое слово ITU.656.
Спасибо большое за микросхемы. Но я ожидал увидеть не совсем это. Я думал микросхема будет просто раскладывать композитный сигнал на RGB и синхроимпульсы. А она сама осуществляет оцифровку. И к тому же, что у неё на выходе? И могу ли я из этого как-то получить данные, предположим в bmp формате? Или может есть какой-то формат, который не потребует значительной обработки?
Самурай
May 28 2008, 17:58
Цитата(Yra @ May 28 2008, 20:23)

Я думал микросхема будет просто раскладывать композитный сигнал на RGB и синхроимпульсы.
Приведенные в предыдущем ответе микросхемы действительно раскладывают композитный сигнал на RGB и синхроимпульсы. И то и другое естественно в цифре

Цитата(Yra @ May 28 2008, 20:23)

И к тому же, что у неё на выходе?
И на выходе у нее то, что Вам и нужно: RGB (или ITU.656) данные + синхронизация. Цифровые

Цитата(Yra @ May 28 2008, 20:23)

А она сама осуществляет оцифровку.
А Вы хотели оцифровывать сами? Если не секрет, зачем?

Цитата(Yra @ May 28 2008, 20:23)

И могу ли я из этого как-то получить данные, предположим в bmp формате? Или может есть какой-то формат, который не потребует значительной обработки?
А FPGA Вам на что? И что уж может быть проще, чем работа с RGB данными?
Максим Зиновьев
May 28 2008, 19:14
Цитата
Нужно разложить композитный сигнал с камеры (пока чернобелый)
Разложить можно только цветной композитный аналоговый видеосигнал - на яркость и цветность.
Цитата
Я думал микросхема будет просто раскладывать композитный сигнал на RGB и синхроимпульсы.
Учите терминологию телевидения
http://handmade.default.lv/viewtopic.php?t=402В ржб сигнал (композитный, аль Y/C) не раскладывают, а декодируют. Синхроимпульсы выделяет синхроселектор/синхропроцессор (по-модному).
Цитата
Вроде структура платы понятна: ADC+FPGA(Xilinx Spartan3)+RAM буфер и по pci передать.
Вам это всё нахрен не надо. Купите ТВ-тюнер пси и наслаждайтесь сервисом.

Существуют как минимум пять готовых дешевых массовых комплектов/просто мс для реализации Вашей задачи. Например, bt848/58/68.
В буржуинии есть, видимо, твтюнеры не только "стандартов" 625/50, 525/60 а еще и хайдефинишные
Цитата
И могу ли я из этого как-то получить данные, предположим в bmp формате?
Да, это называется "снимок экрана". Щас вставлю чуть погодя

Вот.

Камера ч/б, зато 550 ТВЛ. Используется как документальная лупа при написании заключений
Нажмите для просмотра прикрепленного файла
Цитата(Самурай @ May 28 2008, 21:58)

Приведенные в предыдущем ответе микросхемы действительно раскладывают композитный сигнал на RGB и синхроимпульсы. И то и другое естественно в цифре

И на выходе у нее то, что Вам и нужно: RGB (или ITU.656) данные + синхронизация. Цифровые

А Вы хотели оцифровывать сами? Если не секрет, зачем?

А FPGA Вам на что? И что уж может быть проще, чем работа с RGB данными?
Я просто думал, что на выходе микросхемы будет аналоговые RGB и надо будет ставить отдельный АЦП. А получается всё гораздо лучше.
А FPGA мне нужно чтобы реализовать на нём pci и передеть в компьютер.
А подскажите ещё пож. по такому вопросу. Предположим я оцифровал кадр поместил его в буфер. Теперь мне нужно кадр передать по pci. Но ведь за время передачи начнётся оцифровка нового кадра.
Мне что, нужно иметь буфер на 2 кадра. В 1 записать, из другого передавать, потом меняться. Или считать что изменения от кадра к кадру небольшие и не обращать внимания на наслоение в буфере? Или как-то ещё?
aaarrr
May 29 2008, 06:03
Лучше, конечно, использовать двойную буферизацию, но если скорость передачи по PCI будет выше скорости входных данных, то можно обойтись и одним буфером, синхронизируя передачу PCI со входным потоком.
А можно и просто гнать в PCI входной поток, не разбирая его на кадры. Тогда размер буфера может быть почти любым.
Изменения между кадрами очень значительные.
Цитата
Изменения между кадрами очень значительные.
И видны на динамической картинке, на статической не заметны. При использовании вышеперечисленных видеокодеков ITU.656, даже при динамической картинке все будет нормально за счет использования встроеенных фильтров. Вроде...
Цитата(torik @ Jun 2 2008, 09:19)

И видны на динамической картинке, на статической не заметны.
Да.
Цитата(torik @ Jun 2 2008, 09:19)

При использовании вышеперечисленных видеокодеков ITU.656, даже при динамической картинке все будет нормально за счет использования встроеенных фильтров. Вроде...
Нет, не будет, конечно.
Цитата
Нет, не будет, конечно.
Я почему говорю, что с кодеком об этом можно не беспокоиться, на практике так получается...
Сперва у меня в системе была КМОП-матрица с прогрессивной разверткой. При использовании одного буфера памяти, ясно, на динамической картинке наблюдаем помеху. При использовании двух буферов - один читаем, другой пишем - помехи уже нет.
В другом случае видеосигнал оцифровывается ADV7180, на выходе черезстрочная развертка. Записываю в буфер, сразу же "деинтерлерсирувывая", из этого же буфера вывожу на монитор. И... никаких помех при динамическом изображении. Это, как я понял, благодаря фильтрам в кодеке ADV7180.
Не? может я чего-то путаю...
Цитата(torik @ Jun 2 2008, 13:43)

В другом случае видеосигнал оцифровывается ADV7180, на выходе черезстрочная развертка. Записываю в буфер, сразу же "деинтерлерсирувывая", из этого же буфера вывожу на монитор. И... никаких помех при динамическом изображении. Это, как я понял, благодаря фильтрам в кодеке ADV7180.
Как же " сразу же "деинтерлерсирувывая" ", если для этого как минимум два поля надо иметь?
Не надо. всего в кадре Ymax = 576 строк длиной Xmax = 720.
Пишем первые Ymax/2 строк (278 строк первого поля) по адресам:
Код
адрес буфера + i*2*Xmax
Вторые Ymax/2 строк (второе поле) пишем по адресам:
Код
адрес буфера + I*2*Xmax + Xmax
Вот и весь деинтерлейсинг, без промежуточных буферов.
Цитата(torik @ Jun 2 2008, 15:10)

Вот и весь деинтерлейсинг, без промежуточных буферов.
Тогда это не деинтерлейсинг, а просто складывание данных. При прогрессивной выходной развертке эффект действительно уменьшится, но ADV7180 к этому никакого отношения не имеет.
Может быть, а чем от деинтерлейсинга отличается?
Тем, что деинтерлейсинг предполагает все же некоторую обработку. Почитайте
статейку, любопытно.
Ага, согласен, тот же деинтерлейсер из SOPC Builder гораздо сложнее, с фильтрами... Но качество для меня сейчас приемлемое и я гордо именую его деинтерлейсером!
А воспользоваться всеми этими деинтерлейсерами, скалерами и прочими из SOPC Builder так и не смог нахрапом. Как-нибудь будет время, надо вообще разобраться.
Serb1987
Jan 21 2013, 09:12
Добрый день, на данном этапе работаю как раз с указанной микрухой ADV7180, она выдает данные в формате YCC 4:2:2 27MHz, как я понял длинна строки может быть только 720, как быть если у меня на входе строка длинной 768 (PAL interlaced)? И еще, мне нужно выводить данные на VGA, подскажите пожалуйста, будут ли работать такие мониторы на частоте 25Hz (это из-за того что на входе как раз такая частота кадров)?
Года 2 назад выбирал телевизор и хотел, что бы он брал все форматы. Тогда VGA брали начиная с 50-60 Гц а HDMI с 23, .... Если нужно PAL в PCI то раньше у филипса были микросхемы SAA???? с PAL на входе и PCI на выходе.
Serb1987
Jan 21 2013, 10:50
Спасибо но VGA only.
doublekey
Jan 21 2013, 11:46
Serb1987, по поводу строки в 768 пикселей, копайте в сторону Square Pixel Mode (стр. 47 даташита), при частоте 29,5 МГц на строку получается 768 активных пикселей. Правда информации по этому режиму в даташите мало и мне его так и не удалось завести.
Serb1987
Jan 22 2013, 13:32
Спасибо, попробую, вроде бы, исходя из информации которую удалось накопать (AN9728.2) то вроде бы можно, короче по результатам отпишусь.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.