Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Микроанимация (нужен совет)

40K
09 декабря 2008 года
V.G.
21 / / 05.12.2008
Здравствуйте.
Мое имя Виктор. Конструктор (искусственный интеллект). Алма-Ата, Казахстан.
Необходимо написать компьютерную программу, но в Казахстане проблемы с профессиональными программистами. Возможно, кто-нибудь сможет помочь советом: с чего начинать и что делать.
Суть задачи в двух словах:
Имеем контур, например, квадрат, состоящий из 100 пикселов: 100 пэлов R, 100 пэлов G, 100 пэлов B.Необходимо изменять яркости пэлов R с частотой 10 Гц, G- 20 Гц, В- 30 Гц (значения условны).Такая «микроанимация».Другими словами ,яркости пэлов должны изменяться не синхронно.
При этом принципиальны не абсолютные значения частот,а их отношения :Fr/Fg,Fg/Fb. Т.е. частоты могут быть плавающими, а разность между ними должна быть постоянной (или почти постоянной).
Назначение программы – создание эффектов присутствия, аналогичных стереоскопическим (графический редактор глубины пространства).
Страницы:
11
09 декабря 2008 года
oxotnik333
2.9K / / 03.08.2007
формировать картинку в памяти 3-мя разными (синхронизированными между собой) потоками и при завершении каждого потока выводить ее на экран.
14
09 декабря 2008 года
Phodopus
3.3K / / 19.06.2008
Можно и одним потоком, частоты-то кратны 10гц.
Кстати про проблемы с программистами в Алма-Аты.. Я вот тут знаю парочку.. :D
1.9K
09 декабря 2008 года
andriano
474 / / 10.01.2008
Т.к. написано, что значения "условны", то следует иметь в виду, что каждый пиксель отображается на экране лишь 60-85 раз в сек, причем, на разных мониторах по-разному. Т.е. произвольно выбирать частоты никак не получится.
241
10 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Т.к. написано, что значения "условны", то следует иметь в виду, что каждый пиксель отображается на экране лишь 60-85 раз в сек, причем, на разных мониторах по-разному. Т.е. произвольно выбирать частоты никак не получится.

Тут прикол в том, что мы в своём коде чаще всего не задаём яркость свечения каждого пятна люминофора на мониторе. Единственное, что мы можем регулировать - это яркость и цвет каждого отдельного пикселя. Всё остальное от нас так или иначе абстрагирует видеокарта. Поэтому же отпадает и привязка к частоте обновления: это тоже на уровне абстракции видеокарты. Вас же не смущает, что при частоте обновления, скажем 85 Гц вы без напряжения и мерцания смотрите кино, в котором 25 к/сек?

Поэтому тут можно говорить только о пикселях какого-то определённого цвета. Что тогда получается? Мы сверху ограничены временем реакции монитора. Это может быть частота обновления или время реакции - я об этом не думал, но подозреваю, что для ЖК актуальнее время реакции, а для ЭЛТ - частота обновления. Допустим пока, что мы сверху ограничены частотой обновления 85 Гц. Снизу мы, понятно, ничем не ограничены, можно сделать хоть 0,00001 Гц.

Получается, что по теореме Котельникова мы не можем иметь Fr, Fg, Fb больше Fобн./2. Это тоже понятно. Если, скажем, яркость пикселя каждого цвета изменяется по формуле Sin(ColorFreq * T), тогда мы просто ColorFreq задаём отдельно для каждого цветового канала, и формируем таким образом цвет пикселя. Дальше, если нам надо что-то интерактивно показать на экране, задача просто сводится к формированию видео в реальном времени; или же к рендерингу видео, если нам надо получить на выходе видеоролик.

По сути, автору надо просто создать надстройку над рендерером, которая бы динамически меняла цвет картинки.

241
10 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
Или вот ещё пример. Для простоты допустим, что у нас яркость каждого канала изменяется бинарно, а Fr/Fg и Fg/Fb = 0.5. Наиболее медленно у нас будет обновляться синий канал, наиболее часто - красный. Обновление красного канала происходит каждые 10 мс. В результате мы получим в каждый момент времени следующие цвета:
 
Код:
'T'   10    20  30  40  50  60  70  80  90
'Lr'    1   0   1   0   1   0   1   0   1
'Lg'    1   1   0   0   1   1   0   0   1
'Lb'    1   1   1   1   0   0   0   0   1

Заметьте, что каждый цветовой канал мерцает со своей частотой, при этом на экран выдаётся пиксель какого-то композитного цвета:
10 мс - белый
20 мс - голубой
30 мс - пурпурный
40 мс - синий
50 мс - жёлтый
60 мс - зелёный
70 мс - красный
80 мс - чёрный
90 мс - белый

Пример ужасно упрощённый, но суть показывает. Вы на уровне кода не знаете ничего о частоте обновления, ни об устройстве монитора, ни даже о способе цветосложения (у ЖК и ЭЛТ они разные), вы просто генерируете цвет пикселя по нужному вам закону.
241
10 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
формировать картинку в памяти 3-мя разными (синхронизированными между собой) потоками и при завершении каждого потока выводить ее на экран.

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

Цитата:
Можно и одним потоком, частоты-то кратны 10гц.

Не факт, что кратны 10 Гц. Более того, этому значению не кратна даже частота обновления моего монитора.

Цитата:
Кстати про проблемы с программистами в Алма-Аты.. Я вот тут знаю парочку..

А я таки даже не парочку. :) Давно уже сказано: "Ищущий да обрящет".:)

6
10 декабря 2008 года
George
4.1K / / 05.01.2007
а вот и мы :D
241
10 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
Цитата: Washington
а вот и мы :D

Это не флуд, это товарищ Washington напомнил миру о существовании ещё одного алматинского программиста. Поистине, V.G. несколько преувеличивает, говоря, что "в Казахстане проблемы с профессиональными программистами". Просто они в большинстве своём стоят денег.

14
10 декабря 2008 года
Phodopus
3.3K / / 19.06.2008
Цитата: Sanila_san
Не факт, что кратны 10 Гц.


Ну это я про конкретный пример и конкретное предложение с тремя потоками. Одним, имхо, лучше (на этот конкретный случай когда fg/fr и fb/fr целые) - сразу обновляется все составляющие. А тремя - синхронизация потребуется, по времени, что (к примеру в Windows) будет не лучшим вариантом.

1.9K
10 декабря 2008 года
andriano
474 / / 10.01.2008
Цитата: Sanila_san
Тут прикол в том, что мы в своём коде чаще всего не задаём яркость свечения каждого пятна люминофора на мониторе. Единственное, что мы можем регулировать - это яркость и цвет каждого отдельного пикселя. Всё остальное от нас так или иначе абстрагирует видеокарта. Поэтому же отпадает и привязка к частоте обновления: это тоже на уровне абстракции видеокарты.

Не вижу здесь никакой причинно-следственной связи. Способ синтеза (если исключить экзотические варианты типа ШИМ) ортогонален частотно-временным характеристикам. Т.е. ни один из этих факторов никак не зависит от другого.

Цитата:
Вас же не смущает, что при частоте обновления, скажем 85 Гц вы без напряжения и мерцания смотрите кино, в котором 25 к/сек?

Представь себе, то, что автоматически получается в кино, оказывается очень трудно достижимым при синтезе меняющегося изображения. Есть эффект, называемый motion blur, который с одной стороны обеспечивает достаточно реалистическое подвижное изображение, но в то же время приводит к тому, что каждый отдельный кадр получается неприемлемого качества. При синтезе мы получаем обратную картину - безупречные кадры приводят к неестественно движущемуся изображению.
В общем, восприятие кино - сложный психофизиологический процесс, который вряд ли можно с успехом имитировать простыми средствами.
Опять же, в том же кино прекрасно наблюдается эффект колес, вращающихся в противоположном направлении. Так. что говорить о том, что все проблемы решены в кино, - мягко говоря, слишком оптимистично.

