Здравствуйте, stonehenge.architecture.01, Вы писали:
SA0>Изображение из соображений гуманности не показано.
Если вопрос о том, что нужно считать этот файл, создать того же размера буфер и скопировав все биты, сохранить, то самой короткой операцией будет копирование памяти.
Если нужно создать новый файл с теми-же параметрами, то ответ примерно тот-же: создать и показать картинку будет много быстрее, чем её сохранить.
Re: За какое время можно повторить рисунок? (большой картинк)
Здравствуйте, stonehenge.architecture.01, Вы писали:
>За какое время можно повторить рисунок?
Если положиться на рандом — практически моментально, всего 2^(4802*2401) итераций в худшем случае.
Re[2]: За какое время можно повторить рисунок? (большой картинк)
Здравствуйте, Географ, Вы писали:
Г>Здравствуйте, stonehenge.architecture.01, Вы писали:
SA0>>Изображение из соображений гуманности не показано.
Г>Если вопрос о том, что нужно считать этот файл, создать того же размера буфер и скопировав все биты, сохранить, то самой короткой операцией будет копирование памяти.
Потому-что её нельзя сжать?
Re[2]: За какое время можно повторить рисунок? (большой картинк)
Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, stonehenge.architecture.01, Вы писали:
>>За какое время можно повторить рисунок? S>Если положиться на рандом — практически моментально, всего 2^(4802*2401) итераций в худшем случае.
У меня 7^8 шагов вычислений по формуле a[i+8]=(4*a[i+0]+1*a[i+2]+4*a[i+3]+2*a[i+5]+a[i+7]) mod 7. (остаток от деления на 7)
Это занимает 10 секунд на цикл. У меня эту процедуру нужно производить для каждой классифицируемой точки.
Можно как-то оптимизировать алгоритм что-бы было не больше 10 миллисекунд?
Re[3]: За какое время можно повторить рисунок? (большой картинк)
Здравствуйте, stonehenge.architecture.01, Вы писали:
SA0>Здравствуйте, Sinix, Вы писали:
S>>Здравствуйте, stonehenge.architecture.01, Вы писали:
>>>За какое время можно повторить рисунок? S>>Если положиться на рандом — практически моментально, всего 2^(4802*2401) итераций в худшем случае.
SA0>У меня 7^8 шагов вычислений по формуле a[i+8]=(4*a[i+0]+1*a[i+2]+4*a[i+3]+2*a[i+5]+a[i+7]) mod 7. (остаток от деления на 7)
SA0>Это занимает 10 секунд на цикл. У меня эту процедуру нужно производить для каждой классифицируемой точки.
SA0>Можно как-то оптимизировать алгоритм что-бы было не больше 10 миллисекунд?
Распараллелить, если Вы уверены что правильно работаете с картинкой.
Всякий GPGPU с такой задачей может справится.
Re: За какое время можно повторить рисунок? (большой картинк)
Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, stonehenge.architecture.01, Вы писали:
M>Изложите вопрос более подробно.
Есть некая формула для построения большой случайной картинки какую я показал. Формула сильно медленная, но результат хороший и его можно применять для тестирования мониторов. Тест пройдёт далеко не каждый монитор, у некоторых будет искажения этой однородной картинки при разном разрешении.
Здравствуйте, stonehenge.architecture.01, Вы писали:
SA0>Здравствуйте, minorlogic, Вы писали:
M>>Здравствуйте, stonehenge.architecture.01, Вы писали:
M>>Изложите вопрос более подробно.
SA0>Есть некая формула для построения большой случайной картинки какую я показал. Формула сильно медленная, но результат хороший и его можно применять для тестирования мониторов. Тест пройдёт далеко не каждый монитор, у некоторых будет искажения этой однородной картинки при разном разрешении.
Уже хорошо. Если еще разъяснить ваши слова из сообщения выше, то будет совсем хорошо:
"Это занимает 10 секунд на цикл. У меня эту процедуру нужно производить для каждой классифицируемой точки."
Что такое "цикл" и что такое "классифицируемая точка"?
P.S.
Стандартный ответ на вопросы, который сформулированы как ваш, — "телепатов здесь нет". Конечно это грубо... Но чем полнее и интересней сформулирован вопрос, тем больше и лучше будет ответов.
Здравствуйте, Serg27, Вы писали:
S>Здравствуйте, stonehenge.architecture.01, Вы писали:
SA0>>Здравствуйте, minorlogic, Вы писали:
M>>>Здравствуйте, stonehenge.architecture.01, Вы писали:
M>>>Изложите вопрос более подробно.
SA0>>Есть некая формула для построения большой случайной картинки какую я показал. Формула сильно медленная, но результат хороший и его можно применять для тестирования мониторов. Тест пройдёт далеко не каждый монитор, у некоторых будет искажения этой однородной картинки при разном разрешении.
S>Уже хорошо. Если еще разъяснить ваши слова из сообщения выше, то будет совсем хорошо: S>"Это занимает 10 секунд на цикл. У меня эту процедуру нужно производить для каждой классифицируемой точки."
S>Что такое "цикл" и что такое "классифицируемая точка"?
Цикл это последовательность имеющая начало и конец, от начала к концу можно продвигаться дискретными шагами. Номер шага — остаток от деления натурального числа на длину цикла. Это натуральное число постоянно возрастает на единицу.
Классифицируемая точка — точка в многомерном пространстве, для которой нужно уменьшить размерность путём применения цикла, т.е. вычисления максимума гистограммы скалярных произведений координат точки на координаты точек цикла.
Гистограмма — статистика значений скалярных произведений классифицируемой точки на каждую точку из цикла имеющая следующий вид
Re[3]: За какое время можно повторить рисунок? (большой картинк)
Здравствуйте, stonehenge.architecture.01, Вы писали:
SA0>Есть некая формула для построения большой случайной картинки какую я показал. Формула сильно медленная, но результат хороший и его можно применять для тестирования мониторов.
Во-первых, непонятно, почему нельзя сохранить картинку, а надо ее генерировать. Во-вторых, смотри в направлении OpenCL, что позволить заюзать видеокарты, несколько процов, ...
Re[4]: За какое время можно повторить рисунок? (большой картинк)
Здравствуйте, Mystic, Вы писали:
M>Здравствуйте, stonehenge.architecture.01, Вы писали:
SA0>>Есть некая формула для построения большой случайной картинки какую я показал. Формула сильно медленная, но результат хороший и его можно применять для тестирования мониторов.
M>Во-первых, непонятно, почему нельзя сохранить картинку, а надо ее генерировать. Во-вторых, смотри в направлении OpenCL, что позволить заюзать видеокарты, несколько процов, ...
Можно сделать и сохранение тоже. Просто у меня ещё и другое применение наметилось этой формулы — OLAP и DataMining — а там сохранить уже нельзя.
Re[3]: За какое время можно повторить рисунок? (большой карт
Здравствуйте, stonehenge.architecture.01, Вы писали:
SA0>Есть некая формула для построения большой случайной картинки какую я показал. Формула сильно медленная, но результат хороший и его можно применять для тестирования мониторов. Тест пройдёт далеко не каждый монитор, у некоторых будет искажения этой однородной картинки при разном разрешении.
А что за проблемы она отлавливает?
Мне почему-то кажется, что можно было взять несколько маленьких паттернов, каждый из которых провоцирует разного рода искажения — и замостить ими всю площадь экрана.
Если есть проблемы, специфичные для краёв и центра экрана — значит, мостить края и центр нужно разными паттернами.
Старые добрые настроечные таблицы Nokia Monitor Test и т.п. не использовали сильно медленные формы.
Перекуём баги на фичи!
Re[4]: За какое время можно повторить рисунок? (большой карт
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, stonehenge.architecture.01, Вы писали:
SA0>>Есть некая формула для построения большой случайной картинки какую я показал. Формула сильно медленная, но результат хороший и его можно применять для тестирования мониторов. Тест пройдёт далеко не каждый монитор, у некоторых будет искажения этой однородной картинки при разном разрешении.
К>А что за проблемы она отлавливает?
поскольку картинка теоретически сильно однородная, то, на практике, далеко не каждый монитор способен её корректно без искажений отобразить. Особенно сильные искажения будут в центре экрана. Это заметно невооруженным глазом при изменении разрешения экрана на большое 1600 на 1200.
К>Мне почему-то кажется, что можно было взять несколько маленьких паттернов, каждый из которых провоцирует разного рода искажения — и замостить ими всю площадь экрана. К>Если есть проблемы, специфичные для краёв и центра экрана — значит, мостить края и центр нужно разными паттернами.
Нет. Несколько маленьких паттернов это уже не то. Каринка должна обладать целостностью.
К>Старые добрые настроечные таблицы Nokia Monitor Test и т.п. не использовали сильно медленные формы.
Re[5]: За какое время можно повторить рисунок? (большой карт
Здравствуйте, stonehenge.architecture.01, Вы писали:
К>>А что за проблемы она отлавливает?
SA0>поскольку картинка теоретически сильно однородная, то, на практике, далеко не каждый монитор способен её корректно без искажений отобразить. Особенно сильные искажения будут в центре экрана. Это заметно невооруженным глазом при изменении разрешения экрана на большое 1600 на 1200.
Какого рода искажения-то?
К>>Мне почему-то кажется, что можно было взять несколько маленьких паттернов, каждый из которых провоцирует разного рода искажения — и замостить ими всю площадь экрана. К>>Если есть проблемы, специфичные для краёв и центра экрана — значит, мостить края и центр нужно разными паттернами.
SA0>Нет. Несколько маленьких паттернов это уже не то. Каринка должна обладать целостностью.
Картинка статическая, так что всякие фокусы с интерполяцией кадров, инерцией и памятью матрицы — мы исключаем.
Вопрос: будет ли экран искажать картинку, которую мы сделаем из твоей, но закрасим края чем попало и оставим только квадрат в центре?
Если нет, — то — здравствуйте, паттерны.
Если да, — то хотел бы узнать: как края изображения влияют на центр? В чём состоит эффект целостности?
Если вопрос лишь в том, что мы можем заметить либо не заметить искажения, — то давай закрасим края не чем попало, а повторением центрального куска. Единственно, что надо позаботиться о том, чтобы стыки плиток не бросались в глаза, либо предупредить пользователя, что на стыки не нужно обращать внимание.
Перекуём баги на фичи!
Re[6]: За какое время можно повторить рисунок? (большой карт
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, stonehenge.architecture.01, Вы писали:
К>>>А что за проблемы она отлавливает?
SA0>>поскольку картинка теоретически сильно однородная, то, на практике, далеко не каждый монитор способен её корректно без искажений отобразить. Особенно сильные искажения будут в центре экрана. Это заметно невооруженным глазом при изменении разрешения экрана на большое 1600 на 1200.
К>Какого рода искажения-то?
трудно объяснить точно. но что-то похожее на замыленное зеркало.
К>>>Мне почему-то кажется, что можно было взять несколько маленьких паттернов, каждый из которых провоцирует разного рода искажения — и замостить ими всю площадь экрана. К>>>Если есть проблемы, специфичные для краёв и центра экрана — значит, мостить края и центр нужно разными паттернами.
SA0>>Нет. Несколько маленьких паттернов это уже не то. Каринка должна обладать целостностью.
К>Картинка статическая, так что всякие фокусы с интерполяцией кадров, инерцией и памятью матрицы — мы исключаем. К>Вопрос: будет ли экран искажать картинку, которую мы сделаем из твоей, но закрасим края чем попало и оставим только квадрат в центре? К>Если нет, — то — здравствуйте, паттерны. К>Если да, — то хотел бы узнать: как края изображения влияют на центр? В чём состоит эффект целостности?
К>Если вопрос лишь в том, что мы можем заметить либо не заметить искажения, — то давай закрасим края не чем попало, а повторением центрального куска. Единственно, что надо позаботиться о том, чтобы стыки плиток не бросались в глаза, либо предупредить пользователя, что на стыки не нужно обращать внимание.
нет. только цельно.
Re[7]: За какое время можно повторить рисунок? (большой карт
Здравствуйте, stonehenge.architecture.01, Вы писали:
К>>Какого рода искажения-то? SA0>трудно объяснить точно. но что-то похожее на замыленное зеркало.
К>>Если вопрос лишь в том, что мы можем заметить либо не заметить искажения, — то давай закрасим края не чем попало, а повторением центрального куска. Единственно, что надо позаботиться о том, чтобы стыки плиток не бросались в глаза, либо предупредить пользователя, что на стыки не нужно обращать внимание.
SA0>нет. только цельно.
Я очень сильно подозреваю, что проблемы вовсе не в экране. А в способе смотреть на него.
— ум пытается подсознательно найти регулярность и содержание в заведомо нерегулярной бессодержательной картинке, да ещё и с мелкими деталями
— сюда же добавим саккадические движения глаз, которые за неимением опорных точек на картинке обретают дребезг и смазывание
— а также эффект усталости сетчатки
— и наконец, — но это больше, как следствие вышесказанного, — трудности с фокусировкой (сложно поддерживать резкость взгляда)
В итоге и получается нечто размывающееся, причём именно по центру. Потому что с краёв экрана есть то, на чём можно зацепить взгляд — собственно, края экрана и обстановка вокруг.
Похожий глюк можно воспроизвести, глядя летом на травяной газон и пытаясь остановить взгляд. Через несколько минут — если хватит терпения, конечно, — вдруг начинаешь видеть зелёную плоскость над газоном, или всякие геометрические узоры из травы, или ещё всякое разное.
Так что этой своей картинкой ты не дисплеи тестируешь, а свою психику
Говорю это как эксперт. Кстати, картиночку сохраню, пригодится в этих целях. На ней глюконавтика пытается произойти быстрее, чем на более крупнодетальных и регулярных изображениях (например, на квадратной решётке).
Перекуём баги на фичи!
Re[8]: За какое время можно повторить рисунок? (большой карт
К>Так что этой своей картинкой ты не дисплеи тестируешь, а свою психику К>Говорю это как эксперт. Кстати, картиночку сохраню, пригодится в этих целях. На ней глюконавтика пытается произойти быстрее, чем на более крупнодетальных и регулярных изображениях (например, на квадратной решётке).
Не буду спорить. Потому-что истина может оказаться посередине.
Re[9]: За какое время можно повторить рисунок? (большой карт
Здравствуйте, stonehenge.architecture.01, Вы писали:
SA0>Не буду спорить. Потому-что истина может оказаться посередине.
А что касается генерирования картинки — то можно не придумывать свой генератор случайных чисел, а взять готовый
Поскольку у нас есть требование — количество чёрных и белых пикселов одинаково (чтобы средний цвет был 50% серый), то закрасим полкартинки чёрным, полкартинки белым, а затем применим к ней random shuffle.
Поскольку также желательно, чтобы после случайного перемешивания не вышло, что все пикселы одного цвета сбежались в один угол (почему бы и нет? это же случайно), то нарежем картинку на небольшие прямоугольники (скажем, 20*20) и выполним процедуру залить-перемешать для каждого из них независимо.
Некратность размера прямоугольника 2^n и 2^n-1 гарантирует нам, что даже после зацикливания генератора случайных чисел мы не повторим паттерн перемешивания.
Можно принять специальные меры, чтобы и в прямоугольниках не получилось, что все пикселы в один угол собьются. Но суть всё та же: вариации на тему случайного перемешивания.
Перекуём баги на фичи!
Re[10]: За какое время можно повторить рисунок? (большой карт
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, stonehenge.architecture.01, Вы писали:
SA0>>Не буду спорить. Потому-что истина может оказаться посередине.
К>А что касается генерирования картинки — то можно не придумывать свой генератор случайных чисел, а взять готовый К>Поскольку у нас есть требование — количество чёрных и белых пикселов одинаково (чтобы средний цвет был 50% серый), то закрасим полкартинки чёрным, полкартинки белым, а затем применим к ней random shuffle. К>Поскольку также желательно, чтобы после случайного перемешивания не вышло, что все пикселы одного цвета сбежались в один угол (почему бы и нет? это же случайно), то нарежем картинку на небольшие прямоугольники (скажем, 20*20) и выполним процедуру залить-перемешать для каждого из них независимо. К>Некратность размера прямоугольника 2^n и 2^n-1 гарантирует нам, что даже после зацикливания генератора случайных чисел мы не повторим паттерн перемешивания. К>Можно принять специальные меры, чтобы и в прямоугольниках не получилось, что все пикселы в один угол собьются. Но суть всё та же: вариации на тему случайного перемешивания.
Ваш метод по времени долго. У меня генератор проходит все пять миллионов уникальных состояний за 3 секунды.