|
Схемотехника и алгоритм работы видеоэкрана, Схемотехника и алгоритм работы видеоэкрана |
|
|
|
 |
Ответов
(1 - 75)
|
Feb 16 2008, 13:53
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
ммммм.... Т.е. китайцы до сих пор пионеры и строят по такой технологии тоже? Просто я сколько видел на выставках на таких драйверах как DM163 совсем нет экранов, а вот на простых mbi почти все!!!! и при чем статическая индикация. Так как они ими управляют?
И кстати мне почему то кажется, что именно на этом принципе строит (или строил) уважаемый ledmaster. Как я посмотрел на форумах он вроде как хорошо отзывался о драйверах TI, а они почти аналоги MBI5026 к примеру. (и при этом он упоминал о тысячах используемых этих драйверов в его разработках).
|
|
|
|
|
Feb 16 2008, 15:59
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Dog Pawlowa) Большинство табло так не работают, они равномерно изменяют яркость всего табло. Не верьте ему! Он фальшивый yaggerУ вас расчёт верный. Только умные люди перезагружают эти регистры по параллельной шине, а не через одну линию. Например через 24 линии и по каждой будет передано 32 бита для перезагрузки всех регистров табло. Таким образом длительность одного бита вырастет в 24 раза и будет 400 нс. Все подобные вещи уже давно можно было делать на уже состарившейся элементной базе. Сейчас база озволяет делать всё в десятки раз круче. Ошибся. По каждой из 24 линий будет передано 32*3 бит. То есть 6 регистров MBI5026 (16-разрядных) в цепочке.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Feb 16 2008, 21:25
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
GetSmart дело в том что я пока в расчете и не затрагивал "загон" в регистры меня на самом деле интересует время считывания из озу... Даже если взять озу с временем доступа 5-10 нс (а я расчитывал на 12-20) то за 16-17 мс необходимо сделать все остальное (записать с другой строны байты(я имею ввиду со стороны приемника потока 25-30 кадров), далее загнать в регистр текущий бит, но перед этим сравнить в счетчике шима и т.д. не говоря уже о том что я наверное еще что то упускаю) Я кстати на параллельную шину сразу и расчитывал, ввиду многих причин... Но что то я не понял как это время вырастет до 400 нс???? мне то разницы на самом деле нет выставлять бит на параллельную шину или на последовательную (если бы БАЙТ это другое дело)...
Да и еще, Dog Pawlowa, в одном форуме видел хорошее замечание " Титаник делали профессионалы, а ковчег - любитель!" и если придерживаться позиции что китайцы всех победят, то можно завтра закрывать почти все фирмы и производства и у нас и у вас в стране...(хотя на самом деле я не знаю откуда вы). Просто есть такая вещь как маркетинг или например личные договоренности в особых кругах сбыта, где ни какие китайцы не пробьются.
|
|
|
|
|
Feb 17 2008, 02:14
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(yagger @ Feb 17 2008, 01:25)  Да и еще, Dog Pawlowa, в одном форуме видел хорошее замечание " Титаник делали профессионалы, а ковчег - любитель!" Хм, это не форум сантехников? Всякий уважающий себя инженер должен пахать широко Цитата(yagger @ Feb 17 2008, 01:25)  Просто есть такая вещь как маркетинг или например личные договоренности в особых кругах сбыта, где ни какие китайцы не пробьются. Угу. "Зато мы делаем ракеты..." (с) Ю.Визбор Тогда договориться можно и с президентом.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Feb 17 2008, 09:35
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(vetal @ Feb 17 2008, 01:54)  Что-то вы не то насчитали. У вас 24*32*3*8*100 бит/с для приведенных вами условий, иными словами - 542,5 нс/бит. ??? что то мне подсказывает что у вас не то что то... хотя я все же могу ошибаться. 24*32*3=2304 физических точки. теперь следую алгоритму: берем из озу 1 байт(8 бит) сравниваем его со счетчиком (к примеру в ПЛИС) и по результату сравнения выставляем 0 или 1 на шине данных, стробим, читаем след байт(8 бит) и так 2304 шт, после этого подаем строб LE. На этом этапе первый такт ШИМа загружен в регистры. И таких разворотов нам надо 256 (так как шим 8 битный). И вот эта последовательность и есть картинка за 10 мСек так как 1 сек/100 Гц=10 мСек. а Если так, то 10 мСек/256=39 мкСек на 2304 байта, а соответственно 39 мкСек/2304~17 нСек на выборку 1 байта (который сравнивается с счетчиком) и установку 1 бита на шине данных. Где ошибка???
|
|
|
|
|
Feb 17 2008, 09:57
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Так делают любители, вроде ledmaster. Ковчег наверно тоже он делал. Зачем по 256 раз сравнивать один и тот же байт (яркость)? Берёте младший бит, отображаете его 1 такт. Берёте второй, отображаете 2 такта. ... Берёте 4-ый бит, отображаете его 16 тактов. ... Берёте старший 7-ой бит, отображаете его 128 тактов. Никаких сравнений не надо. Сразу после начала отображения 7-ого бита оперативка освобождается для перезагрузки новыми данными. То есть 1/2 времени она гарантированно не используется (реально 97%). Что бы не париться и не читать из ОЗУ байт ради одного бита, делается так: Заранее в ОЗУ записываются не байты яркости пикселей друг за другом, а уже разрезанные на 8 плоскостей данные. Таким образом если память байтовая, то чтение одного байта извлечёт данные для 8-ми пикселей и должно длиться 17*8 ==> 136 нс. Однако, уже подчёркивал, что делать это на рассыпухе - школьное подельничество. FPGA или ARM-проц. Они же могут раскрутить в 10 раз большее табло.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Feb 17 2008, 11:22
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
GetSmart,Спасибо еще раз... А в Минск милости просим. У нас тут весьма неплохо.  А по поводу знаний... У меня с детства сложилось такое отношение ко всем делам (наверное глупое) сначала сделать, а потом теорию изучать. Т.е. я по натуре чистейший практик. Но вот в последнее время начинаю понемногу и думать перед тем как сделать.  По поводу ваших объяснений как шим получается в экране... Ведь именно с этим у меня пока туговато, так ноги а контроллерах доргаю (там часы всякие табло спортивные и строки бегущие) а вот с математикой двоичной как то не получается пока дружить.  Скажем так нет учителя по этим вопросам, а самому разбираться с 0 как то страшновато долго получится... Можно я буду задавать глупые вопросы? С надеждой на толковые ответы?  В ранг учителя вас возведу...
|
|
|
|
|
Feb 17 2008, 21:55
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 837