Цитата:
Мы сверху ограничены временем реакции монитора. Это может быть частота обновления или время реакции - я об этом не думал, но подозреваю, что для ЖК актуальнее время реакции, а для ЭЛТ - частота обновления.

А я подозреваю, что для ЖК - сумма периода обновления и времени релаксации. Период обновления ведь никуда не девается - обновление изображения происходит не тогда, когда мы изменили содержимое видеопамяти, а тогода, когда видеоконтроллер "досканировал" до измененного фрагмента и послал соответствующее изображение экрану. Последнему, естественно, нужно время на изменение состояния (которым для ЭЛТ можно пренебречь)

Цитата:
Получается, что по теореме Котельникова мы не можем иметь Fr, Fg, Fb больше Fобн./2. Это тоже понятно.

Боюсь, теорема Котельникова-Шеннона здесь неприменима.
Человеческое ухо раскладывает поступающий сигнал по Фурье, поэтому две частоты, скажем, 10 и 11 кгц хотя и дают биения частотой 1 кгц, но воспринимаются ухом именно как две высокие частоты.
Глаз такой особенностью не обладает, поэтому, если на монитор с частотой обновления 60 гц подать сигнал с частотой 55 гц, то будет очетливое мерцание 5, и при этом, что ВАЖНО, человек не будет воспринимать глазом никаких других сумманых и разностных гармоник (ухо бы восприняло).

Цитата:
Если, скажем, яркость пикселя каждого цвета изменяется по формуле Sin(ColorFreq * T), тогда мы просто ColorFreq задаём отдельно для каждого цветового канала, и формируем таким образом цвет пикселя. Дальше, если нам надо что-то интерактивно показать на экране, задача просто сводится к формированию видео в реальном времени; или же к рендерингу видео, если нам надо получить на выходе видеоролик.

По сути, автору надо просто создать надстройку над рендерером, которая бы динамически меняла цвет картинки.


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

241
10 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
[QUOTE=Phodopus]Ну это я про конкретный пример и конкретное предложение с тремя потоками. Одним, имхо, лучше (на этот конкретный случай когда fg/fr и fb/fr целые) - сразу обновляется все составляющие. А тремя - синхронизация потребуется, по времени, что (к примеру в Windows) будет не лучшим вариантом.[/QUOTE]Да не надо трёх потоков. В конечном итоге всё равно видеокарта получает, грубо говоря, трёхбайтное целое число, обозначающее цвет; зачем огород городить с тремя потоками? Я например совершенно не вижу нужды считать тремя потоками каждый пиксель только на основании того, что используется модель RGB. "Синус омега тэ" прекрасно считается в одном потоке, просто по разу на каждый канал.

Просто автор попытался ввести нас в заблуждение усложнённым пониманием задачи. Она решается проще, примерно как я показал. Там ещё прилично всяких тонкостей с фреймрейтом вывода, частотами, выводом композитной информации и ещё чем-нибудь, о чём я даже догадаться не могу. Совершенно ясно, что тут никакой микроанимации нет, а задача сводится только к динамическому расчёту цвета. Мы же всё равно выводим на экран пиксели какого-то цвета, задача только в том, чтобы его правильно определить. Вообще было бы здорово, если бы автор как-нибудь подробнее всё описал, а то мне, например, не вполне понятно, как мерцание цветовых каналов может помочь в стереоскопии.

Меня вот что смущает: автор оперирует одноканальными пэлами. Может быть, у него квадрат окрашен не пикселями композитного цвета, а одноканальными пикселями, расположенными в какой-то последовательности, типа как dither в формате GIF? Если так, то тут тоже никакой проблемы нет: можно, скажем, посчитать по "синус омега тэ" значения элементов трёхмерного массива и просто потом вывести каждое из них в соответствующий пиксель. Ну, как пример. Интересно всё-таки было бы уточнить, что такое пэл в понимании автора, и как из них строится картинка.
241
11 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
Цитата: andriano
Не вижу здесь никакой причинно-следственной связи. Способ синтеза (если исключить экзотические варианты типа ШИМ) ортогонален частотно-временным характеристикам. Т.е. ни один из этих факторов никак не зависит от другого.

Я, собственно, к тому, что мы не управляем непосредственно тем, как монитор выводит сигнал. Для нас это абстрагирует видеокарта, и, кстати, электроника монитора. Замечание очевидное, просто я его сделал для того, чтобы сразу определить границы нашего влияния на формирование изображения. То есть, мы формируем довольно-таки высокоуровневую картинку, она состоит из пикселей. Грубо говоря, наша картинка логическая, а физическую мы сделать не можем. Нам это и незачем.:)

Цитата: andriano
Представь себе, то, что автоматически получается в кино, оказывается очень трудно достижимым при синтезе меняющегося изображения. … При синтезе мы получаем обратную картину - безупречные кадры приводят к неестественно движущемуся изображению.
В общем, восприятие кино - сложный психофизиологический процесс, который вряд ли можно с успехом имитировать простыми средствами.

А нам-то какая разница? Нам поставили довольно ясную задачу: организовать мерцание по цветовым каналам. О естественности изображения речи не было. :)

Цитата: andriano
Опять же, в том же кино прекрасно наблюдается эффект колес, вращающихся в противоположном направлении. Так. что говорить о том, что все проблемы решены в кино, - мягко говоря, слишком оптимистично.

Увы, ни решение проблем в кино, ни явление стробоскопии здесь к делу не относится.

Цитата: andriano
А я подозреваю, что для ЖК - сумма периода обновления и времени релаксации. Период обновления ведь никуда не девается - обновление изображения происходит не тогда, когда мы изменили содержимое видеопамяти, а тогода, когда видеоконтроллер "досканировал" до измененного фрагмента и послал соответствующее изображение экрану. Последнему, естественно, нужно время на изменение состояния (которым для ЭЛТ можно пренебречь)

Физика мониторов для данной задачи имеет значение только при определении верхней границы фреймрейта, с которым мы рендерим наше стереоизображение. Понятно, что верхняя граница его не может быть больше частоты обновления изображения на экране. Я думаю, что даже если ЖК-монитор имеет время реакции 3 мс, всё равно говорить о частоте обновления картинки больше 100 Гц не имеет смысла.

Цитата: andriano
Боюсь, теорема Котельникова-Шеннона здесь неприменима.
Человеческое ухо раскладывает поступающий сигнал по Фурье, поэтому две частоты, скажем, 10 и 11 кгц хотя и дают биения частотой 1 кгц, но воспринимаются ухом именно как две высокие частоты.
Глаз такой особенностью не обладает, поэтому, если на монитор с частотой обновления 60 гц подать сигнал с частотой 55 гц, то будет очетливое мерцание 5, и при этом, что ВАЖНО, человек не будет воспринимать глазом никаких других сумманых и разностных гармоник (ухо бы восприняло).

Собственно, теорему Котельникова-Шеннона я применил только и исключительно к отношению фреймрейта к частоте мерцания канала. Другой вопрос, что тут надо учитывать инерцию глаза. Жаль, что автор не указал примерные частоты мерцания, которые надо обеспечить. А то может быть у него нижняя граница на уровне 25 Гц. При том, что известные мне мониторы едва ли могут показывать больше 100 уникальных кадров в секунду, задача может оказаться вовсе неразрешимой при некоторых условиях.


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

Что такое субпиксели? Из описания автора не очевидно, как создаётся картинка. Я вот сначала расписал про мерцание каналов при расчёте цвета каждого логического пикселя, а потом вспомнил, что автор может формировать изображение
из одноцветных логических пикселей, чтобы их можно было рассматривать, например, через двухцветные очки. Насколько я помню, такая картинка содержит только два цветовых тона, но я не интересовался технологией стереоизображений и не знаю реально, что ещё придумано в мире на эту тему. Может быть изображение даже для двухцветных очков подразумевает наличие трёх цветовых тонов.

Что касается того, что я переформулировал задачу, так это я сделал для того, чтобы народ сразу не начал городить синхронизацию трёх потоков. Она там не нужна. Сама же задача в формулировке автора звучит достаточно расплывчато, чтобы можно было понять, какое решение допустимо, а какое нет. Что вы из условия автора знаете о том, как формируется картинка на уровне пикселей? Используется ли dithering пикселей по каналам, или же цвет пикселей композитный? Как эта картинка потом рассматривается? Каковы частоты мерцания каналов? Как предполагается выводить изображение - в реальном времени или в виде видеоролика? Тут слишком много загадок, чтобы дать готовое работающее решение.

40K
11 декабря 2008 года
V.G.
21 / / 05.12.2008
Необходимо управлять изменениями яркостью пэлов R,G,B индивидуально.При этом изменения яркостей не должны быть гармоническими (это принципиально).
Задача сделать пиксел бесцветным:ни черным ,ни белым, ни цветным.В биофизике- это эффект абсолютной слепоты или истинной слепоты мозга.

В зрительной системе цвет кодируется посредством нервных (электрических) импульсов цветовыми нейронами R,G,B. Код частотный.
Черный цвет кодируется случайным образом, т.е. в отсутствие светового воздействия нейроны R,G,B генерируют импульсы спонтанно и суммарный сигнал от нейронов в любой момент времени случаен.
Задача номер один- исключить режим генерации черного цвета (эффект "отсутствия черного").Именно для этого важно чтобы отношения частот сигналов управляющих яркостью пэлов R,G,B были постоянными (или почти постоянным).
40K
11 декабря 2008 года
V.G.
21 / / 05.12.2008
Один из важнейших разделов информатики (и биоинформатики также) –информационные конфликты.
Стандартное объяснение стереоскопии в литературе любого уровня - каждый глаз видит несколько иное изображение и это причина эффектов глубины пространства.
Более точно- при совмещении несколько различных изображений в зрительных полях мозга возникают локальные информационные конфликты: некоторые подъэлементы зрительной картины содержат разнородную информацию. И , как правило, это области границ объектов. Ширина области конфликта- признак глубины пространства.
Эффекты неоднозначности- еще один способ создать информационный конфликт. В настоящей задаче это решается на уровне пэлов R,G,B.
341
11 декабря 2008 года
Der Meister
874 / / 21.12.2007
[QUOTE=Sanila_san]Да не надо трёх потоков.[/QUOTE]Не надо.
Хотя можно привести систему к виду, где три активных объекта дадут некоторый выигрыш, сложность контроля над синхронизацией и ресурсоёмкость операции приведения системы к такому виду сделают козла не стоящим доения. Всё можно сделать гораздо проще.
Автор, в чём именно сложности? И платформа/операционка желательны.
1.9K
11 декабря 2008 года
andriano
474 / / 10.01.2008
Цитата: Sanila_san
Я, собственно, к тому, что мы не управляем непосредственно тем, как монитор выводит сигнал. Для нас это абстрагирует видеокарта, и, кстати, электроника монитора. Замечание очевидное, просто я его сделал для того, чтобы сразу определить границы нашего влияния на формирование изображения. То есть, мы формируем довольно-таки высокоуровневую картинку, она состоит из пикселей. Грубо говоря, наша картинка логическая, а физическую мы сделать не можем. Нам это и незачем.:)

Совершенно справедливо.
Причем это "не можем" относится и ко времени, когда произойдет изменение картинки.
Т.е. мы можем в любой момент изменить содержимое ячейки видеопамяти, отвечающее определенному пикселю и определенному цвету, но на экране это изменение произойдет лишь тогда, когда видеоконтроллер просканирует эту ячейку - не раньше и не позже.
А сканирует он ее один раз за кадр (т.е. 60-85 раз в секунду).
Если нас устраивает погрешность порядка 15 мс - все в порядке, если нет - боюсь, следует вообше отказаться от монитора и ридумывать для данной задачи какое-либо другое устройство отображения.

241
12 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
Что-то складывается у меня такое чувство, что мы тут на форуме сидим и бесплатно работаем высокооплачиваемую работу. Но это так, реплика в сторону

[QUOTE=andriano]…сканирует он ее один раз за кадр (т.е. 60-85 раз в секунду).
Если нас устраивает погрешность порядка 15 мс - все в порядке, если нет - боюсь, следует вообше отказаться от монитора и ридумывать для данной задачи какое-либо другое устройство отображения.[/QUOTE]Ага. А глаз у большинства людей не различает мерцание с частотой всего каких-то 25 Гц. Поэтому какая задержка нас реально устроит - вопрос открытый. Ещё более открытый вопрос - как бы нам сгенерировать картинку в режиме реального времени с фреймрейтом хотя бы вдвое большим максимальной частоты мерцания… а сколько это, 30 Гц или 50? Если вспомнить, что у нас в кадре наверняка не квадраты будут, а какая-то трёхмерная сцена с десятком тысяч полигонов, да с эффектами освещения, рассеивания и отражения… По-моему, при 40 fps такое не потянет даже Dual PCI-E.

И ладно бы в этом дело, а то ведь автор пишет увлекательные сообщения о том, как работает стереоскопическое зрение, но упорно умалчивает ответы на такие интересные вопросы, как, например:
1. Каков диапазон рабочих частот?
2. Что такое пэл?
3. Как надо рассматривать такую картинку?
4. Каковы требования к формату вывода?
5. Какое используется устройство вывода?
241
12 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
Автор, я смотрю, вообще любит загадки:
Цитата:
Необходимо управлять изменениями яркостью пэлов R,G,B индивидуально.При этом изменения яркостей не должны быть гармоническими (это принципиально).

Пусть они будут хоть пилообразными, их всё равно считать по какому-то определённому закону. И всё-таки, что такое пэл? Как автор представляет себе индивидуальное управление яркостью пэлов R, G, B?

Цитата:
В зрительной системе цвет кодируется посредством нервных (электрических) импульсов цветовыми нейронами R,G,B.

Боюсь, что модель Lab описывает цветное зрение человека точнее. Гадость в том, что она совершенно не похожа на RGB.

Цитата:
Более точно- при совмещении несколько различных изображений в зрительных полях мозга возникают локальные информационные конфликты: некоторые подъэлементы зрительной картины содержат разнородную информацию. И , как правило, это области границ объектов. Ширина области конфликта- признак глубины пространства.
Эффекты неоднозначности- еще один способ создать информационный конфликт. В настоящей задаче это решается на уровне пэлов R,G,B.

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

И ещё есть у меня подозрение, что мы так просто получим неразборчивую бесцветную картинку.

И вот что меня ещё смутило:

Цитата:
при совмещении несколько различных изображений в зрительных полях мозга возникают локальные информационные конфликты: некоторые подъэлементы зрительной картины содержат разнородную информацию. И , как правило, это области границ объектов. Ширина области конфликта- признак глубины пространства.

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