|
Цитата(yagger @ Feb 17 2008, 13:56)  Может поделитесь с какими подводными камнями могу столкнуться? Главное - изначально продумать иерархичную наращиваемую систему. Все остальное приложится  Цитата(yagger @ Feb 17 2008, 13:56)  например нужна ли синхронизация всех модулей, минимальная частота кадров без потери качества видео, может драйверы посоветуете и ПЛИС... Синхронизация модулей не нужна, правда, у меня она всегда получалась автоматически. Минимальная частота кадров - порядка 75 герц, но нелишним будет задрать ее до нескольких сотен герц. У китайских товарищей в основном 200-300 герц. Лично я использую драйверы MBI5026 и ПЛИС Альтера (Циклон1/2), которая тянет модули размерностью порядка 64 на 32 полноцветные точки. Обычно хватает внутренней памяти, но иногда приходится ставить внешнюю. Да, глубина цвета (разрядность ШИМ), что выбрана Вами (8 бит - 256 значений), абсолютно неприемлема (проблемы с воспроизведением "темных" полутонов). Минимум - 10 бит; опять-таки, у китайцев от 12 до 14 бит. Я делал не менее 12 бит для статической индикации. Будут вопросы - милости просим.
|
|
|
|
|
Feb 18 2008, 06:10
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(_LD @ Feb 18 2008, 01:55)  Обычно хватает внутренней памяти, но иногда приходится ставить внешнюю. Спасибо за советы. Очень помогает, на душе легче становится. А что означает обычно? Вы все время применяете для своих девайсов разную схемотехнику? Цитата(_LD @ Feb 18 2008, 01:55)  Да, глубина цвета (разрядность ШИМ), что выбрана Вами (8 бит - 256 значений), абсолютно неприемлема (проблемы с воспроизведением "темных" полутонов). Минимум - 10 бит; опять-таки, у китайцев от 12 до 14 бит. Я делал не менее 12 бит для статической индикации. А как данные о 10-12 разрядном шиме грамотно в памяти располагать?  2 байта на пиксель занимать приходится?
|
|
|
|
|
Feb 18 2008, 06:54
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 18-02-08
Из: Челябинск
Пользователь №: 35 141

|
Цитата(GetSmart @ Feb 17 2008, 14:57)  Так делают любители, вроде ledmaster. Ковчег наверно тоже он делал. Зачем по 256 раз сравнивать один и тот же байт (яркость)? Берёте младший бит, отображаете его 1 такт. Берёте второй, отображаете 2 такта. ... Берёте 4-ый бит, отображаете его 16 тактов. ... Берёте старший 7-ой бит, отображаете его 128 тактов. Никаких сравнений не надо. Сразу после начала отображения 7-ого бита оперативка освобождается для перезагрузки новыми данными. То есть 1/2 времени она гарантированно не используется (реально 97%). Уважаемый GetSmart, что-то не припомню, когда я Вам рассказывал, что и как я делаю Я не отношу себя к числу людей, которые всегда и во всем считают себя суперпрофессионалами, но некоторые приемы построения экранов и мне доступны Хотите подробностей, их есть у меня!
|
|
|
|
|
Feb 18 2008, 07:42
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Ledmaster) Уважаемый GetSmart, что-то не припомню, когда я Вам рассказывал, что и как я делаю Уже на раз слышал упоминание о Вас в контексте алгоритма с постоянным сравнением яркости точек на больших экранах. Цитата(yagger) А как данные о 10-12 разрядном шиме грамотно в памяти располагать? 2 байта на пиксель занимать приходится? Ни в коем случае. Тем самым сразу увеличите поток данных от компьютера или чего-то ещё в экран. Внутри FPGA вообще проблем нет. Сразу можно поделить на 8..10 плоскостей. Хотя это не принципиально. Главное не передавать и не хранить лишние пустые ~6 бит. Только если памяти некуда девать. ЗЫ. Для уличного экрана 8 бит на точку вполне приемлемо. Особенно если это сказывается на экономии чего-нибудь. Желательно конечно 10.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Feb 18 2008, 14:22
|
Группа: Новичок
Сообщений: 6
Регистрация: 9-07-07
Пользователь №: 28 988