40K
12 декабря 2008 года
V.G.
21 / / 05.12.2008
Есть второй подход в решении задачи: определить возможности индивидуального управления яркостями пэлов R,G,B и разработать соответствующий алгоритм реализации программы.
Подход менее практичный и более сложный для конструктора. Но, как видиться мне, существующих аппаратных возможностей компьютеров достаточно для создания нужных эффектов.
Поэтому первый вопрос:
- Могут ли сигналы управляющие яркостями пэлов R,G,B иметь пилообразную форму с передним фронтом более крутым, чем задним?

В отношении бесплатной работы, любой может воспользоваться ее результатами по собственному усмотрению, необходимую информацию я предоставлю. Если есть другие предложения их можно обсудить (8-777-812-99-13,8-7272-570982).Проект коммерческий.

2.Пэл-подэлемент пиксела (П.Нортон «Внутренний мир персональных компьютеров»)
3.Обычно
4.Это определяет программист
5.Стандартные с ЖК- или OLED-мониторами.
Зрительная система обрабатывает не абсолютные значения цветов ,а их изменения (это принцип нейрофизиологии любых ощущений).Это очень сложная область ,постепенно постараюсь изложить все подробнее.
Ниже –для чего это все нужно.
40K
12 декабря 2008 года
V.G.
21 / / 05.12.2008
( графические редакторы нейронных эффектов )

1. Редакторы глубины пространства

Компьютерная графика создаваемая сегодня, как правило, плоская включая и объемные изображения в 3D формате. Использование более совершенных технологий для формирования “эффекта присутствия” ограничено в основном трудностями теоретического характера: несовершенностью теории монокулярного восприятия глубины пространства.

Существует три способа создания изображений в “реальном формате”:
а) Посредством стереоскопического эффекта.
б) Посредством двигательного параллакса.
в) Посредством эффекта неоднозначности.

2. Теоретические трудности

Согласно существующим представлениям, стереоскопическое зрение является основным и самым мощным инструментом при восприятии реального мира или его виртуальных аналогов. Монокулярные эффекты глубины относят к вспомогательным инструментам, действие которых не зависит от внешних физических феноменов, относится к чисто умозрительным эффектам и основывается на опыте и вычислениях в зрительных полях мозга.
Вместе с тем известно, что около шести процентов людей не обладают стереоскопическим зрением, не испытывая при этом никаких ограничений в восприятии реальности окружающего мира.Во-вторых, ”грубые” эффекты глубины можно создавать на обычном компьютере, посредством несложной анимации. И если в случае двигательного параллакса еще можно рассуждать о вычислительных процессах мозга, то в случае эффектов неоднозначности никакой явной информации для вычислений глубины пространства нет.



3.Нейронные эффекты неоднозначности


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

4.Эффекты неоднозначности в компьютерной графике

Несовершенство методов стерео и цветовой анимации не позволяет использовать их в компьютерной графике, за исключением демонстрации зрительных иллюзий.
При генерации компьютерной сцены на мониторе яркость цветовых точек пикселов изменяется синхронно. Это необходимо для синхронной работы RGB-нейронов сетчатки. Именно синхронная работа “цветовых” нейронов и позволяет мозгу идентифицировать цвет пиксела. При десинхронизации изменений яркости RGB-точек по контурам объектов рисунка появится ощущение пространственной реальности изображения.

5.Плюсы и минусы эффекта неоднозначности

Эффект неоднозначности при генерации реальных “изображений” удобен тем, что позволяет обходиться только программными средствами без технической модернизации компьютера. Его простоту также можно отнести и к существенным недостаткам:
I) возможность использования только в графических рисунках;
II) возможность использования только в статических компьютерных сценах;
III) изображения должны содержать ярко выраженные эффекты глубины пространства (как контурные так и цветовые).
Несмотря на отмеченные недостатки, эффекты неоднозначности являются мощным средством создания “эффекта присутствия”, не уступающего по качеству стереоскопическим технологиям в области графического рисунка.

Пример грубого эффекта неоднозначности в графике-
http://image012.mylivepage.com/chunk12/146666/165/roulette01.gif или
http://ozz.ru/index.php/topic,12275.696.html (файл roulette01)
241
12 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
Цитата: V.G.
2.Пэл-подэлемент пиксела (П.Нортон «Внутренний мир персональных компьютеров»)

Получается, что пэл - это аппаратная сущность где-то на мониторе, которая формирует пиксель. В ЖК-мониторах это триада светофильтров и соответствующих им ЖК-ячеек, а в OLED - элементарная светодиодная ячейка. То есть, логический пиксель состоит из как минимум трёх пэлов.

Цитата: V.G.
Есть второй подход в решении задачи: определить возможности индивидуального управления яркостями пэлов R,G,B и разработать соответствующий алгоритм реализации программы.


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

Цитата: V.G.
Подход менее практичный и более сложный для конструктора. Но, как видиться мне, существующих аппаратных возможностей компьютеров достаточно для создания нужных эффектов.

На этот вопрос невозможно ответить до тех пор, пока не сформированы количественные требования к выводу изображения.

Цитата: V.G.
Поэтому первый вопрос:
- Могут ли сигналы управляющие яркостями пэлов R,G,B иметь пилообразную форму с передним фронтом более крутым, чем задним?

Могут, почему бы нет. Другой вопрос, как вы собираетесь эту пилу формировать. Программно её можно эмулировать изменением яркости и цвета пикселей по нужному вам закону. Однако у нас есть ограничение, вызванное тем, что монитор формирует кадр циклически с какой-то частотой, и частота эта редко превышает 120 Гц, а чаще лежит в пределах от 60 до 85. Я не напрасно подтянул сюда теорему Котельникова-Шеннона: частота пилообразных колебаний, которые мы хотим эмулировать программно, не может быть в таком случае больше 30-42 Гц. На самом деле она будет ещё меньше, например, 20 Гц, если мы пилу дискретизируем до трёх значений. Достаточно ли трёх значений? Достаточно ли 20 Гц? Если да, тогда аппаратных возможностей хватит: фреймрейт 20 fps для статической картинки достижим.

Цитата: V.G.
3.Обычно

А за счёт чего левый и правый глаза получают разные изображения?

Цитата: V.G.
4.Это определяет программист

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

Цитата: V.G.
5.Стандартные с ЖК- или OLED-мониторами.

Замечательно. Учтите, что программно вы можете контролировать яркости пэлов только опосредованно: аппаратная часть для нас прямо не доступна. Более того, абстракция аппаратной части налагает ограничения, о которых я уже говорил. Если вы хотите подавать пилообразное напряжение на ячейки монитора, тогда никакой программист вам не поможет, равно как и имеющееся аппаратное обеспечение. Иначе говоря, если ваша задача решается в рамках ограничений абстракции аппаратной части, то можно писать программу. Если же ваша задача в этих условиях не решается, тогда вам надо делать монитор нестандартной конструкции. Я не уверен ещё, что из стандартных компонентов такой монитор может быть сделан.

Цитата: V.G.
Зрительная система обрабатывает не абсолютные значения цветов ,а их изменения (это принцип нейрофизиологии любых ощущений).Это очень сложная область ,постепенно постараюсь изложить все подробнее.

Зрительная система, насколько помню, обрабатывает сравнительные значения цветов, а не только их изменения. Например, если если у нас цвет равномерно залитого экрана на мониторе будет изменяться от ABCDEFh до FEDCBAh в течение суток, глаз будет замечать изменения в лучшем случае раз в полчаса, и то если монитор обеспечивает большой перепад яркостей. То есть зрительная система не реагирует на слишком частые и слишком редкие изменения цвета. С другой стороны, отличить два цвета, видимых одновременно, можно с очень высокой точностью. Полагаю, что вы это знаете, но остальным тоже может быть интересно.

1.9K
12 декабря 2008 года
andriano
474 / / 10.01.2008
1а. Субпиксели RGB и так управляются сугубо индивидуально. Для каждого из них отводится отдельная ячейка в видеопамяти (кроме устаревших режимов).
1б. Форма сигналов, управляющих яркостью, тебя никаким образом интересовать не должна. Это - конструктивные особенности дисплея, причем существенно различающиеся для разных видов дисплеев, формирующих одно и то же <движущееся> изображение.
2. Сейчас это называется субпикселем.
5. см. 1б.
Системы отображения проектируются, исходя из принципа минимазации избыточности. Т.е. диапазон частот, градаций яркости и т.п. ограничен так, что реализовать какие-то нестандартные режимы отображения, как правило, невозможно.
Поэтому я еще раз рекомендую указать конкретнве диапазоны изменения характеристик сигналов (временного и пространственного разрешения), чтобы мы могли попытаться оценить, реализуемы ли они на существующих (и перспективных) дисплеях или нет.
40K
13 декабря 2008 года
V.G.
21 / / 05.12.2008
Немного теории.
Любые ощущения можно представить общей формулой: мы видим то, что помним, мы слышим то, что помним и т.д. и т.д. и т.д.
В конце концов – мы есть то, что помним. На любом уровне.
Впрочем, на этих же принципах работает и компьютер.

Любая ячейка памяти предназначена для хранения однозначной информации: это может быть 0 или 1, либо 0,+1 или -1 в случае троичных компьютеров. Попытка разместить в ячейке памяти неоднозначную информацию окончится неудачей. Если, конечно, предварительно не определить приоритет в неоднозначности.
В итоге ячейка окажется «пустой». Этим же заканчиваются попытки разместить в ячейках памяти мозга неоднозначную информацию от глаз. «Пустые» ячейки в зрительной памяти мозга- информация для вычисления контуров физических объектов. (Несколько образно, но суть передана)

И следующие вопросы:
1.Насколько крутым может быть передний фронт пилообразного сигнала? Как я понимаю, здесь может быть как min так и max значений в зависимости от уровня яркости.
2.Возможно ли промодулировать пилообразный управляющий сигнал? Т.е. можно ли задать значения яркостей пиков по определенному закону?
40K
13 декабря 2008 года
V.G.
21 / / 05.12.2008
И еще немного теории.(Это необходимо,чтобы мы понимали друг друга)
Цветовые модели -математический инструмент, с помощью которого можно рассчитать и построить любой цвет и оттенок (иначе: как можно точнее отобразить реальность).
Если реальность не отображать, а создавать виртуально ,то и модели необходимы виртуальные.
Пример- иллюзорные (фейхнеровские) цвета ,создаваемые посредством диска Бэнхэма. Ни одна из цветовых моделей не годиться для их описания.
До настоящего времени нет теоретического обоснования для генерации такого рода цветов, хотя и секрета большого тоже нет. Обычная физика.И это можно создавать посредством компьютера.Т.е. для того,чтобы обмануть мозг (в самом простом случае) нужна не супертехника,а нестандартный подход и понимание сути происходящих процессов.

Постепенно я буду отвечать на все поставленные Вами вопросы.
40K
13 декабря 2008 года
V.G.
21 / / 05.12.2008
И просьба личного характера. У меня есть родственник. Хочу сделать из него программиста для решения такого рода задач.(Посредством видеосистемы компьютера можно создавать не только иллюзии глубины, но и звуков и запахов, тактильных и вкусовых ощущений, тепла и холода и т.д. Невероятно, но это научный факт).
Помогите советом -с какой литературы начинать. Направление – индивидуальное управление пэлами (подэлементами пиксела).

Да, и учитывайте пожалуйста, что уровень познания в области программирования нулевой (т.е. суперчайник).
1.9K
13 декабря 2008 года
andriano
474 / / 10.01.2008
Цитата: V.G.
И следующие вопросы:
1.Насколько крутым может быть передний фронт пилообразного сигнала? Как я понимаю, здесь может быть как min так и max значений в зависимости от уровня яркости.
2.Возможно ли промодулировать пилообразный управляющий сигнал? Т.е. можно ли задать значения яркостей пиков по определенному закону?


1, Если сигнал пилообразный, то крутизна равна бесконечности. По определению. Если же тебя интересует не идеальныйЮ а какой-то реальный сигнал, то он должен иметь источник, а у источника есть свойства. Поэтому чтобы оценить параметры реального сигнала, нужно, минимум, что-то знать о его источнике.
2. А какая связь между формой абстрактного сигнала и яркостью? Что тебя вообще интересует? Отклик устройства отображения на пилообразный сигнал? Какого устройства? Если пикселя стандартного монитора, то ни на один пиксель там пилообразного сигнала не подается и подаваться не может.

PS. И перестань называть субпиксели пэлами. Нету такого термина в компьютеной технике, это исключительно фантазии не особо грамотного переводчика на заре перестройки.

1.9K
13 декабря 2008 года
andriano
474 / / 10.01.2008
Цитата: V.G.
Направление – индивидуальное управление пэлами (подэлементами пиксела).

Для существующт устройств это невозможно. Нужно либо проектировать собтвенное устройство, которое это допускало, либо считаться с ограничением существующих систем.
А они таковы:
каждому субпикселю соответствует обычно (т.е. в режимах видеоконтроллера, предназначенных для качественной работы с цветом)один байт в видеопамяти. Байт может принимать 256 различных значений. Теоретически такое же количество значений яркости должен принимать и субпиксель, но есть ряд ограничений. В частности:
- нелинейность передаточной характеристики.
- ограниченная разрядность матрицы.
- конечное время установления.
Наиболее интересная - ограниченная разрядность матрицы: у ВСЕХ TN матриц разрядность не превосходит 6, а количество отображаемых градаций, соответственно, 64. Чтобы эмулировать 256 (на самом деле 252) градаций субпиксель заставляют мигать между двумя соседними уровнями с частотой 15 или 30 Гц.
Кроме того, обновление состояния субпикселя происходит не сразу, а, во-первых, синхронно с процессом сканирования видеопамяти видеоконтроллером 60-85 раз в секунду. Во-вторых, ЖК имеют определенную инерционность, т.е. изменение имеет еще дополнительную задержку. В-третьих, т.к. технически нельзя сделать эту задержку менее примерно 10 мс, применяют хитрую технику, заключающуюся в том, что при, скажем, увеличении яркости на субпиксель в течение короткого времени подается повышенный уровень сигнала, за счет чего изменение яркости происходит быстрее. Но идеальной балансировки добиться не удается - за счет разброса параметров часть субпикселей не успевают дойти до нужной яркости за время импульса, а другоие, наоборот, "проскакивают" это значение. Это в идеале. Реально у всей матрицы может наблюдаться либо "неуспевание", либо "проскакивание", притом различное для разных пикселей.

Цитата:
Да, и учитывайте пожалуйста, что уровень познания в области программирования нулевой (т.е. суперчайник).

Ну тогда его надо независимо натаскивать в двух областях:
- программирование,
- биофизика и математика.