|
Господа, извините что вмешиваюсь... Но мне совершенно не понятно, в чем прелесть постройки экрана, с такой разверткой и шимом ? Почему все же, не DM163 и ей подробные ?  Грубо говоря, весь экран, это три длинных сдвиговых, с програмным управлением каждой точкой. Или я чего-то кардинально не понимаю ?
|
|
|
|
|
Feb 18 2008, 17:28
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(Tehnoon @ Feb 18 2008, 18:22)  Господа, извините что вмешиваюсь... Но мне совершенно не понятно, в чем прелесть постройки экрана, с такой разверткой и шимом ? Почему все же, не DM163 и ей подробные ?  Грубо говоря, весь экран, это три длинных сдвиговых, с програмным управлением каждой точкой. Или я чего-то кардинально не понимаю ?  Где то в форуме я видел нелестные высказывания о работе данного драйвера. :-( А я тоже начал было с ним работать. Более того, я вроде как посчитал, при одинаковых размерах и возможностях модуля, на классических драйверах значительно дешевле получается. Цитата(GetSmart @ Feb 18 2008, 11:42)  Ни в коем случае. Тем самым сразу увеличите поток данных от компьютера или чего-то ещё в экран. Внутри FPGA вообще проблем нет. Сразу можно поделить на 8..10 плоскостей. Хотя это не принципиально. Главное не передавать и не хранить лишние пустые ~6 бит. Только если памяти некуда девать. Уважаемый GetSmart, а где я могу почитать или может даже посмотреть в картинках  , как это в адресном пространстве делается. Я понимаю для 8 бит, 8х8 переворачиваю на 90 градусов вот у меня готовые байты на выдачу. а 10-12 бит??? Цитата(GetSmart @ Feb 18 2008, 11:42)  ЗЫ. Для уличного экрана 8 бит на точку вполне приемлемо. Особенно если это сказывается на экономии чего-нибудь. Желательно конечно 10. На сколько я понимаю приемлемо из-за того что общая освещенность бОльшая и "ньюансов" видно не будет?
|
|
|
|
|
Feb 19 2008, 22:23
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 837

|
Цитата(yagger @ Feb 18 2008, 09:10)  Вы все время применяете для своих девайсов разную схемотехнику? Да. Все зависит от размерности управляемого объекта. Если два полных кадра лезут в память ПЛИС - нафига внешняя память? А вот если не лезут, то приходится ее ставить. Цитата(yagger @ Feb 18 2008, 09:10)  А как данные о 10-12 разрядном шиме грамотно в памяти располагать?  2 байта на пиксель занимать приходится? Память ПЛИС может быть организована не байтами. Можно хоть 13 бит без потерь сделать  12 бит в Альтере - три блока памяти разрядностью 4 бита. А если память внешняя, то ее обычно дофига, и не проблема потерять четверть 16-ти битного слова.
|
|
|
|
|
Feb 20 2008, 06:37
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(_LD @ Feb 20 2008, 02:23)  Если два полных кадра лезут в память ПЛИС - нафига внешняя память? А вот если не лезут, то приходится ее ставить. Память ПЛИС может быть организована не байтами. Можно хоть 13 бит без потерь сделать  12 бит в Альтере - три блока памяти разрядностью 4 бита. А если память внешняя, то ее обычно дофига, и не проблема потерять четверть 16-ти битного слова. Уважаемый _LD, может Вы поделитесь?  чем (интерфейс, протокол) вы доставляете к блокам видеопоток (не сжимать же его, а то аппаратное сжатие стоит огогого,  а програмное мне не потянуть с моими знаниями это точно в ближайшее время  ). Спасибо за разъяснения по поводу памяти альтеры, я как раз это изучил. Я думал про 2 байта ПОЛНЫХ с лишними битами в видеопотоке, как их там не передавать? (грамотно). Вопрос к Вам (ибо вижу вы не просто любитель, а вроде как знающий человек  ), Вы тоже применяете способ ШИМа взвешиванием (тактированием) весовых коэффициентов разрядов или же у Вас иной способ? (и вообще какие еще бывают способы создания ШИМа без потери времени на прием данных и обслуживание ОЗУ без применения драйверов с шимом)? З.Ы. Какую внешнюю память Вы применяете (если такая все же необходима)?
|
|
|
|
|
Feb 20 2008, 12:51
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(_LD @ Feb 18 2008, 01:55)  Да, глубина цвета (разрядность ШИМ), что выбрана Вами (8 бит - 256 значений), абсолютно неприемлема (проблемы с воспроизведением "темных" полутонов). Минимум - 10 бит; опять-таки, у китайцев от 12 до 14 бит. Я делал не менее 12 бит для статической индикации.
Будут вопросы - милости просим. Вот еще перечитывал возник вопросик, Вы тут имели ввиду 12-14 бит на 1 ЦВЕТ?! Раз так то откуда их снимать? Ведь по тому же DVI прет по 8 бит на цвет, откуда лишние биты берутся? Неужели их приходится добавлять самому при преобразовании(так называемой гамма коррекции)? Еще вопрос.  я наверное слишком много их задаю... в ПЛИСке у Вас организована память 2-х портовая? (если так то, тогда понятно как она успевает независимо и шим вывести и принять DVI, или что там еще...)
|
|
|
|
|
Feb 21 2008, 00:11
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 837

|
Цитата(yagger @ Feb 20 2008, 09:37)  Уважаемый _LD, может Вы поделитесь?  чем (интерфейс, протокол) вы доставляете к блокам видеопоток Китайские товарищи вовсю используют гигабитный ethernet, а я не захотел  В небольших поделках - манчестер 8 мбит по витой паре, в больших - 100 мбит ethernet. Цитата(yagger @ Feb 20 2008, 09:37)  Вопрос к Вам (ибо вижу вы не просто любитель, а вроде как знающий человек  ) Уже сменил род деятельности. Задолбало лампочками управлять  Но несколько лет просидел на этом. Цитата(yagger @ Feb 20 2008, 09:37)  Вы тоже применяете способ ШИМа взвешиванием (тактированием) весовых коэффициентов разрядов или же у Вас иной способ? Если быстродействие памяти и требуемые параметры позволяют - делаю "в лоб", вычитывая каждый раз значение яркости. Если поджимает - делаю смешанный вариант (младшие разряды стробом, остальные вычитыванием). Цитата(yagger @ Feb 20 2008, 09:37)  З.Ы. Какую внешнюю память Вы применяете (если такая все же необходима)? Асинхронную статику Samsung. Цитата(yagger @ Feb 20 2008, 09:37)  Вот еще перечитывал возник вопросик, Вы тут имели ввиду 12-14 бит на 1 ЦВЕТ?! Раз так то откуда их снимать? Ведь по тому же DVI прет по 8 бит на цвет, откуда лишние биты берутся? Неужели их приходится добавлять самому при преобразовании(так называемой гамма коррекции)? Именно так. Цитата(yagger @ Feb 20 2008, 09:37)  Еще вопрос. я наверное слишком много их задаю... в ПЛИСке у Вас организована память 2-х портовая? (если так то, тогда понятно как она успевает независимо и шим вывести и принять DVI, или что там еще...) Конеюно, двухпортовая. Если два полных кадра в ПЛИС не лезут, идет прием во внешнюю память с перебросом ее во внутреннюю при смене кадров.
|
|
|
|
|
Feb 21 2008, 09:31
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 5-12-05
Из: Москва, Россия
Пользователь №: 11 818

|
Цитата(Tehnoon @ Feb 18 2008, 17:22)  Господа, извините что вмешиваюсь... Но мне совершенно не понятно, в чем прелесть постройки экрана, с такой разверткой и шимом ? Почему все же, не DM163 и ей подробные ?  Грубо говоря, весь экран, это три длинных сдвиговых, с програмным управлением каждой точкой. Или я чего-то кардинально не понимаю ?  Был бы благодарен за информацию о том, чем плохи DM163. У нас сделали 2 экрана на этих драйверах - один с SMD светодиодами, шаг 10мм, другой с колбочками, шаг 28мм. Так вот, плата с SMD диодами - это один длинный сдвиговый регистр на 96 последовательно включенных DM163. Никаких сбоев не наблюдается, что меня сильно порадовало, даже на это и не рассчитывал, думал, придется распараллеливать. Правда, плата вышла 4-хслойная. Поскольку тупую работу ШИМ выполняют сами драйверы, снижена нагрузка на ПЛИС, один Cyclone управляет 4-мя такими платами, снимая данные с LVDS линии. Вот, хотелось бы узнать, чем действительно плохи DM, может, я рано обрадовался?
|
|
|
|
|
Feb 21 2008, 15:56
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(at90 @ Feb 21 2008, 18:44)  а какого разрешения модули и экран?  ну если я правильно понимаю, то исходя из соображений что DM163 24 канала(8 пикселей RGB) то в итоге получается 96 микросхем это 32х24 это если статика конечно... (кстати я как раз где то читал , что именно при динамике у этих микросхем всякие пошлости... только вот не помню где читал  ) GetSmart, может Вы можете поделиться секретом: какие еще бывают способы создания ШИМа без потери времени на прием данных и обслуживание ОЗУ без применения драйверов с шимом.(я как буратино - хочу все знать.
|
|
|
|
|
Feb 21 2008, 19:35
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 5-12-05
Из: Москва, Россия
Пользователь №: 11 818

|
Цитата(yagger @ Feb 21 2008, 18:56)   ну если я правильно понимаю, то исходя из соображений что DM163 24 канала(8 пикселей RGB) то в итоге получается 96 микросхем это 32х24 это если статика конечно... (кстати я как раз где то читал , что именно при динамике у этих микросхем всякие пошлости... только вот не помню где читал  ) Абсолютно правильно подсчитали - плата именно 32х24 и именно статика. Из 4-х плат собран блок, управляемый контроллером. А размерность экрана - по количеству блоков. Что касается динамики, ее даже и не рассматривали, хотя теоретически можно прилично сэкономить на числе драйверов. Если исходить из среднего тока диода 20мА и макс токе 60мА на выход, можно одним выходом без потери в яркости управлять тремя диодами, т.е. использовать в 3 раза меньше драйверов. Если же речь идет о ярких диодах и табло используется в помещении, достаточная яркость может быть получена при меньшем токе и число драйверов можно еще уменьшить. Однако это чревато мерцанием экрана, пока это не обдумывали.
Сообщение отредактировал Галстук - Feb 21 2008, 19:38
|
|
|
|
|
Feb 22 2008, 18:51
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(Галстук @ Feb 21 2008, 13:31)  У нас сделали 2 экрана на этих драйверах - один с SMD светодиодами, шаг 10мм, другой с колбочками, шаг 28мм. Так вот, плата с SMD диодами - это один длинный сдвиговый регистр на 96 последовательно включенных DM163. Никаких сбоев не наблюдается, что меня сильно порадовало, даже на это и не рассчитывал, думал, придется распараллеливать. Правда, плата вышла 4-хслойная.
Поскольку тупую работу ШИМ выполняют сами драйверы, снижена нагрузка на ПЛИС, один Cyclone управляет 4-мя такими платами, снимая данные с LVDS линии. А ШИМ чем создаете? Я имею ввиду на PWC вход что подаете на каждой плате свой отдельный генератор? и какова частота его у Вас? LVDS - это вы прямо DVI в блок пихаете или свое что то? Да кстати, на смд диодах экран не греется? как охлаждение сделали?
|
|
|
|
|
Feb 23 2008, 08:29
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Ребята, А может расскажите принцип масштабирования?  или у Вас в программе на компе есть область куда и сгружается все видео, и эта область по масштабу (по пикселам) соответствует экрану. В DVI по-моему минимально 60 Гц кадры бегут, какой принцип получения 25 кадров?  ну я так понимаю 30 кадров можно через кадр забирать из потока, а вот 25? неужели через 1, а иногда через 2?
Сообщение отредактировал yagger - Feb 23 2008, 08:31
|
|
|
|
|
Feb 24 2008, 09:11
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 5-12-05
Из: Москва, Россия
Пользователь №: 11 818

|
Цитата(yagger @ Feb 22 2008, 21:51)  А ШИМ чем создаете? Я имею ввиду на PWC вход что подаете на каждой плате свой отдельный генератор? и какова частота его у Вас? LVDS - это вы прямо DVI в блок пихаете или свое что то? Да кстати, на смд диодах экран не греется? как охлаждение сделали? На каждой плате контроллера, управляющего до 8ми светодидных плат, свой генератор GCK 1.25 МГц, на более низких частотах заметно мерцание. LVDS получается из DVI соответствующим преобразователем от TI. А вот с охлаждением вопрос непростой. В модулях стоят блоки питания с вентиляторами, они обеспечивают какой-то принудительный обдув, на платы все равно заметно теплые. Спасает, что в помещении не надо выводить максимальную яркость, а на улице придется ставить дополнительные вентиляторы.
|
|
|
|
|
Feb 24 2008, 10:47
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(GetSmart @ Feb 23 2008, 20:34)  Масштабирование мы не применяли. У нас делалось так. На мониторе проигрыватель видео жёстко привязан к координатам экрана. А из потока DVI просто "вырезается" это окно и загоняется в ОЗУ FPGA. Ага, я как раз именно так и представлял этот процесс и это, на сколько я понимаю, на много проще чем применять какие то ни было масштабирования, будь они программные или аппаратные... Цитата(GetSmart @ Feb 23 2008, 20:34)  С кадровой частотой всё проще. Две страницы видеопамяти переключаются друг за другом. После полного заполнения пассивной, она становится активной и отображается, но обязательно синхронно со сменой кадров экрана. Я очередной раз прошу прощения  если я правильно понимаю, в этом варианте используется 2 страницы памяти озу с разным адресным пространством??? ну то есть дабы иметь одновременный НЕЗАВИСИМЫЙ доступ к своей памяти (активной/пассивной) как со стороны драйверов, так и со стороны потока видео? и в момент заполнения памяти пассивной со стороны потока, выжидаем пока не "отстреляет" до последнего бита активная часть и переключаем памяти??? я правильно рассуждаю? Если так, то как я и писал получается все равно из 60 кадров входных, я исскуственно должен забирать только 25-30 кадров пропуская некоторые из них? Цитата(GetSmart @ Feb 23 2008, 20:34)  В другом варианте, когда видеопоток идёт не с DVI там можно по запросу заполнять единственную страницу ОЗУ. (если используется тот алгоритм с "взвешиванием" разрядов) В таком варианте я понимаю тоже можно, в принципе, использовать не 2х портовое а 1портовое озу??? А по поводу алгоритмов без "взвешивания" разрядов. Я действительно осознаю что в варианте с взвешиванием >95% времени свободно. В других алгоритмах так же дела с свободным временем обстоят, и сколько вообще можно насчитать таких алгоритмов?
|
|
|
|
|
Feb 24 2008, 11:52
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 5-12-05
Из: Москва, Россия
Пользователь №: 11 818

|
Цитата(yagger @ Feb 24 2008, 13:47)  как я и писал получается все равно из 60 кадров входных, я исскуственно должен забирать только 25-30 кадров пропуская некоторые из них?  а кто вам мешает работать с родной частотой 60 Гц, зачем ее искусственно снижать?
|
|
|
|
|
Feb 24 2008, 12:35
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(Галстук @ Feb 24 2008, 15:52)  а кто вам мешает работать с родной частотой 60 Гц, зачем ее искусственно снижать?  хм. сам дурак. действительно зачем. Но почему тогда все производители пишут типа 25-30 кадров? зачем они тогда снижают? или все же есть затык в чем то? 'Галстук' а у Вас какова частота кадров?
|
|
|
|
|
Feb 24 2008, 14:28
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 5-12-05
Из: Москва, Россия
Пользователь №: 11 818

|
Цитата(yagger @ Feb 24 2008, 15:35)   хм. сам дурак. действительно зачем. Но почему тогда все производители пишут типа 25-30 кадров? зачем они тогда снижают? или все же есть затык в чем то? 'Галстук' а у Вас какова частота кадров? Ну 60Гц. У нас экран работает от компа, 60 Гц. Будет источник 25 Гц - можно и 25 Гц.
|
|
|
|
|
Feb 24 2008, 14:55
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(yagger) если я правильно понимаю, в этом варианте используется 2 страницы памяти озу с разным адресным пространством??? ну то есть дабы иметь одновременный НЕЗАВИСИМЫЙ доступ к своей памяти (активной/пассивной) как со стороны драйверов, так и со стороны потока видео? Это не чтобы иметь одновременный и независимый доступ, а чтобы при начале отображения младших бит текущего кадра старшие биты не сменились внезапно данными из нового кадра, иначе по экрану будут "бегать глюки". А по поводу кадровой частоты, так в начале темы вообще был расчёт на 100 Гц. Какие проблемы? У мониторов тоже частота не 25, а 60 и выше герц. Они прекрасно показывают 25 Гц фильмы. При желании можно вообще сделать автосинхронизацию экрана с идущей от DVI потока.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Feb 24 2008, 15:11
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
http://www.leds.ru/forum/viewtopic.php?t=26тут давненько немного обсуждали тему? что означает фраза (для меня пока слегка загадочная)  "Сейчас буду пробывать MEGA128 с внешним сумматором (для вычисления уровня ШИМ) в адресном пространстве. Думаю смогу из нее 256 градаций на модуль 16х16 RGB вытянуть. у мастера дениса?"
|
|
|
|
|
Feb 24 2008, 18:38
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(GetSmart @ Feb 23 2008, 20:34)  В другом варианте, когда видеопоток идёт не с DVI там можно по запросу заполнять единственную страницу ОЗУ. (если используется тот алгоритм с "взвешиванием" разрядов) 'GetSmart' этот ДРУГОЙ алгоритм секрет?
|
|
|
|
|
Feb 24 2008, 19:21
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(yagger) что означает фраза (для меня пока слегка загадочная) Это к афтору фразы. Судя по всему проц только адреса перебирает, а данные из рамы сразу через сумматор идут на линию данных сдвигового регистра. Цитата 'GetSmart' этот ДРУГОЙ алгоритм секрет? Это алгоритм с "взвешиванием" разрядов. Я же уточнил в конце фразы. Когда выведен старший бит, то происходит перезагрузка видеостраницы. То есть строго синхронно с кадровой частотой экрана.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Feb 24 2008, 20:07
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(GetSmart @ Feb 23 2008, 20:34)  В другом варианте, когда видеопоток идёт не с DVI там можно по запросу заполнять единственную страницу ОЗУ. (если используется тот алгоритм с "взвешиванием" разрядов) Я так понял, алгоритм с постоянным сравнением с счетчиком уже вообще не рассматривается... Но в фразе есть слово ЕСЛИ (если используется тот алгоритм с "взвеш........), по-этому я и подумал, что все же имеется ввиду еще какой то способ. Но ледмастер писал в ледфоруме, что все же у него есть ноу-хау. Может и Вам известна эта военная тайна?
|
|
|
|
|
Feb 25 2008, 09:20
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(GetSmart @ Feb 25 2008, 01:00)  Ссылку можно? Попробую силой мысли угадать что он от всех "скрывает"  http://www.d-sign.com/viewtopic.php?t=626&...asc&start=0Добавлено: Пн Фев 18, 2008 2:49 pm "хотя правды я тоже не скажу, это ноу-хау."
|
|
|
|
|
Feb 25 2008, 15:43
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(ledmaster) Алгоритм весов разрядов, который он описал, вещь хорошая, только выигрыша во времени не дает, те же 256 тактов. Просто для справки, у меня один контроллер на базе Altera EPM3256 обеспечивает время цикла порядка 4мс, управляя матрицей 64*48 полноцветных пикселей (256 градаций по каждому цвету). Для справки, на 200-рублёвом АРМе без какой-либо внешней обвязки (простые буфера не в счёт) можно сделать "мозг" RGB модуля 96*96 кластеров с кадровой 60 Гц. Или 85*64 100 Гц. Или вообще любое разрешение. Только такие большие платы (на весь модуль) вроде как нереально изготовить. Выигрыш по времени... Конечно же не 256 тактов, а только 8. Хотя цена минимального такта действительно 1/256-ая. Я в этом не вижу никакой проблемы, ведь 100 Гц * 256 = 26 КГц. Разве это много? Вся хитрость только в том, как за этот период обновить все сдвиговые регистры новыми данными. Как уже говорилось - мысли "шире" - грузи как можно больше параллельных данных. Есть ещё теоретически другой вариант, когда яркость регулируется не только временным интервалом, но и регулировкой тока. Это в теории легко, а на практике почти нереально. Во всяком случае на дешёвых драйверах MBI5026. Вобщем байт яркости делится на два полубайта. Оба полубайта выводятся вобщем одинаково друг за другом. Либо просто сравнением, либо 4-мя плоскостями со взвешиванием. Только электрическая схема позволяет при выводе младшего полубайта уменьшить ток через светодиоды ровно в 16 раз. Если она уменьшит не в 16, а в 15 или 17, то на экране будут наблюдаться "глюки". Таким образом кол-во так называемых (ledmaster-ом) тактов уменьшается до 16+16 = 32 тактов. У меня ещё есть оч. красивый вариант полу-динамической RGB-индикации. Он позволяет в 3 раза уменьшить количество драйверов MBI5026 или любых других. Дело в том, что каждый выход драйвера цепляется сразу к трём катодам светодиодов R,G и B. А вот аноды через мощные ключи (R, G и B канала) подключаются к питанию по очереди. Плюсы - экономия большого кол-ва регистров, места на плате и большая надёжность из-за меньшей длины цепочек регистров их емкостей и токов потребления. Однако драйвер MBI5026 должен будет выдавать на каждый свой выход утроенный ток, но он легко это делает, т.к. расчитан до 90 мА. Скорость перезагрузки регистров остаётся та же, т.к. кол-во регистров в цепочках уменьшилось втрое. Минус мне видется только в том, чтобы качественно сделать последовательное переключение питания R-G-B цветов. Чем реже переключаются эти ключи тем лучше. Если частота кадров 100 Гц, то 1/300 сек выводится цвет R, потом столько же G и B. Общий период будет как раз 1/100 сек. При желании можно переключение RGB увеличить в 2,4,8 раз. Теперь что касалось вопроса "а что же делать 90% времени если нечё делать?". Ну с DVI-ем действительно нечего делать. А вот если канал передачи видео не DVI, то можно слать сжатый поток и декодировать его в рилтайме.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Feb 25 2008, 18:40
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(GetSmart @ Feb 25 2008, 19:43)  Для справки, на 200-рублёвом АРМе без какой-либо внешней обвязки (простые буфера не в счёт) можно сделать "мозг" RGB модуля 96*96 кластеров с кадровой 60 Гц. Или 85*64 100 Гц. Или вообще любое разрешение. Только такие большие платы (на весь модуль) вроде как нереально изготовить. Я просто все на пиках да на пиках, а вот в последнее время чего то кошусь на плисы. А по вашему мнению что полезнее изучить плис или арм? (думаю ответ очевиден  ) Просто в плисах почти все процессы идут "параллельно", а в арме чем достигается производительность, скоростью работы и командным аппаратом? или у него не конвейерная обработка команд? Цитата(GetSmart @ Feb 25 2008, 19:43)  У меня ещё есть оч. красивый вариант полу-динамической RGB-индикации.  я еще до написания своего первого вопроса по экранам именно так и хотел строить...но смотрю как бы мне вообще с простой статикой разобраться. Пока еще кстати не все понятно. В частности: изучать надо DVI - там куча вопросов, как синхронизировать смену активной и пассивной страницы (т.е. когда ее менять то надо, когда очередной кадровый импульс пришел? но тогда может быть не завершен процесс выдачи шима! или это по барабану?)ну и другие моменты. Кстати, не подскАжите? если для переноса потока видео взять Ethernet, то как там аппартаный или тоже программный  надо воротить?
|
|
|
|
|
Feb 25 2008, 19:44
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(yagger) А по вашему мнению что полезнее изучить плис или арм? (думаю ответ очевиден  ) Но не Вам  Ответ - оба. Ни один из них не сможет всё, что может другой. Так что под конкретную задачу будет и ответ. Цитата изучать надо DVI - там куча вопросов, как синхронизировать смену активной и пассивной страницы (т.е. когда ее менять то надо, когда очередной кадровый импульс пришел? но тогда может быть не завершен процесс выдачи шима! или это по барабану?) Заполняете пассивную страницу одним кадром из DVI и устанавливаете флаг готовности. Больше из DVI данные не брать, до переключения страниц. Как тока кадр светодиодного экрана закончится, страницы поменяются. И далее по кругу.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Feb 25 2008, 20:55
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(GetSmart @ Feb 25 2008, 23:44)  Так что под конкретную задачу будет и ответ.  так на данный момент задача стоит конкретная! принять видео выдать шим... просто почитав ветку http://www.microchip.su/showthread.php?t=661 я как то растерян после "разгона" Alex B. (а он, как я понимаю, почитав его посты, есть спец.)!!! может мне действительно подучить пики постарше и плис выучить, тогда и задачи разнообразней можно решать? А по поводу езернета что нить напИшете? З.Ы. Спасибо за ответы,  очень помогают. А по поводу "дальше не принимать DVI", я как то застопорился  думал все как это сделать так чтобы ни одного кадра не пропустить, а с вашим ответом понимаю что в действительности то все равно кадров "поймаю" больше чем реально в видеороликах отображается (25-30). Честно говоря я впервые залез на форум и действительно получил неоценимую информацию, сам я точно в елках да березах блуждал бы еще дооолго!
|
|
|
|
|
Feb 26 2008, 11:11
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 5-12-05
Из: Москва, Россия
Пользователь №: 11 818

|
Цитата(yagger @ Feb 25 2008, 23:55)  понимаю что в действительности то все равно кадров "поймаю" больше чем реально в видеороликах отображается (25-30). Вы вот периодически упоминаете эти 25-30 кадров в секунду, те самые 25 fps из телевизора. Только вы учтите, что если ваш ШИМ работает по простому принципу - открыть на часть времени кадра ключ - на оставшееся время закрыть - то у вас светодиоды будут мерцать с частотой смены кадров. И чтобы глаз не замечал мерцания, эта частота должна составлять не меньше 60Гц, лучше 85Гц. На малых яркостях, когда время открытого состояния значительно меньше времени закрытого, даже и 60 Гц заметно. Физиология зрения, знаете ли... Поэтому вы либо забудьте про 25fps, либо делайте более изощренный ШИМ.
|
|
|
|
|
Feb 26 2008, 12:51
|

Местный
  
Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836

|
Цитата(GetSmart @ Feb 25 2008, 18:43)  У меня ещё есть оч. красивый вариант полу-динамической RGB-индикации. Он позволяет в 3 раза уменьшить количество драйверов MBI5026 или любых других. Вот кстати ссылочка, эта тема как раз обсуждалось на обсуждаемую тему динамики на три.. http://electronix.ru/forum/index.php?showt...mp;#entry347961
--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
|
|
|
|
|
Feb 26 2008, 13:48
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(adc) Вот кстати ссылочка, эта тема как раз обсуждалось на обсуждаемую тему динамики на три.. http://electronix.ru/forum/index.php?showt...mp;#entry347961Оказывается не только у меня рождаются идеи. Хотя в той теме я признАюсь ниразу не был. Честно, сам догадался  Цитата(yagger) так на данный момент задача стоит конкретная! принять видео выдать шим... Тут надо решить, с чем легче разобраться. Рисовать схемы (для FPGA) и писать программу (для проца) разные вещи. Желательно уметь и то и другое. Цитата(yagger) просто почитав ветку http://www.microchip.su/showthread.php?t=661 я как то растерян после "разгона" Alex B. (а он, как я понимаю, почитав его посты, есть спец.)!!! может мне действительно подучить пики постарше и плис выучить, тогда и задачи разнообразней можно решать? А по поводу езернета что нить напИшете? Он такооой спец, что я молчу. Тут ещё один такой же есть - почитал эррату и выдал что АРМы (или только LPC) самые глючные. А вообще, я на стороне автора той темы. Могу только сказать что с dsPIC я не знаком и сравнить его с АРМом не могу. Я процы оцениваю не только по "мощности", но и по цене. Выше 300 руб я пока не применял процы и не вижу в этом необходимости. Что я писал по 200-рублёвый АРМ мне вполне достаточно. По езернету вроде ничего сложного нет. Ставится спец микруха - интерфейс езернета и она сама поддерживает протокол. Проц или FPGA только данные из неё забирает и ответы передает.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Feb 26 2008, 19:05
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(Галстук @ Feb 26 2008, 15:11)  либо делайте более изощренный ШИМ. это типа симметричный?
|
|
|
|
|
Feb 28 2008, 20:03
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 5-12-05
Из: Москва, Россия
Пользователь №: 11 818

|
Цитата(yagger @ Feb 26 2008, 22:05)  это типа симметричный?  Не знаю, что в точности значит "симметричный", хочу пояснить суть проблемы. Допустим, вы хотите передавать 25 кадров в секунду. В кино получается все гладко, потому что статические картинки меняются "мгновенно". Если же яркость меняется с помощью ШИМ типа 1 раз за кадр включил - 1 раз выключил, мерцания делают картинку несмотрибельной, извините за выражение. Теперь напрашивается просто взять, и прокрутить ту же форму сигнала ШИМ, допустим, 4 раза за кадр - частота повысится до 100Гц, мерцания должны стать незаметными. Очень хорошо. Но хорошо будет только на неподвижном изображении. Всякое движение будет сопровождаться артефактами, возникнет эффект размазывание границ переходов яркостей, картинка потеряет четкость. Посмотрите даташит DM163, там описано их ноу-хау - некий ШИМ со специальным непоследовательным счетчиком, который обеспечивает псевдослучайное заполнение интервала кадра коротенькими импульсами. Осциллоскопом смотреть по-началу даже страшно, что делается. Что, вроде бы, решает эту проблему. Во всяком случае, никаких грубых артефактов при движении не наблюдаем.
|
|
|
|
|
Feb 29 2008, 07:03
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(Галстук @ Feb 29 2008, 00:03)  Теперь напрашивается просто взять, и прокрутить ту же форму сигнала ШИМ, допустим, 4 раза за кадр - частота повысится до 100Гц, мерцания должны стать незаметными. Очень хорошо.
Но хорошо будет только на неподвижном изображении. Всякое движение будет сопровождаться артефактами, возникнет эффект размазывание границ переходов яркостей, картинка потеряет четкость. Т.е. в экранах, которые сейчас расставлены по нашим странам в основном частота кадров более 100 Гц? соответственно шим для них получается 100*256=25,6 кГц? а где я могу почитать про ЭТИ явления? 'Галстук', а Вы делали экраны на "классических" драйверах? или только на DM163? З.Ы. Странно, но делают же люди 100 Гц(и даже меньше) и 8 разрядный шим. и ни кто об этих проблемах ни разу не написал.  Может это тайна?
|
|
|
|
|
Nov 26 2008, 09:11
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
При эксперементах наткнулся на проблемку. Даже если рассматривать 1 канал то получается при 8 битном шиме (рассматриваемым алгоритмом) я поочередно, как писали, выставляю биты в порт и тактирую их нужным кол-вом тактов.(0ой бит 1 такт, 1ый бит 2 такта и так до 7го) а 7ой как только выставил, запускаю 128 тактов ожидания и сам делаю что мне требуется (к примеру изменение переменной шима в программе)... но вот что заметил, при некоторых переходах, а особенно это заметно при переходе 127-128 или 128-127 получается всплеск 255 тактов или провал 255 тактов, на светодиоде это заметно отражается... В частности я сделал программку плавно изменяющую яркость посредством ТАКОГО шима и вот ЭТО вылезло такими эффектами неравномерности. НатолкнЁте на мысль какими способами победить сие? Есть идеи поднять скорость, т.е. уменьшить время 1го такта и этот эффект станет почти незаметен, или все же есть какие то варианты решения такой проблемы? Как это сделано в экранах, если в ролике вдруг применяется плавное затухание?
Эскизы прикрепленных изображений
|
|
|
|
|
Nov 26 2008, 09:27
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
То что Вы описали, вполне "законный" глюк такого управления светодиодами. Хотя сам я почему-то за 3 года разработки экранов его не заметил :-( Возможно потому что частота экранов была 100 Гц, а частота видеороликов не превышала 25. Кроме того, большие или маленькие "глюки" будут в любом алгоритме формирования яркости, кроме дельта-сигма. Дельта-сигма сложный с аппаратной точки зрения и требует большую пропускную способность канала вместе с высоким (динамическим) потреблением цифрового канала передачи. Но зато самый помехоустойчивый. Не знаю на какой элементной базе (проц, FPGA) сделана Ваша схема, но если на FPGA, то я бы переделал её на дельта-сигму. Алгоритм с весовыми коэффициентами битов оптимально подходит для процессора, да и то для некоторых относительно шустрых типа LPC. Он имеет свои небольшие глюки, но и большие достоинства.
Теперь как избавиться от глюков. Можно например переставлять очерёдность вывода бит. Выводить 0,1,2,3,4,5,7,6. Или разбить старший бит пополам и выводить 7-0,0,1,2,3,4,5,6,7-1. Или 0,1,2,3,4,5,7-0,6,7-1. Достаточно поднапрячь фантазию и возникает масса способов. Тут главный вопрос, важно ли сохранить приемущества именно весового алгоритма, потому как с другого "краю" возможных алгоритмов стоит дельта-сигма вообще без глюков в визуальном восприятии, но требующем больших аппаратных затрат на уровне спартанов и циклонов.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Nov 26 2008, 09:42
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Самое интересное я сейчас пересмотрел даташит на DM634 (одна из последних микрух макроблока) там как бы они не мешали свои биты выводимые, как я понял тоже по весовым разрядам, а все равно 0-ой бит и 15-ый бит выводятся "скраев", т.е. я так понимаю у них ЭТОТ баг тоже присутствует но как Вы уже написали выше он не виден скорее всего из-за разности частот вывода картинки и ее изменения... А может быть и из-за того, что предполагал я - частота то их шима (PWM free-running capability (refresh rate ~275 Hz with internal oscillator ~18 MHz)).
|
|
|
|
|
Jan 21 2009, 15:41
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Протестировал я глюки "весового" алгоритма на новой своей процессорной железке с градациями. При правильном управлении глюки очень-очень слабые даже когда кадровая частота 50 Гц. Ниже уже сильно заметно мерцание светодиодов. Заметить их нереально если не знать когда и где их ожидать. Если у Вас они сильно заметны, то дело возможно в неправильном алгоритме.
Ну и заодно бонусом опишу здесь простейший (для FPGA) алгоритм дельта-сигма. Есть байт - яркость пикселя. Есть кадровая частота. Кадр делится на 255 (или 256) тактов (порций). Старший бит яркости (7-ой от нуля) отображается каждый второй такт, то есть в 1,3,5,7...253,255 тактах. 6-ой бит яркости отображается каждый 4-ый такт, то есть в 2,6,10..250,254 тактах. 5-ый бит яркости отображается каждый 8-ой такт, то есть в 4,12..,244,252 тактах. Ну там так далее. 0-ой бит отображается только 1 такт ровно в середине кадра на 128-ом такте. Проще говоря, яркостные биты распределяются равномерно по кадру. Младший - в центре. Чуть более старший (1-ый) по бокам от него на 64 и 192 тактах. Никаких счётчиков, сумматоров и прочих сложностей персонально каждому пикселю не требуется. Чистая логика и один общий для всех счётчик. Никаких глюков при таком отображении не будет заметно, даже на кадровой частоте 25 Гц и ниже. Будет очень похоже на статический алгоритм развёртки. Хотя не совсем. На малых яркостях (буквально от 1 до 5) будет заметно мерцание если кадровая частота ниже 50 Гц. Но когда картинка более яркая уже ничего заметно почти не будет.
Сообщение отредактировал GetSmart - Jan 21 2009, 16:24
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jan 21 2009, 16:33
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(GetSmart @ Jan 21 2009, 19:41)  Ну и заодно бонусом опишу здесь простейший (для FPGA) алгоритм дельта-сигма. Спасибо.  Действительно интересный алгоритм. Для меня это просто неоценимая информация. (думаю не только для меня). Я вообще по инету ничего по этой теме вообще не нашел, вот только по вашим ответам уважаемый GetSmart и ориентируюсь - как это работает. Огромное спасибо еще раз.
|
|
|
|
|
Jan 22 2009, 16:22
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(GetSmart @ Jan 21 2009, 19:41)  Ну и заодно бонусом опишу здесь простейший (для FPGA) алгоритм дельта-сигма. Сразу не просек. В этом алгоритме получается для каждого такта шима надо будет перезагружать все регистры. Я правильно понимаю? Ну и соответственно для каждой точки читать заново данные в озу.
Сообщение отредактировал yagger - Jan 22 2009, 16:23
|
|
|
|
|
Jan 23 2009, 19:14
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Уважаемый GetSmart, тут еще пара вопросов возникла... (дело в том, что я как раньше писал с ПЛИС пока на ВЫ, да наверное это еще и круто сказано, думаю если уж и учиться, то на толковом проекте  ) Если использовать плис без собственной внутренней ОЗУ и учитывая, что ОЗУ требуется в принципе незначительно (32х32 пикселя 3 цвета = 3072 байта всего) такое кол-во байт адресуется 12 битами, можно ли (в качестве эксперимента, а может и так тоже делают?) использовать 2 независимые микросхемы памяти? как на картинке внизу.[attachment=29030:______RGB.jpg]
Сообщение отредактировал yagger - Jan 23 2009, 19:17
Эскизы прикрепленных изображений
|
|
|
|
|
Jan 24 2009, 10:47
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(GetSmart @ Jan 24 2009, 13:40)  Проще уж сделать две видеостраницы в одной раме. Неактивная будет буфером для принимаемых по кабелю данных. Брр. А как тогда во времени в таком случае делается адресация? доступ то к памяти должен быть фактически независимый!  одна сторона в память (например с 0 по 100 адрес) пишет, а вторая сторона в то же время (с адреса 101-по 201) читает и выдает данные в регистры. Или я что то опять не так понимаю?
|
|
|
|
|
Jan 24 2009, 14:43
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(yagger @ Jan 24 2009, 16:47)  Брр. А как тогда во времени в таком случае делается адресация? доступ то к памяти должен быть фактически независимый!  одна сторона в память (например с 0 по 100 адрес) пишет, а вторая сторона в то же время (с адреса 101-по 201) читает и выдает данные в регистры. Или я что то опять не так понимаю?  Самое простое - по очереди с мультиплицированием адреса. Ещё есть интересные варианты, но надо знать предельную скорость поступления данных из вне. Например так. За 1 такт (яркостный, которых 256) требуется перезагрузить 3Кбит регистров. На самом деле скорость обращения к раме выбирается 4К. Когда по каналу связи данных нет, то из рамы считываются данные и идут на сдвиговые регистры. Когда поступает байт по связи, то сдвиг регистров приостанавливается на 1 такт, а в это время происходит запись в раму принятого байта. Ну а перезагрузка (Load, ~LE) сдвиговых регистров должна происходить строго синхронно, то есть после 4К тактов.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jan 24 2009, 15:19
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 3-02-08
Из: Minsk
Пользователь №: 34 717

|
Цитата(GetSmart @ Jan 24 2009, 17:43)  Самое простое - по очереди с мультиплицированием адреса. Ещё есть интересные варианты, но надо знать предельную скорость поступления данных из вне. Например так. За 1 такт (яркостный, которых 256) требуется перезагрузить 3Кбит регистров. На самом деле скорость обращения к раме выбирается 4К. Когда по каналу связи данных нет, то из рамы считываются данные и идут на сдвиговые регистры. Когда поступает байт по связи, то сдвиг регистров приостанавливается на 1 такт, а в это время происходит запись в раму принятого байта. Ну а перезагрузка (Load, ~LE) сдвиговых регистров должна происходить строго синхронно, то есть после 4К тактов. Вай...  Нееее, мне видится все же проще будет использовать внутреннюю память для обеих страниц...  и просто переключаться между ними. А то с этим разделением адресов я чувствую зависну и не начав. А жертвой, я так понимаю, будет просто напросто максимально возможное разрешение блока управляемого 1ой плиской? Кстати, а в алгоритме дельта-сигма не требуется перетасовка байт побитно! Это радует.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|