241
14 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
[QUOTE=V.G.]1.Насколько крутым может быть передний фронт пилообразного сигнала? Как я понимаю, здесь может быть как min так и max значений в зависимости от уровня яркости.
2.Возможно ли промодулировать пилообразный управляющий сигнал? Т.е. можно ли задать значения яркостей пиков по определенному закону?[/QUOTE]Передний фронт - тавтология, в русскоязычной технической литературе принято говорить о фронте и спаде - фронтом импульс начинается, спадом заканчивается. Вероятно, вы и сами понимаете, что если работать только с имеющимися средствами, то у нас имеются некоторые ограничения частоты отображения сигнала. То есть, при небольших частотах фронт можно сделать достаточно крутым. Однако надо помнить, что имеющимися средствами пилообразное колебание можно только эмулировать, притом довольно грубо. Если верить andriano, то для TN-матриц таких уровней не может быть больше 6, а по моим прикидкам их вообще только 3, если говорить о максимально возможной частоте.

Соответственно, модулировать такие колебания по амплитуде возможно, однако - тоже в рамках имеющихся ограничений.

[QUOTE=V.G.]Если реальность не отображать, а создавать виртуально ,то и модели необходимы виртуальные.
Пример- иллюзорные (фейхнеровские) цвета ,создаваемые посредством диска Бэнхэма. Ни одна из цветовых моделей не годиться для их описания.[/QUOTE]Вы хотите сказать, что такие цвета не могут быть зафиксированы видеокамерой? Хорошо. Но говорить о виртуальных цветовых моделях я бы на нашем уровне абстракции не стал. К тому же диск Бэнхема использует вполне реальную цветовую модель, например, CMYK. (Только не пинайте ногами за то, что CMYK позволяет давать не только чёрно-белые изображения. Я это и сам знаю.)

Я это к тому, что создавать реальность виртуально надо всё же с помощью реальных средств, в том числе и цветовых моделей. Собственно, пока мы работаем с монитором, мы всё равно отображаем все цвета в RGB.

[QUOTE=V.G.]И просьба личного характера. У меня есть родственник. Хочу сделать из него программиста для решения такого рода задач. …
Помогите советом -с какой литературы начинать. Направление – индивидуальное управление пэлами (подэлементами пиксела).

Да, и учитывайте пожалуйста, что уровень познания в области программирования нулевой (т.е. суперчайник).[/QUOTE]А что он уже умеет? Если он уже так или иначе биофизик, тогда следует учить его программированию, но я не уверен, что можно обойтись одной литературой, ибо требования достаточно высоки. Я не знаю, как вы решите вопрос с программой обучения. По оптимистической оценке, интенсивное обучение займёт года три, правдоподобная оценка - лет пять. Можете, как вариант, отправить его в МФТИ, там и факультет есть, и опыт обучения по таким нестандартным направлениям. В любом случае, это займёт много времени.

По поводу индивидуального управления субпикселями могу только сказать, что если вы хотите управлять ими совсем произвольно, то ваша задача усложняется и выходит за рамки, решаемые программированием.
40K
15 декабря 2008 года
V.G.
21 / / 05.12.2008
В отношении диска Бэнхэма. Цветовая модель R, G, B не позволяет получить красный (например) цвет чередованием (можно ли здесь вообще говорить о смешении ) цветов черного и белого. Мы не можем также говорить и о цветовычитании : все световые волны (вне зависимости от частоты) качественно равны.

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

И важное замечание в отношении зрительного восприятия.
Фоторецепторы реагируют не на частотные параметры волны (это слишком нерационально и требует скоростного режима детектирования и анализа сигналов), а на давление. Именно это позволяет создавать иллюзию смешения цветов.
Грубо говоря ,фоторецептор –это манометр.
40K
15 декабря 2008 года
V.G.
21 / / 05.12.2008
И Ваше отношение к следующему совету:

Фактически, мощностей соверменных ЭВМ вполне достаточно, чтобы получать достаточно гладкие кривые яркостей по любым составляющим цвета. Лишь бы монитор физически справлялся. Тут уже все зависит от конкретной модели.
Windows как бы абстрагирует программиста от характеристик железа, но в тот же момент дает достаточно узкие стандартные инструменты для управления этими мощными ресурсами. Поэтому нужно копать в сторону либо написания собственного софта под конкретную железку, на которой нет виндовса, либо в сторону DirectX — для более тесного общения с видеокартой, которая как раз и умеет делать все быстро и на высоком уровне.
40K
15 декабря 2008 года
V.G.
21 / / 05.12.2008
И еще одно мнение.Ваши комментарии.

1. В среднем для хороших мониторов порядка 1-2 мс, хотя длительность фронта изменения яркости зависит от уровня яркости и его перепада, а также направления этого перепада и, естественно, от модели монитора (разные ЖК матрицы). Дело не в длительности фронта электрического сигнала, подаваемого на ячейку матрицы, а в инерционности самой жидкокристаллической ячейки. Однако после переключения на новый уровень яркости он будет оставаться постоянным вплоть до нового переключения через 1/60 с. Яркость пикселов в течение этого периода нельзя менять плавно, новое обращение к ячейке до истечения этого интервала времени не предусмотрено схемами мониторов и перепрограммировано быть не может (разве что разработкой специальных моделей мониторов).
2. Значения яркостей можно задать с дискретностью 1/60 с. Как правило, у мониторов имеется возможность задавать их с частотой до 60-85 Гц (зависит от модели монитора), но монитор не обязательно будет переключать пикселы с этой частотой, он может все равно интерполировать ее в стандартные 60 Гц. Управляющий сигнал, даже если он пилообразный, все равно будет дискретизироваться с этой частотой. Будут ли это истинные , скажем, 85 Гц или интерполяция в 60 Гц, производителями мониторов обычно скрывается, это "ноу-хау" изготовителя монитора.
Иначе говоря, значения яркостей пиков можно задать по определенному закону, но с дискретностью в 1/60 с, при этом на каждом интервале яркость будет постоянной, за исключением переходных процессов изменения яркости длительностью примерно по 1 мс. То есть "пики" обязательно будут площадками.
241
15 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
[QUOTE=V.G.]Фоторецепторы реагируют не на частотные параметры волны (это слишком нерационально и требует скоростного режима детектирования и анализа сигналов), а на давление. Именно это позволяет создавать иллюзию смешения цветов.
Грубо говоря ,фоторецептор –это манометр.[/QUOTE]IMHO, слишком грубое и неточное упрощение. Вы бы писали чуть более ясно, а то остаются загадки, например, с давлением. Вы давление света имеете в виду?

[QUOTE=V.G.]Если невозможно реализовать необходимый режим работы аппаратно, можно ли его эмулировать? Ведь задача не в том ,чтобы изменять напряжение на электродах субпикселя при сканировании обязательно пилообразно, а создать иллюзию такого процесса.[/QUOTE]Повторю ещё раз: эмулировать возможно, однако - в рамках ограничений, которые нам создаёт техника. Я вам уже рассказывал, как это делается и в каких пределах. Даже привёл способ, как можно реализовать нужный алгоритм: вы реализуете расчёт яркости в каждом цветовом канале в единицу времени по нужному вам закону, будь то синусоида, пила или меандр, в результате получаете цвет, который надо вывести на экран. Вот и вся эмуляция.

[QUOTE=V.G.]В отношении диска Бэнхэма. Цветовая модель R, G, B не позволяет получить красный (например) цвет чередованием (можно ли здесь вообще говорить о смешении ) цветов черного и белого. Мы не можем также говорить и о цветовычитании : все световые волны (вне зависимости от частоты) качественно равны.[/QUOTE]Я вообще-то говорил о том, что диск Бэнхема может быть адекватно описан и воссоздан при помощи модели CMYK. А насчёт чередования RGB - так тоже никакой проблемы нет, чередуйте красный и белый, или красный и чёрный. ;) И опять же, я бы не стал говорить о модели RGB применительно к глазу.

[QUOTE=V.G.]И Ваше отношение к следующему совету:

Фактически, мощностей соверменных ЭВМ вполне достаточно, чтобы получать достаточно гладкие кривые яркостей по любым составляющим цвета. Лишь бы монитор физически справлялся. Тут уже все зависит от конкретной модели.
Windows как бы абстрагирует программиста от характеристик железа, но в тот же момент дает достаточно узкие стандартные инструменты для управления этими мощными ресурсами. Поэтому нужно копать в сторону либо написания собственного софта под конкретную железку, на которой нет виндовса, либо в сторону DirectX — для более тесного общения с видеокартой, которая как раз и умеет делать все быстро и на высоком уровне.[/QUOTE]Моё отношение к этому совету хорошее. :) Правда, видеокарта таки не умеет работать на высоком уровне, если только вы не имели в виду уровень качества. :) Насчёт узости инструментов Windows я бы поспорил, поскольку не всё так плохо, как хотелось бы. Копать в сторону написания собственного софта под конкретную железку, на которой нет виндовса - это значит поставить себе задачу чудовищной сложности: представьте себе написать HAL для данной конкретной видеокарты (вы же не будете всегда писать ваши программы на ассемблере), исследовать кучу мониторов на предмет пригодности их в ваших нуждах, написать ОС заново… Ваша задача стоит таких затрат?

А что до копания в сторону DirectX - так кто мешает? Только сразу учтите, что DirectX - это ещё одна абстракция над видеокартой, так что слишком сблизиться не получится. Хотя, конечно, возможностей всё одно больше, чем в классе System.Drawing.

[QUOTE=V.G.]И еще одно мнение.Ваши комментарии.

1. В среднем для хороших мониторов порядка 1-2 мс, хотя длительность фронта изменения яркости зависит от уровня яркости и его перепада, а также направления этого перепада и, естественно, от модели монитора …[/QUOTE]Это надо подкреплять данными измерений, а не голословными рассуждениями, так что осциллограф вам поможет. Заодно и откроет истину на имеющиеся инструментальные возможности.

[QUOTE=V.G.]2. Значения яркостей можно задать с дискретностью 1/60 с. Как правило, у мониторов имеется возможность задавать их с частотой до 60-85 Гц (зависит от модели монитора), но монитор не обязательно будет переключать пикселы с этой частотой, он может все равно интерполировать ее в стандартные 60 Гц.[/QUOTE]Опять же, осциллограф вам в руки. Мне это утверждение пока что кажется ни на чём не основанным.
40K
16 декабря 2008 года
V.G.
21 / / 05.12.2008
"Грубо говоря,фоторецептор- это манометр"-образ,действительно,чрезмерно грубый, но это один из инструментов представления каких- либо феноменов( иногда чрезмерная детализация вводит в заблуждение).
Чтобы говорить о давлении света необходимо начинать с его волновой структуры и кинематики волны. Пока дуализм фотона (а это научный факт) не обоснован теоретически,хотя и проблем тут больших нет. Но об этом чуть позднее (тема сложная и интересная).

Частота сканирования пикселов в видеосистеме задается таймером. При этом существующие стандартные частоты не привязаны аппаратно,т. е. их можно изменить При этом сканирование можно задавать не одним, а тремя таймерами, для каждого подъэлемента пиксела отдельно. При этом, в принципе, возможна реализация любого числа таймеров для задания нужных режимов сканирования.
Если я не ошибаюсь, возможности процессора позволяют сканировать пикселы и с большей частотой, чем принято и ограничения накладываются только временем отклика, т. е. техническими возможностями монитора.
Используя необходимое количество таймеров, мы можем задавать режимы сканирования подъэлементов пиксела индивидуально?
40K
16 декабря 2008 года
V.G.
21 / / 05.12.2008
Ваше отношение к следующему совету:

Это в целом правильное описание, хотя можно сделать некоторые замечания.
а) Задержка 10 мс только характеризует инерционность ЖК ячейки при подаче на нее постоянного сигнала. За счет упомянутой "хитрой техники", хотя в ней нет ничего хитрого, она сводится к действительным 1-2 мс, хотя, как я уже отметил раньше, это время сильно зависит от перепада яркостей.
б) "у ВСЕХ TN матриц разрядность не превосходит 6". Это так, но в мониторах применяются не только TN-матрицы, они характерны только для дешевых мониторов. В более дорогих применяются, например, матрицы IPS, обеспечивающие "честные" 24 бита на каждую точку, или матрицы PVA, которые выпускаются, насколько мне попадалось, и такие, и этакие . Кроме того, навряд ли Вас точная цветопередача очень волнует, Вы вполне можете ограничиться 262 тыс. цветов "честной цветопередачи" даже для TN матриц (TN, PVA, IPS - типы матриц, они отличаются по устройству ячеек).
Вообще же, как для практически всех устройств, управляемых электроникой, используется возможность "электронных мозгов" этих устройств компенсировать несовершенства механической или химической технологии. ЖК монитор выполняет огромное количество расчетов по коррекции цветовой температуры изображения, компенсации нелинейности характеристик жидкокристаллических ячеек, динамическому изменению контраста изображения и т.п. Это далеко не простое управление яркостью каждой ячейки подачей на нее пропорционального требуемой яркости напряжения.
Однако я не понимаю, почему Вы считаете, что индивидуальное управление пэлами невозможно. Именно так строится передача изображения от компьютера монитору - индивидуальным управлением пэлами. А каким образом передаются команды каждому пэлу - это внутреннее дело используемой технологии, Вам совсем не нужно знать устройство этого "черного ящика". Вам, насколько я понимаю, достаточно знать, что дискретность изменения яркости пэлов составляет 1/60 c, а фронты кривой изменения яркости - порядка единиц миллисекунд.
341
16 декабря 2008 года
Der Meister
874 / / 21.12.2007
[QUOTE=V.G.]Используя необходимое количество таймеров, мы можем задавать режимы сканирования подъэлементов пиксела индивидуально?[/QUOTE]У меня в телевизоре три мамы-колокольчика: R, G и B. А из дивидюшника идут три соответствующих папы.
Чё привязались к дискретным устройствам?
241
17 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
[QUOTE=V.G.]Пока дуализм фотона (а это научный факт) не обоснован теоретически,хотя и проблем тут больших нет. Но об этом чуть позднее (тема сложная и интересная).[/QUOTE]Смею заметить, что это к делу не относится.

[QUOTE=V.G.]…существующие стандартные частоты не привязаны аппаратно,т. е. их можно изменить При этом сканирование можно задавать не одним, а тремя таймерами, для каждого подъэлемента пиксела отдельно.[/QUOTE]Виктор, а вы можете это подтвердить кодом? Какие таймеры? ОС вообще не занимается генерацией изображения на экране с частотой 60 Гц, этим занимается видеокарта; на уровне ОС нет таймеров обновления экрана, есть только спецификация для видеокарты - отображать картинку с такой-то частотой.

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

[QUOTE=V.G.]Используя необходимое количество таймеров, мы можем задавать режимы сканирования подъэлементов пиксела индивидуально?[/QUOTE]Если вы сами спаяете видеокарту нужной вам архитектуры, сами изобретёте коннектор для передачи такого видеосигнала в монитор, сами придумаете монитор с полностью независимым сканированием трёх каналов - тогда это возможно в том виде, в каком вы это описали.

[QUOTE=V.G.]Если я не ошибаюсь, возможности процессора позволяют сканировать пикселы и с большей частотой, чем принято и ограничения накладываются только временем отклика, т. е. техническими возможностями монитора.[/QUOTE]Процессор, который CPU, тут вообще не при чём. Обычно монитор сам сообщает свои рабочие режимы, но дело даже не в этом. Яркий пример - мой домашний компьютер. У меня есть встроенная видеокарта с 32 Мб памяти и скромным графическим процессором (не помню каким), и есть "навесная", у неё 128 Мб памяти и процессор помощнее в разы. Так вот, при одном и том же мониторе, CPU и ОС внутренняя видеокарта позволяет осилить только 60 Гц при довольно скромной скорости перерисовки изображения, а внешняя –позволяет использовать 85 Гц и ничего не тормозит. Поэтому тут возможности процессора могут ограничивать вас только в возможности вовремя поставлять нужное количество данных процессору видеокарты.

[QUOTE=V.G.]Однако я не понимаю, почему Вы считаете, что индивидуальное управление пэлами невозможно. Именно так строится передача изображения от компьютера монитору - индивидуальным управлением пэлами.[/QUOTE]Так, да не так. Пэлами управляет сам монитор. Например, по интерфейсу VGA сигнал вообще аналоговый, там адресуемых пикселей нет, соответственно, нет и адресуемых субпикселей, пэлов, точек и чего угодно.

[QUOTE=V.G.]Вам, насколько я понимаю, достаточно знать, что дискретность изменения яркости пэлов составляет 1/60 c, а фронты кривой изменения яркости - порядка единиц миллисекунд.[/QUOTE]Не пэлов, а пикселей.;) Фронты изменения яркости - вопрос спорный, а дискретность изменения яркости - да, порядка 60 Гц. Пилообразный сигнал может быть воссоздан с частотой до 20 Гц.
40K
17 декабря 2008 года
V.G.
21 / / 05.12.2008
«Смею заметить ,что это к делу не относится»- Смею не согласиться.
При нейрокодировани к делу относиться все, весьма тонкая сфера и приходиться учитывать большое количество факторов, как внешних так и внутренних.
Задача- нейрокодирование ,а не правильная цветопередача. При этом мы имеем дело с статической компьютерной сценой, в которой 99% пикселов используется для отображения графической информации , а 1% для нейрокодирования. Для отображения графики достаточно «однотактного» сканироваеия пикселов, далее необходимо сканировать только 1%.
Поэтому, если в существующих системах отсутствуют необходимые механизмы, их нужно эмулировать.
Пока постараюсь разобраться с указанными интерфейсами. Варианты должны быть.

Ниже немного теории, надеюсь не бесполезной.


Дуализм фотона.
Существует два подхода в объяснении этого феномена (исключая официальный).
Первый изложен в книге Пруссова «Физика эфира» ,где электромагнитная волна представлена нитью, состоящей из винтовых вихревых тороидов и изогнутой в пространстве.
Второй отражен в работах Н. Теслы, утверждавшего, что электромагнитные волны, суть звуковые волны в эфире (физическом вакууме).
Объединив два подхода получим: электромагнитная волна- это вихревая нить, в которой возбуждаются упругие продольные волны.Кинематика волны определяет корпускулярные феномены, продолные упругие волны- волновые.
Следовательно,в световой волне имеется три вида движений (при желании их можно насчитать значительно больше): движение вихревых тороидов в направлении распространения волны, движение упругих сжатий в этом же направлении,обратный вихревой поток через керны тороидов…Следствие –возникновение трех компонент давления при взаимодействии световой волны с материальным объектом.
Важно, что размеры вихревых тороидов ,составляющих нить определяют диапазон ее частотных параметров, т.е. в «красной» вихревой нити невозможно возбудить «синие» волны и наоборот (в этом причина физического несмешения световых волн).
Грубо электромагнитная волну можно изобразить посредством стальной пружины ,вращающейся с большой скоростью вдоль которой движутся упругие волны , возбуждаемые постукиванием по его концу.
Комбинируя соотнешения этих трех компонент давления можно кодировать практически любую информацию представленную в нейронных сетях
1.9K
20 декабря 2008 года
andriano
474 / / 10.01.2008
V.G.
у меня создается впечатление, что Вы не понимаете знечения термина "эмулировать".
Поясню на примере.
Пусть у нас есть лкгковушка и нам надо перевезти куб песа из одного места в другое.
Если бы у нас был грузовик, то мы погрузили бы песок в кузов и перевезли его за один рейс.
На легковушке же придется совершить рейсов 20, возя по несколько ведер за раз.
Вот наши 20 поездок на легковушке - это эмуляция одного рейса грузовика.
Но если нам надо доставить груз на Луну (или переправить на остров), то ни о какой эмуляции при помощи легковушки речи быть не может - летать она не умеет.
Другими словами, существует множество вещей, которые не позволяет сделать аппаратура, а поэтому не может быть и никакой эмуляции.

Далее.
Вам уже несколько раз пытались рассказать, как именно устроена аппаратура стандартного тракта процессор-видеокарта-дисплей, но Вы, судя по всем, не поняли или не восприняли.
Попытаюсь еще раз в некотором приближении, не влияющем на основные принципы функционирования.
У нас есть видеопамять, состоящая из отдельных ячеек. Будем считать, что каждая ячейка соответствует одному субпикселю изображения.
Видеопамять доступна с двух сторон. Можно считать, что с одной стороны она доступна на запись, а с другой - на чтение.
Там, где "чтение" - видеоконтроллер. Он сканирует содержимое видеопамяти и считанные значения отображает на экране.
Там, где "запись" - CPU и GPU. Вот такая интересная кнфигурация: разные части видеокарты оказались по разную сторону от видеопамяти: видеоконтроллер - с одной, а графический процессор - с другой. Из этого следует, кстати, интересный вывод: т.к. CPU и GPU находятся по одну сторону, то один из них может эмулировать функции другого, т.к. видеопамять не знает, кто именно записал в нее то или иное значение.
Любой из процессоров может писать в любую яцейку видеопамяти любое число. Причем в любое время и с любой частотой - хоть миллион раз в секунду.
Но изображение на экране формируется видеоконтроллером, который опрашивает ячейку ТОЛЬКО при сканировании. Т.е. ячейка, благодаря процессору, может как угодно менято свое содержимое, но на экране окажется только то значение, которое было в этой ячейке в момент опроса ее видеоконтроллером. То, что было в ней до этого, и то, что будет после - никакого значеия для изображения иметь не будут. А сканируется каждая ячейка только каждую 1/60 (или 1/85) долю секунды.
Ну, на это еще накладывается инреционность самих ячеек, но главное - в промежутке меду сканированиями никак повлиять на изображение мы не можем. Это аппаратное ограничение. Примерно так же, как то, что автомобили не умеют летать.

Впрочем, никто не мешает создать летающий автомобиль, равно как и компьютерное устройство отображения, основанное на ином принципе управления, нежели сейчас. Но - только так: принципиально новое устройство.
241
20 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
Присоединюсь к andriano: у нас есть конкретная система, которая имеет свои ограничения, главное в данном случае - максимальный framerate, который по грубой оценке не превышает 30 fps.

Второе ограничение из разряда "не баг, но фича" - отсутствие возможности абсолютно индивидуального управления яркостью субпикселей, поскольку они управляются независимо только по уровню одновременно всей триадой. Можно эмулировать пилообразное колебание яркости в каждом цветовом канале, но частота таких колебаний будет невелика, не более 30 Гц по самой оптимистичной оценке.

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

Резюме: если вас устраивает ограничение по фреймрейту, тогда ваша задача решается так, как я в общем виде описал.. Если вас такой фреймрейт не устраивает, вы можете сделать на основе той же OLED-матрицы своё устройство отображения, которое будет удовлетворять вашим параметрам.
241
20 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
Ах да. К своему монитору придётся делать ещё и свой GPU. :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог