Просмотр полной версии : DaDither - еще одна програмка для dither-га картинок
https://www.dadither.com/img/DaDither.png
Достаточно простая программа для создания картинок с палитрой и ч/б картинок.
На сегодняшний день программа умеет конвертировать jpeg, png, gif и bmp в следующие форматы:
- Монохромное изображение.
- Изображение с палитрой. Возможно создание адаптивной палитры или использование уже существующей. Возможна установка ограничения по количеству используемых цветов из палитры.
Платформа ZX-Spectrum:
- Стандартный SCR файл.
- Multicolor 8x1 и 8x2
- Gigascreen
- MultiGigascreen 8x1, 8x2 и 8x4
- Tricolor
- ZX Spectrum Next (NXI)
- ATM Turbo (GRF)
- Profi (GRF)
- Scorpion GMX
- SAM Coupé (SSX, SS4)
Другие платформы:
- Amiga OCS/ECS/AGA
- Amstrad CPC
- CGA/EGA/VGA
- MSX
- Sinclair QL
- SymbOS
Отечественные платформы:
- Агат
- БК-0010/0011
- Вектор (SPR, RMB)
- ДВК КЦГД
- Корвет (GRF, PIC, WIN)
- Львов (LVS - дамп экранной области + 1 байт с указанием палитры)
- Океан-240
- ПК8000 (VM2 - дамп экранной области)
- Союз-Неон
- Специалист
- УКНЦ (PCX)
- Электроника МС 0515 (SCR - дамп экранной области)
- Электроники КР-04
Скачать x86 (https://www.dadither.com/bin/DaDither.exe). Скачать x64 (https://www.dadither.com/bin/DaDither.64.exe).
Если вы хотите, что бы программа умела конвертировать графику для какой-то дополнительной платформы - пишите, все решаемо.
NEO SPECTRUMAN
02.11.2020, 07:29
добавляй теперь разные цветовые пространства
сначала конвертить палитру и картинку в них
а потом уже дизернгить
результаты интересные
RGB
https://i.postimg.cc/vmVxkqgN/kon-02-RGB-x6.png
YUV
https://i.postimg.cc/QxztDg3G/kon-02-YUV-x6.png
а цветовых пространств 100500 штук :)
+еще поправки разных годов выпуска для разных коэфициентов для одних и тех же пространств
Цветовые пространства не проблема. Проблема с правильными формулами для поиска оптимального цвета из палитры с выбранном цветовом пространстве. Я использую алгоритм, который высчитывает и ищет минимальную разницу между цветами (https://en.wikipedia.org/wiki/Color_difference). Реализовал RGB, CIE76 и CIE94. И в CIE76 и CIE94 (в следствии накопления ошибки) зачастую дает очень странный результат. Может быть еще реализую CIEDE2000/CMC l:c. А других формул я не знаю. Если знаешь, то подскажи.
NEO SPECTRUMAN
02.11.2020, 08:30
посмотри педивикию
внизу табличка с кучей ссылок на статьи по 100500 цветовым моделям
в некоторых статьях есть формулы (иногда даже рабочие : )
правда в некоторых только для перевода в XYZ
https://en.wikipedia.org/wiki/YUV
https://ru.wikipedia.org/wiki/YUV
https://en.wikipedia.org/wiki/Color_model
я сам еще ищу формулы :)
было бы интересно увидеть что будет в SML
- - - Добавлено - - -
Проблема с правильными формулами для поиска оптимального цвета из палитры с выбранном цветовом пространстве.
как по мне та сумма квадратов разниц должна прокатывать для любого пространства
в котором каждая компонента имеет один и тот же диапазон
тк ошибка раздается соседним пикселям
и если ты промазал с цветом для одного
то его компенсирует другой цвет...
вот для cmyk-ов оно не прокатывает
видимо тк там можно получить похожие цвета совершенно разными способами
там сумма CMY дает уже затемненный цвет...
ну и для цилиндрических пространств наверно тоже оно не прокатит...
и вообще метод научного тыка наше все :)
можно прикрутить и попробовывать все что придет в голову :)
для YUV прокатывает и сумма разниц и результат такой же(почти) как и сумма квадратов
для RGB простая сумма разниц не прокатывает
и появляются мерзкие потеки...
- - - Добавлено - - -
зачастую дает очень странный результа
закинь примеров странного результата :v2_dizzy_vodka:
как по мне та сумма квадратов разниц должна прокатывать для любого пространства
Для любого линейного пространства, и при этом чувствительность для глаза отдельных метрик пространства должна быть одинакова.
NEO SPECTRUMAN
02.11.2020, 08:32
Для любого линейного пространства, и при этом чувствительность для глаза отдельных метрик пространства должна быть одинакова.
да фотошоповцы и 100500 других рукожопов
годами применяют оно к нелинейному пространству
и даже не задумываются...
и еще порой клянчат за это бабки
ну и результат хоть и кривой но есть :)
закинь примеров странного результата
Сейчас уже помню, но вроде на CGA-палитрах постоянно были закидоны с CIE.
Lethargeek
02.11.2020, 13:19
отчего такая резкая граница снизу в result картинке? или это жпег изуродовал?
Какая картинка - такой и результат. Я взял этот png из темы NEO. Судя по квадратам - это png, созданный из jpeg. Если есть образцы для тестирования получше - выкладывай.
Lethargeek
02.11.2020, 14:08
Какая картинка - такой и результат.
результаты могут быть очень разными, например
https://i.servimg.com/u/f69/19/84/49/23/dither15.png
это для 15 спековских цветов и при закачке вновь покоцано жпегом
но понятно, что границы не просматривается снизу
это для 15 спековских цветов
На моем скриншоте тоже 15 спековских цветов.
границы не просматривается снизу
В преложенном варианте граница просто переместилась в центр и точно также просматривается. Ну и в целом качество предложенного варианта на мой взгляд гораздо хуже. Синий столб превратился в тоненькую полоску, между красным и желтым непонятное грязно-желтое.
SoftLight
02.11.2020, 14:54
Ого, программка неплохие результаты показывает. Еще и на дельфях, респект! Или это билдер?
NEO SPECTRUMAN
02.11.2020, 15:51
Судя по квадратам - это png, созданный из jpeg.
это png созданный из png
а радуга из ms paint-a
которая зачем то слегка закубизированная
- - - Добавлено - - -
результаты могут быть очень разными, например
https://i.servimg.com/u/f69/19/84/49/23/dither15.png
это для 15 спековских цветов и при закачке вновь покоцано жпегом
но понятно, что границы не просматривается снизу
на глаз вижу не включенна гамма коррекция
- - - Добавлено - - -
В преложенном варианте граница просто переместилась в центр и точно также просматривается
до именно так
и вариант этот совершенно не правильный по мат части
если гамма коррекция не выключается тогда хз чо так
- - - Добавлено - - -
отчего такая резкая граница снизу в result картинке?
а еще
посмотри на монитор под другим углом
слегка снизу или слегка сверху
а так надо бы посмотреть как оно выглядит на ЭЛТ
ибо ЛСД-шники в этом плане *****
- - - Добавлено - - -
это для 15 спековских цветов и при закачке вновь покоцано жпегом
В ПРИДАЧУ ТЫ ВЗЯЛ НЕ ТУ СПЕКОВСКУЮ ПАЛИТРУ
утя брайт 0 220 с чем то
когда в первом посте 160
- - - Добавлено - - -
Dec, поклацал конвертер
кнопка color correction ничего не дает?
- - - Добавлено - - -
по моему у тебя с текучкей еще хуже
https://jpegshare.net/images/88/10/8810974cf73f0eaadf647bc93c6c5ac8.png
у меня
https://jpegshare.net/images/1f/a7/1fa7dbb42425cdbd3dc578a4e1aa8c4d.png
хотя другие алгоритмы дают результат по лучше
https://jpegshare.net/images/b2/99/b2992f4f452134ee68dc4f04bf9208fe.png
но по моему попутно задирается и резкость
Еще и на дельфях, респект! Или это билдер?
Delphi XE3
кнопка color correction ничего не дает?
Если в палитре минимальное значение канала больше нуля (или максимальное значение канала меньше 255), и при этом в изображении есть много точек с 0 (или 255) в этом канале, то возможна ситуация, в которой накопленная ошибка будет только нарастать, поскольку нет цветов, которые бы позволили бы ее исправить. При включенной опции Color correction программа отслеживает такие ситуации и автоматически делает цветокоррекцию проблемных каналов, что бы все значения канала входили в диапазон палитры.
Что бы не загружать палитры каждый раз, можно в папке программы создать папку Palettes и скопировать туда любимые палитры и программа будут загружать их автоматически при старте.
по моему у тебя с текучкей еще хуже
Может быть ты ограничиваешь ошибку сверху?
NEO SPECTRUMAN
02.11.2020, 16:16
больше комбинированных цветовых пространств!
RGBYUV
https://i.postimg.cc/c12bL3gG/kon-02-RGBYUV-x6.png
дает свой вариант шума на темном
при этом цветопередача как у RGB
- - - Добавлено - - -
Может быть ты ограничиваешь ошибку сверху?
у меня есть опциональная обрезка диапазона 0...1
сверху и снизу
обрезка сверху как раз уменьшает текучку (на rgb полностью удаляет)
но ухудшает цветопередачу
поэтому по дефолту всегда off
ищем другие способы борьбы
и судя по реузльтатам в фотошопах тоже обрезка сверхку
пушо без гаммакоррекции с обрезкой сверху результаты такие же как в фотошопе (все тупо сереет)
без гаммакоррекции но без ограничений дает нормальную цветопередачу
по моему у тебя с текучкей еще хуже
Я чуть подправил алгоритм поиска цвета, попробуй обновленную версию.
Не проверяй, получилась не очень, откатываюсь.
NEO SPECTRUMAN
02.11.2020, 16:53
попробуй обновленную версию.
не надо плодить DaDither.exe-ы
добав где нибудь номер версии чтоб как то их отличать
щас проверю
как раз вправляю мозги своему дизератору
- - - Добавлено - - -
Не проверяй, получилась не очень, откатываюсь.
как по мне все так же...
оригинальная картинка есть в моей теме
вот она же
https://i.postimg.cc/SxXZ8Wh0/kon-02.png
тестируй с cga палитрой
Lethargeek
02.11.2020, 16:56
В преложенном варианте граница просто переместилась в центр и точно также просматривается.
нет, неправда, там уже не прямая, а трапеция по зелёной полосе, и притом довольно размытая
Ну и в целом качество предложенного варианта на мой взгляд гораздо хуже. Синий столб превратился в тоненькую полоску, между красным и желтым непонятное грязно-желтое.
как сказал, это после жпега оно такое; что неважно, так как эта иллюстрация была к утверждению, что в появлении прямой горизонтальной границы якобы виноват исходник
а еще
посмотри на монитор под другим углом
слегка снизу или слегка сверху
на IPS нету разницы при "слегка"
В ПРИДАЧУ ТЫ ВЗЯЛ НЕ ТУ СПЕКОВСКУЮ ПАЛИТРУ
утя брайт 0 220 с чем то
когда в первом посте 160
у меня 204, что в среднем всё-так поближе к оригиналу (у которого, помнится, эквивалент примерно 190-200 намерили)
NEO SPECTRUMAN
02.11.2020, 17:08
у меня 204
просто самый худший результат у дизерингаторов
когда затемненных кодерских цветов ближе к 128
и поэтому для тестов взят именно 160 как наиболее близкий
Dec, так же обращаю твое внимание на то что
такая картинка
https://jpegshare.net/images/c5/7c/c57ce2a8f3a004d5a714eb7cbcab7f05.png
в идеале должна конвертиться если подсунуть BW палитру в цветном режиме
вот так
https://jpegshare.net/images/80/49/804952e9856dc6a5f66a93f33116c218.png
а не
https://jpegshare.net/images/13/04/130451b2118d544c6c3e92d9cffa80c2.png
и не верь еретикам
правильное соотношение GRB это 421
это знает каждый спектрумист
то что в последних формулах синий прировняли к 0 это вообще сферический долбоклюизм...
как по мне это совершенно неправильный результат
нет там такой ступеньки ну вообще
https://jpegshare.net/images/f8/e5/f8e589d259fe27e2135df3a731c30edd.png
ЗЕЛЕНЫЙ ЯВНО НА ПОРЯДОК ТЕМНЕЕ ГОЛУБОГО
а не как в ихней формуле...
да и желтый ЯВНО на много темней белого
кстате по моему я поборол растекание на цветном изображении когда используется режим для ЧБ
(точнее умя было ошибко там...)
https://jpegshare.net/images/08/1b/081bd94d934dea89bf6eab7e3a3232d3.pnghttps://jpegshare.net/images/7d/5b/7d5b6904bc467c45f6905e2fce1aab50.png
https://jpegshare.net/images/38/c6/38c67bf13682994f2dc7bb697061a21b.pnghttps://jpegshare.net/images/30/f2/30f2da3bfaf505e519c89f12778b38da.png
хотя цветопередача при нехватке цветов все равно лучше у обычного режима
нет, неправда, там уже не прямая, а трапеция по зелёной полосе, и притом довольно размытая
Я особой разницы в форме не вижу:
https://www.tc4shell.com/img/diff.png
Lethargeek
02.11.2020, 17:13
и поэтому для тестов взят именно 160 как наиболее близкий
к чему? потому что не к реальному фирменному спеку уж точно
- - - Добавлено - - -
Я особой разницы в форме не вижу:
особая - ниже :D
NEO SPECTRUMAN
02.11.2020, 17:19
Я особой разницы в форме не вижу:
да есть трапеция
и у меня такая же гадость
и хз что с этим делать
такая картинка
У меня такое ощущение, что я где то накосячил с методом Флойда, потому что другие методы дают нормальные результаты при переводе в ч/б с двухцветной палитрой. Буду проверять.
NEO SPECTRUMAN
02.11.2020, 17:22
к чему?
к самой темной палитре которая еще может называться спековской
а точнее это та самая пол литра alone
- - - Добавлено - - -
хотя цветопередача при нехватке цветов все равно лучше у обычного режима
нет это я использовал неправильный тест
правильный тест (до этого я юзал такое же только не из кодерских цветов скачанное с интернетов)
https://jpegshare.net/images/c5/7c/c57ce2a8f3a004d5a714eb7cbcab7f05.png
дает более однозначный результат
обычный режим без учета весов компонент
https://jpegshare.net/images/5e/52/5e5273721a34a3e2488c3ff7e50e4bd6.png
режим с учетом весов компонент (режим совместимости с BW палитрой)
https://jpegshare.net/images/35/a7/35a7129d1185455eec1fd49f399d77ab.png
конечно текучка жуткая...
хотя все таки именно цветопередача интересней в первом варианте
там даже получилось подобие синего из того что было
но светлей чем надо
Так и оказалось, в одной буковке ошибся. Поправил. Теперь чб формируются корректно.
NEO SPECTRUMAN
02.11.2020, 17:46
а вот такой результат дает ограничение максимума
https://jpegshare.net/images/54/9c/549c5c03e450964e8c7c4e732e507ed8.png
https://jpegshare.net/images/04/9a/049a5856418b28c0a9a8010c06708f82.png
текучки то нет
но и цветов которые нечем заменить тоже нет
- - - Добавлено - - -
Dec, попробуй сделать ограничение по максимуму отдельным бегунком
и в диапазоне дето 1...20
я поставил ограничение в 2
но цветопередача не улучшилась
возможно текучка возникает когда значение уже сильно превышает единицу
и может можно с ней боротся определенным ограничением уровня сверху
или как то детектить что она началась и что то с этим делать
у меня все из командной строки и перекомпиляцией сорца
и не так гибко чтоб быстро проверить и найти
- - - Добавлено - - -
вот это только 5 кратное превышение уровня
https://jpegshare.net/images/10/14/101414c80bc23bfb5ecdaf57a2c3b54f.png
Сделаю, но только завтра. У меня для последней картинки при Error diffusion = 90 цвета не плывут.
https://jpegshare.net/images/da/c4/dac46db935813c00515c522d576d6133.png
NEO SPECTRUMAN
02.11.2020, 17:48
ппц чо там за цифру гуляют
ограничение по 20 кратному превышению уровня
https://jpegshare.net/images/9d/ef/9def97335dac417e565ad28c5e5ff4fe.png
- - - Добавлено - - -
Error diffusion = 90 цвета не плывут.
до это спасает
но это не truЪ
А на Stucki вообще не требуется корректировать Error diffusion. Но в Stucki уже заложена потеря ошибки.
Imho на такой палитре особо не разгуляешься. Можно еще делать не общее ограничение, а свое ограничение на каждый канал.
NEO SPECTRUMAN
02.11.2020, 23:32
на такой палитре особо не разгуляешься.
ну по началу она же дает нормальный результат
https://jpegshare.net/images/57/16/57167b395699ad05dfa7939208941088.png
а потом накапливается ошибка и начинается текучка
прикрутил себе смену минимального и максимального уровня по которому обрезается
отдельными аргументами командной стоки
ну и накрутить чего либо не удалось
растекание начинается раньше чем появляется нормальная цветопередача по всей плоскости...
а ограничения нужно ставить типо 32 -32 (0...1 это 0...255)
чтоб получить картинку подобную той
которая без ограничений
- - - Добавлено - - -
Imho на такой палитре особо не разгуляешься.
почему то драйвер принтера отлично гуляет и на таких палитрах
а тут(у меня) если подсунить CMYK палитру таже гадость
https://jpegshare.net/images/13/44/134436f0c4ea61210167cb9fdb92b79c.png
https://jpegshare.net/images/04/06/0406af773daf62c86625ed43ca9b2254.png
- - - Добавлено - - -
так же я как то для экперемента менял все float-ы на long-и
но результат был по моему таким же
...хотя надо будет попробывать еще раз
- - - Добавлено - - -
А на Stucki в
ага посмотрел стукки и аткинсон
на палитре CMYK
у тебя дают отличный результат с минимумом текучки (которая все же слегка есть и направлена вниз и вправо)
https://jpegshare.net/images/6d/9a/6d9aa65399e09a1a62ee6e7323fc7092.png
там видимо не 100 diffusion level
поэтому текучка подавлена
видно по градиенту часть которого кто то отъел...
вот именно изза потери уровней diffusion level отличный от 1 не есть труЪ
- - - Добавлено - - -
Сделаю, но только завтра. У меня для последней картинки при Error diffusion = 90 цвета не плывут.
https://jpegshare.net/images/da/c4/dac46db935813c00515c522d576d6133.png
у меня при коэфициенте 0.9 тоже ничего не плывет
https://jpegshare.net/images/c8/27/c8279dd7087a10435bcdfc418aa777bc.png
- - - Добавлено - - -
но если для RGB прокатывает коэффициент 0.96
то для пространства CMYK помогает только коэффициент 0.5...
- - - Добавлено - - -
но если для RGB прокатывает коэффициент 0.96
то для пространства CMYK помогает только коэффициент 0.5...
а это тоже самое прогнанное через YUV
https://jpegshare.net/images/8f/ac/8fac32e12e5caa7d7277b3f177d38e47.png
тоже 0.9
но без весовых коэффиентов для каналов
там они походу уже заложены в саму формулу yuv-a
- - - Добавлено - - -
кстате по моему я поборол растекание на цветном изображении когда используется режим для ЧБ
нет не поборол
растекание все равно есть
без BW режима
https://jpegshare.net/images/a3/f1/a3f16d95702283e9b7d5f9da945e6f72.png
с BW режимом
https://jpegshare.net/images/d4/03/d403ae8fb82c3370a7eafac8ea788125.png
с BW режимом в sRGB
https://jpegshare.net/images/e9/63/e963641577a18ecb5973f61cb36c79a6.png
- - - Добавлено - - -
вощем CMYK несколько победил
суть такова что чисто по цифрам
CMY самодостаточен и без К (ну или около того)
https://upload.wikimedia.org/wikipedia/commons/thumb/f/f0/CMYK_separation_%E2%80%93_no_black.jpg/214px-CMYK_separation_%E2%80%93_no_black.jpghttps://upload.wikimedia.org/wikipedia/commons/thumb/2/2e/CMYK_separation_–_maximum_black.jpg/201px-CMYK_separation_–_maximum_black.jpg
тоесть
(C=1, M=1, Y=1) = (K=1)
формулу для CMY
скорей всего выглядит так
C = 1.0-R
M = 1.0-G
Y = 1.0-B
и поэтому результаты CMY идентичны результатам RGB
чтоб получить нормальный результат для CMYK-а с формулой где черный полностью отделен
а CMY не используется для получения черного
я задрал вес черного цвета до 200 (когда те канала по 1 чтоб отдавалось большее предпочтение цвету содержащему черный)
и только тогда появился какой то более менее результат (при всех возможных ограничениях диапазона)
https://jpegshare.net/images/8e/b6/8eb6f6d48fc20bcddb96d7022056b31e.pnghttps://jpegshare.net/images/32/76/3276110762619416ad02608a975c7746.pnghttps://jpegshare.net/images/bd/cb/bdcb7b98e206bae3423a8839f71e03b4.png
https://jpegshare.net/images/68/87/6887dfb810666dd8e1c5f2762c367038.pnghttps://jpegshare.net/images/37/e0/37e030a6a3abe39da17bf020d3d4b9dc.png
без Кх200 и ограничений получается ужасть
https://jpegshare.net/images/e8/31/e83149b10a408e6951a9be8fd0b8a8de.pnghttps://jpegshare.net/images/f7/8a/f78a010afbdabf5331c4683c290a6b8f.pnghttps://jpegshare.net/images/82/e5/82e59e5831d826e1d8d738ada5f84259.png
- - - Добавлено - - -
да и в общем на палитрах с большим количеством цветов
результат все равно плохой
нужно искать\изобретать формулы для поиска похожего цвета в CMYK-е
или возможно в процессе дизеринга
когда раздается ошибка нужно делать нормализацию
переносить черный получаемый самими CMY в К
- - - Добавлено - - -
или можно заюзать такую избыточную формулы где K дублирует CMY
C = 1.0-R
M = 1.0-G
Y = 1.0-B
K = 1.0-max(R,G,B)
и это дает свой непохожий на RGB результат
https://jpegshare.net/images/7d/96/7d964bbca16f6c0e20163a056a5ded93.png
- - - Добавлено - - -
Проблема с правильными формулами для поиска оптимального цвета из палитры с выбранном цветовом пространстве.
можно переводить в пространство для которого формула уже есть
например через тот же RGB
переводить текущий пиксель, выбирать цвет
найдя цвет переводить обратно в нужное цветовое пространство и раскидывать ошибку уже в нем
а разные способы раскидывания ошибки и будут давать разный результат который и нужен
Немного обновил программу:
- конвертация в 8-битные изображения с адаптивной палитрой.
- первая попытка реализации конвертации в цветные SCR файлы
https://jpegshare.net/images/65/47/654738e8f4404fa5fcab74e3ed38fb72.png
При конвертации можно нажать на кнопочку Color detections и понастраивать механизм определения цвета.
https://jpegshare.net/images/d8/14/d8144a6936a21b262135de5c55f66f13.png
-Переделал UI.
-Вторая версия конвертации в SCR.
-Первая версия конвертации в мультиколорные кортинки.
https://www.tc4shell.com/img/DaDither2.png
-Чуть улучшил формирование SCR
-Добавил создание multicolor в автоматическом режиме:
https://www.tc4shell.com/img/DaDither3.png
Достаточно простая программа для создания картинок с палитрой и ч/б картинок.
Достаточно интересная программа)
Но вот пример:
https://s.micp.ru/ud6N0.jpg
Пример конвертирования уже готовой вмр-картинки. Двумя программами :) На второй результ какой то неаккуратненький :)
Отдельное спасибо за конвертирование в .mlt , тоже как нить попробую, неожиданно :)
Ну и мультиартист насколько помню мультиколор 8х1 , 8x2 сохраняет как .img файлы, с ними удобно работать.
Lethargeek
21.11.2020, 10:40
https://jpegshare.net/images/65/47/654738e8f4404fa5fcab74e3ed38fb72.png
каким образом серый превратился в мадженту? :v2_crazy:
Но вот пример:
Ты бы картинку-пример выложил бы куда-нибудь, что бы я мог потестировать.
- - - Добавлено - - -
каким образом серый превратился в мадженту?
Настройка углов для определения цветов меняется мышкой.
NEO SPECTRUMAN
21.11.2020, 10:47
каким образом серый превратился в мадженту?
а ты возьми калькулятор и догадайся :)
картинку-пример
например.
Ну и глобальную яркость scr чтобы можно было менять, NoBright, галочкой :)
Lethargeek
21.11.2020, 11:05
Настройка углов для определения цветов меняется мышкой.
по углам как на скриншоте всё равно должен получаться серый (с крапками синего)
- - - Добавлено - - -
а ты возьми калькулятор и догадайся
а ты в пэйнт исходник загрузи и проверь, к чему там ближе на самом деле
NEO SPECTRUMAN
21.11.2020, 11:16
пэйнт исходник
ваще показательная софтварь :v2_lol:
даже пилятили фотошопов на все положили
а в пейнте все сделали пральна
а так фиолетовый ближе к серому больше чем ты думаешь :)
хотя соглашусь что на той картинке результат очень странный
Ну и глобальную яркость scr чтобы можно было менять, NoBright, галочкой
Настройки цветокоррекции планируются.
например.
Проблема моего алгоритма. Надо будет при методе None упрощать алгоритм. Сделаю.
результат очень странный
Ну, можно и так:
https://jpegshare.net/images/45/6b/456b39f885e9c084019ae04e209c81b4.png
Но вот пример
Разрешил в программе автоматический режим для таких картинок:
https://jpegshare.net/images/9c/e8/9ce8a267f862baba1ace849e83b8dcb8.png
Но эта картинка является синтетическим тестом, для таких картинок моя программа не рассчитана.
NEO SPECTRUMAN
21.11.2020, 16:14
Но эта картинка является синтетическим тестом, для таких картинок моя программа не рассчитана.
НЕТ
иногда проще нарисовать картинку в паинте и скормить конвертеру
чем трахаться с чисто спектрумовским редактором
поэтому это не синтетический тест
а вполне реальный вариант развития событий
- - - Добавлено - - -
моя программа не рассчитана.
ну иногда тулят типо
всегда включенный брайт
всегда выключенный брайт
дополнительно в настройках
ага кнопку для всегда включенного брайт рассмотрел
но тут нужен всегда выключенный брайт
тк картинка под демку с бордюром
а на бордюре брайта нет...
ага кнопку для всегда включенного брайт рассмотрел
но тут нужен всегда выключенный брайт
тк картинка под демку с бордюром
а на бордюре брайта нет...
https://www.youtube.com/watch?v=649skxrdYpM
иногда проще нарисовать картинку в паинте и скормить конвертеру
чем трахаться с чисто спектрумовским редактором
поэтому это не синтетический тест
а вполне реальный вариант развития событий
все так и было
и да, картинко выше с jpegshare.net в моем браузере не грузиЦЦа. как впрочем и другие картинки других юзеров :)
Могу конечно в другом бравузере посмотреть, но сам факт.
а на бордюре брайта нет...
иногда есть. По заказам :) Моим заказам в паре эмулей. Чо.
НЕТ
иногда проще нарисовать картинку в паинте и скормить конвертеру
чем трахаться с чисто спектрумовским редактором
поэтому это не синтетический тест
а вполне реальный вариант развития событий
Ну, раз ты рисуешь в паинте, то что мешает просто исходно использовать для рисования нормальные цвета. В образце у всех цветов уровень цвета 200, что не совпадает ни с одной стандартно-используемой палитрой. А у magenta неожиданно 255, но при этом требование разместить все цвета в нижнем диапазоне.
- - - Добавлено - - -
нужен всегда выключенный брайт
Добавил галку Use dark color only.
NEO SPECTRUMAN
22.11.2020, 03:07
иногда есть. По заказам Моим заказам в паре эмулей. Чо.
и в АТМ-е вроде есть
но это скорей исключение...
и в АТМ-е вроде есть
но это скорей исключение...
Не помню точно, в моем варианте биты с АТМ совпадают или нет, но типа того. Могу же я для сеяб любимого сделать исключение? :))
https://s.micp.ru/jP281.png
15 цветов на бордюре без альт. регистров - это конечно жестко. Надо будет над альт. подумать . Когда-нить)
Вроде в ула plus на бордере яркость по идее еще есть.
И по поводу .mlt
https://s.micp.ru/7o8U6.jpg
Результат мне даже больше понравился, чем в bmp2scr
на скрине source, result, два эмуля, которые могут DMA и вьювер
Результат мне даже больше понравился, чем в bmp2scr
Ты можешь уменьшить Error diffusion, это уменьшит количество "случайных" точек, но уменьшит общую яркость изображения. У меня есть пара идей, как улучшить картинку, в следующих версиях реализую.
NEO SPECTRUMAN
22.11.2020, 13:31
Вроде в ула plus на бордере яркость по идее еще есть.
дополнительной нет
но чисто по идеи можно переназначить 8 бордюрных цветов на любые другие из 256
насколько это реализовано в железе не известно
тк одни дебилы не осилили документацию
и наплодили 2-й вариант интерпретации синего
другие товарищи неасилили документацию
и не запилили чтение всей палитры
третьи...
и кстате по моему какие именно номера цветов идут для бордюра
в документации не упоминается\упоминалось
а я находил их методом научного тыка
тк что это можот даже недокументированные возможности :)
можешь уменьшить Error diffusion
Ага, Result немного приятнее выглядит, но все равно, надо перепроверять уже в эмуле, как будет, ну или на реале. ДМА живой мало у кого есть, да и у меня нет, только пара реализаций в ФПГА
переназначить 8 бордюрных цветов на любые другие из 256
насколько это реализовано в железе не известно
Надо тест бордер-ула-plus-256 нарисовать)
NEO SPECTRUMAN
22.11.2020, 13:41
Надо тест бордер-ула-plus-256 нарисовать)
в SpecEmu
палитрой бордюра является PAPER 1й палитры (то есть 00001XXX порта BF3B где XXX цвет. 000 соответствует черному, 111 белому в стандартных режимах
палитрой бордюра является PAPER 1й палитры (то есть 00001XXX порта BF3B где XXX цвет. 000 соответствует черному, 111 белому в стандартных режимах
ну дык выводим 8 цветов, подменяем 1-ю поллитру, выводим еще 8 цветов. и так 32 раза?
NEO SPECTRUMAN
22.11.2020, 13:59
ну дык выводим 8 цветов, подменяем 1-ю поллитру, выводим еще 8 цветов. и так 32 раза?
я думаю можно вообще залить бордюр и папер одним цветом
и рисовать сплошной мультибордер меняя только один цвет поллитры
при этом можно нарисовать какой нить картинко
типо на переднем плане
без использования этого цвета
но это при условии что палитру можно менять каждые 2 пикселя
а это уже недокументированно и может быть по разному реализовано
-Улучшил создание SCR из коробки, теперь программа создает хоть что-то похожее на оригинал без тыкания в настройки. Но сильно просела скорость, и изображения стали сильно темнее оригинала.
https://jpegshare.net/images/bc/18/bc18d1a95ca053880cfed5f6f555e5da.png
https://jpegshare.net/images/fa/25/fa255ca7a0712fc08c56bcb1e1b6fc80.png
-Для multicolor добавил две дополнительные опции для распределения ошибки квантования. Разные комбинации дают разный результат. Скорость конвертирования также просела. Буду распаралеливать в следующих версиях.
https://jpegshare.net/images/d3/7a/d37af68f9b9fb18fad42fd9b949d115d.png
-Ускорил создание SCR и мультиколор.
-Добавил в тестовом режиме конвертацию в GigaScreen
https://jpegshare.net/images/52/fe/52fe46cf5ecbf9e9c4a3985036981171.png
Если есть люди, заинтересованные в этой функциональности, то прощу посильной помощи в тестировании режима конвертации в GigaScreen. Меня интересует, насколько (не)точно соответствие между той картинкой, которую программа отображает в качестве результата, и реальной картинкой на реальном спектруме. И какой уровень мерцания (позиция ползунка в программе) является приемлемым, т.е. что мне выставить по умолчанию. (При уровне < 31 в следствие специфики неоднородности палитры GigaScreen картинка может содержать много серого, я работаю над этой проблемой)
NEO SPECTRUMAN
26.11.2020, 01:20
этой функциональности,
для уменьшения мерцания используй шахматку для знакомест
считай общую яркость всего знакоместа для каждого из эуранов
а потом осталвяй на одном
ЯТЯТ
ТЯТЯ
а на другом
ТЯТЯ
ЯТЯТ
и будет мерцать намного меньше
используй шахматку
Для того, что бы использовать шахматку, нужно что бы цвета в знакоместе в обоих экранах совпадали. Но у меня возможна ситуация, когда цвета не совпадают и программа может использовать все четыре цвета для дизеринга внутри знакоместа. В принципе, можно добавить специальный режим с ограничениями палитры, и в этом режиме делать шахматку. Но сейчас вопрос не об этом. Вопрос в том, насколько корректна формируемая палитра.
NEO SPECTRUMAN
26.11.2020, 12:00
Для того, что бы использовать шахматку
НЕТ!
считаешь общую яркость всего ЗНАКОМЕСТА вообще на каждом экране
количество пикселей папера в знакоместе*коэфициент цвета папера +
количество пикселей инк в знакоместе*коэфициент цвета инк
а потом сортируешь на основе этих данных ЗНАКОМЕСТА по 2-м экранам
НЕТ!
Ничего не понял из твоего объяснения. Предположим, что я насчитал яркости знакомест (по десятибалльной шкале):
Экран 1: 0 1 7 5 3 3 2 ...
Экран 2: 1 1 3 9 4 9 0 ...
Что дальше?
Отбой, я понял твою идею.
NEO SPECTRUMAN
26.11.2020, 12:27
было
Экран 1: 0 1 7 5 3 3 2 ...
Экран 2: 1 1 3 9 4 9 0 ...
для наглядности кто яркий кто темный
Экран 1: T 1 Я T T T Я ...
Экран 2: Я 1 T Я Я Я T ...
сортируем по экранам шахматкой
Экран 1: T 1 Т Я T Я Т ...
Экран 2: Я 1 Я Т Я Т Я ...
так чтоб было
экран 1
ТЯТЯ
ЯТЯТ
экран 2
ЯТЯТ
ТЯТЯ
в твоих цифрахцифрах будет так
Экран 1: 0 1 3 9 3 9 0 ...
Экран 2: 1 1 7 5 4 3 2 ...
NEO SPECTRUMAN
26.11.2020, 12:28
Отбой, я понял твою идею.
к сожалению я в упор не могу найти примера у себя
но это значительно снижает мерациние (тк чем больше мигающая площадь тем оно заметней)
и неплохо работает для триколора
только там не шахматка а диагональные полосы
RGBR
GBRG
BRGB
GBRG
BRGB
RGBR
BRGB
RGBR
GBRG
диагональные полосы
И в чем суть? В использовании только конкретных цветов на конкретных диагоналях?
NEO SPECTRUMAN
26.11.2020, 12:37
конечно я вангую что побочным эффектом снизится пакуемость такой картинки
и может лучше такое даже опционально выключать
например если картинка будет выводится мультиколорным интерлейсом
там было бы полезней другая сортировка
экран1
ЯТЯТ
ЯТЯТ
ЯТЯТ
экран2
ТЯТЯ
ТЯТЯ
ТЯТЯ
- - - Добавлено - - -
И в чем суть? В использовании только конкретных цветов на конкретных диагоналях?
ну до
это намного лучше чем когда весь экран залит сплошным цветом
в придачу эти диагональные атрибутные полосы достаточно легко заливаются стеком
и не тратят намного больше ресурсов чем 3 экрана с сплошной заливкой
снизится пакуемость такой картинки
По мне так это дело десятое по сравнению с важностью вопроса цветопередачи и восприятия полученной картинки.
NEO SPECTRUMAN
26.11.2020, 12:41
По мне так это дело десятое по сравнению с важностью вопроса цветопередачи и восприятия полученной картинки.
ну учитывая что есть даже оптимизаторы картинок
которые меняют ink paper местами и инвертируют пиксели для лучшей пакуемости...
то кому то это видно нада
ну до
В триколоре и так картинка очень теряет в яркости, и диагонали еще уменьшат ее.
NEO SPECTRUMAN
26.11.2020, 13:01
и диагонали еще уменьшат ее.
триколор всей площадью так шибет по глазам
что без мультиколорного интерлейса или хотя бы атрибутного
смотреть на него не возможно
а его пытались даже пихать в некоторые игры :v2_dizzy_facepalm:
(без какого либо подавления мерцания)
- - - Добавлено - - -
а так если подумать
сам триколортриэкран по принципу гигаскрина позволил бы получить 8 цветов в знакоместе
из набора в 100500 цветов
но я не представляю как написать под такое конвертер
тк дикая туча возможных комбинаций цветов получается
- - - Добавлено - - -
https://jpegshare.net/images/00/47/00470915b2aa79f3eb09a1b12f880576.gif
это со времен когда я еще не знал про нелинейность srgb
поэтому цвета снизу смешаны неправильно
можот ты придумаишь как запилить конвертер
- - - Добавлено - - -
чисто на глаз там
2М 8 цветных палитр
только 50 метров прекалькуляченных палитр :v2_lol:
можот ты придумаишь как запилить конвертер
Подумаю на досуге.
- - - Добавлено - - -
-Добавил шахматное распределение яркости при конвертации в Gigascreen.
NEO SPECTRUMAN
26.11.2020, 19:48
а можешь уменьшить размер окна по высоте пикселей до 730 ?
В монитор что ли не влезает? Или системный шрифт очень большой? Программа использует системный штифт и все отступы между элементами управления рассчитывает на основе размера шрифта. Большой шрифт приводит к большим размерам окна.
NEO SPECTRUMAN
26.11.2020, 20:04
кстате
тк расчет долгий было бы полезно визуализировать иногда то что уже есть (если есть возможность)
чтоб можно было увидеть как оно получается и поменять параметры не дожидаясь завершения
- - - Добавлено - - -
В монитор что ли не влезает?
типо до
- - - Добавлено - - -
Большой шрифт приводит к большим размерам окна.
до шрифт большой и масштабирование для слепых :)
- - - Добавлено - - -
вот как вижу оно я
https://jpegshare.net/images/8b/11/8b11407d7f56f3f2ce17f28f42cd769c.png
заголовок окна за экраном и перетянуть окно ручками уже не получается
тк расчет долгий было бы полезно визуализировать иногда то что уже есть (если есть возможность)
Подумаю, но не обещаю, очень это геморойно делать.
до шрифт большой и масштабирование для слепых
Сделаю для тебя секретную опцию для уменьшения размера шрифта.
NEO SPECTRUMAN
26.11.2020, 20:36
Меня интересует, насколько (не)точно соответствие между той картинкой, которую программа отображает в качестве результата, и реальной картинкой на реальном спектруме
ну смотрю не на реальном спектруме а на эмуляторе и мерзком лсдшнике
и мягко говоря картинка сильно не соответствует
+цветопередача у среднемигающего варианта и слагбомигающего варианта разная
проверил и на алоне и на пульсаре
можешь просто наложить шахматкой одно изображение на другое (для сравнения)
ну или noflic method#2 в unreal-е
и это будет примерно соответствовать тому как выглядит гигаскрин при мигании
при этом у реального гигаскрина получается больше задрана насыщенность и контрастность
на ЭЛТ возможно все не так
ну или сделай мигание с частотой развертки прямо в конвертере
от частоты мигания особых новых свойств не появлется
только уменьшение мигания
а что сейчас делает lightness fix?
- - - Добавлено - - -
авоще шахматка хорошо получилась :v2_dizzy_roll:
жаль скриншоты не передают гигаскринов :)
но почему то я такого нигде никогда не видел
все тупо мигают всей площадью экрана :v2_dizzy_facepalm:
- - - Добавлено - - -
кстате для гигаскринов тоже не помешают use dark\bright colors only
тк тут тоже разный брайт сильно влияет на результат
- - - Добавлено - - -
вот например честно мигающий эмулятор на мерзком лсдшнике слева
и превиев с конвертера справа
https://jpegshare.net/images/7f/6a/7f6a134e1a31dadf76aced5136370cea.jpg
но лучше на мой лсдшник не ориентироваться
потом надо будет ткнуть в элт монитор и сравнить
хотя у фирменных реалов через композит думаю на гигаскрине будут дикие радужные артефакты :)
https://zx-pk.ru/threads/31219-pal-artefakty-na-spektrume-ili-my-eshche-pokazhem-kuzkinu-mat-etomu-vashemu-ntsc!.html
а можешь уменьшить размер окна по высоте пикселей до 730 ?
Попробуй новую версию, она должна автоматически уменьшить шрифт при недостатке высоты.
- - - Добавлено - - -
сделай мигание с частотой развертки прямо в конвертере
Попробую.
- - - Добавлено - - -
а что сейчас делает lightness fix?
Очень режется ошибка при дизеринге и изображение сильно темнеет (иногда сильно светлеет). Эта опция позволят сделать темнее или светлее исходное изображение, которое подается на конвертацию, что бы немного скомпенсировать потемнение, вызванное потерей ошибки.
- - - Добавлено - - -
для гигаскринов тоже не помешают use dark\bright colors only
Добавлю.
NEO SPECTRUMAN
26.11.2020, 21:14
угу теперь влазит
- - - Добавлено - - -
кстате алоновский MCXVIEW этображает 3 колоры с конвертера с перепутанными каналами
вместо BRG
явное GBR
ну я в сортах говна форматов триколоров не разбираюсь может так и должно быть :)
может так и должно быть
Я у себя ориентировался на графику с zxart.ee.
сделай мигание с частотой развертки
Сделал простенькую утилитку (https://www.tc4shell.com/binary/DaTemporal.exe), которая выводит на экран мигающий цвет (скриншот не передает мигание :) ):
https://jpegshare.net/images/f0/48/f048f7cec0ead999824b904b6b4cc50e.png
Опция Chess grid включает мигание в шахматном порядке.
И что я вижу. Восприятие глазом простой НЕ мигающей шахматной сетки из двух цветов и мигания двух цветов очень отличается. Вообще, смешение цветов при мигании называется temporal dithering. В гугле можно найти кучу патентов в этой области. И ноль формул расчета суммарного цвета (может быть я не правильно ищу). И мне вообще кажется создание универсальной формулы не реальным. В своей утилите я могу подобрать сильно похожий цвет, так что мигающий и подобранный цвета и не различить, но стоит мне стоит сдвинуть окно на другой монитор (с другой яркостью и контрастностью), то это сходство тут же исчезает. Т.е. на каждом мониторе мигающий цвет будет выглядеть абсолютно по своему, на восприятие влияет даже угол обзора.
NEO SPECTRUMAN
27.11.2020, 17:52
на восприятие влияет даже угол обзора.
потому что это мерзкий лсд
на теплом и ламповом элт результат более предсказуемый
на лсд такое чуство что одни цвета переходят в другие с разной скоростью
в придачу некоторые комбинация напорядок дольше чем другие
можно взять нарисовать квадратов разных цветов на каком то фоне
и взять потягать окно
и у некоторых переходов будут очень длинные хвосты
В своей утилите я могу подобрать сильно похожий цвет,
скорей всего наиболее правильно использовать среднее между двумя цветами по линейной шкале
думаю это будет самое среднее между всеми вариантами развития событий :)
- - - Добавлено - - -
Восприятие глазом простой НЕ мигающей шахматной сетки из двух цветов и мигания двух цветов очень отличается
ну 50Гц маловато и моск успевает рассматривать кадры по отдельности
а там один цвет достаточно яркий
например если проделать тоже самое на элт с 80Гц
то разница уже не такая заметная
кадры достаточно хорошо сливаются друг с другом
и мерцание очень слабое
(по крайней мере у меня так было давно : )
скорей всего наиболее правильно использовать среднее между двумя цветами по линейной шкале
Этот алгоритм и реализован в данное время, но результат не радует. Я думаю, он неплохо работает на малых дистанциях между цветами, но на больших уже другая физика восприятия цвета. В целом я решил не выпендриваться, а использовать алгоритм, который используют все.
NEO SPECTRUMAN
27.11.2020, 18:22
но результат не радует.
а ты проверял на элтшном мониторе?
а ты проверял на элтшном мониторе?
На LCD и на LED, больше мне проверить не на чем.
NEO SPECTRUMAN
27.11.2020, 20:02
На LCD и на LED, больше мне проверить не на чем.
отож
а надо проверять на теплом и ламповом ЭЛТ :)
и на нем же и нужно смотреть демки :)
на днях попробую выбраться к тому что есть у меня
и посмотреть как мигает на нем
- - - Добавлено - - -
посмотри как у тебя соответствует шахматка теоретическому цвету
https://zx-pk.ru/threads/32334-pravilnaya-shakhmatka.html
- - - Добавлено - - -
например на элт
теоретический цвет по принципу "как у всех" смотретсо как более темные квадраты
https://i.postimg.cc/wTmC0K51/pulsar-giga.png
- - - Добавлено - - -
а кстате 4-й вариант это по моему как раз настоящий гигаскрин
тоесть можешь сравнить его с шахматкой
и более светлым теоритическим вариантом
глянул так и есть
расположены в квадрате так
шахматный гигаскрин, теоретический "как у всех" (в результате темней чем надо)
теоретический "как надо", статическая шахматка
приатачу еще так
https://jpegshare.net/images/c9/93/c993b6a96f74e9c3b4d921acd950f558.gif
на моем мерзком лсд
гигаскрин нааборот теряет яркость
и теоретический "как у всех" выглядит так же как гигаскин
хотя если посмотреть под другим углом
то можно найти и положение когда теоретический "как надо" смотритсо как гигасктрин :)
а вот на элт при любом угле картинка всегда одинаковая
- - - Добавлено - - -
надо будет еще сфоткать мигающий всей площадью гигаскрин с большой выдержкой и сравнить его с шахматным гигаскрином
посмотри как у тебя соответствует шахматка теоретическому цвету
Левая. Считать средний цвет шахматки как сумму половин линейных значений правильно. Но опять же это будет корректно на откалиброванном мониторе, на не откалиброванном оттенки поплывут.
NEO SPECTRUMAN
27.11.2020, 20:24
мониторе, на не откалиброванном оттенки поплывут.
а еще есть мифическое послесвечение люминофоров :v2_lol:
(которого не видно ни на фотках(в том числе пленочных) ни на замедленных съемках)
хотя которое явно проявлеятся при низкой яркости экрана (хотя может опять же это инертность именно глаз)
хотя у меняя есть старый немецкий чб телек
вот там послесвечение такое что
движущийся светлый объект на черном фоне оставляет за собой хвосты сантиметров по 20
Lethargeek
27.11.2020, 20:41
(которого не видно ни на фотках(в том числе пленочных) ни на замедленных съемках)
его на обычных съёмках прекрасно видно - когда полосы ползут по экранам
а на тормозных LCD очевидно проседает яркость при скроллингах по чёрному фону
NEO SPECTRUMAN
27.11.2020, 20:56
его на обычных съёмках прекрасно видно - когда полосы ползут по экранам
как раз поэтому его для гигаскрина его и нет
свечение длиться раза в 4 меньше фрейма а может и того меньше...
особо повлиять такое на смешивание кадров не может
все мифической послесвечение скорей всего в "медленных" глазах
- - - Добавлено - - -
вот оно ваше послесвечение во всей красе
https://www.youtube.com/watch?v=8sThyWQC4RY
- - - Добавлено - - -
так же когда то давно я фоткал экран на пленку
тоже никакого послесвечения не было видно
только то что успело попасть за время открытия завтора
Lethargeek
27.11.2020, 20:57
таки есть, да еще из-за контрастности видно хуже
NEO SPECTRUMAN
27.11.2020, 21:04
таки есть, да еще из-за контрастности видно хуже
это такое есть
что есть что нет
в придачу большую часть времени это послесвечение мало чем отличается от нуля
хотя оно есть
- - - Добавлено - - -
но выкрученной в 0 якрости
гигаскрин и правдо мигает намного меньше
но тут не ясно это такая функция у лиминофоров с постепенным замедлением скорости потери яркости
или это опять же инертность глаз
тут нужно проверять механической имитацией гигаскринов :)
NEO SPECTRUMAN, поскольку ты единственный, кто проявляет интерес к программе, то обращаюсь к тебе. Подскажи, где найти нормальное человеческое объяснение общепринятой формулы расчета gigascreen палитры.
NEO SPECTRUMAN
30.11.2020, 23:19
где найти нормальное человеческое объяснение общепринятой формулы расчета gigascreen палитры.
общепринятое делается тупое сложение и деление на 2 (без учета нелинейности а тупо в лоб)
где и кто принял другой вариант не ясно
но например в палитре unreal-а прописаны промежуточные яркости для сложения цветов
и они немного отличаются от тупого 50\50 в сторону правильности
и в multiartist тоже складывается не 50\50
и пишотсо там такое
Данная палитра принята за эталон и была получена путем долгих наблюдений сообщества художников speccy сцены за картинкой выводимой ZX Spectrum`ом на экран старых телевизоров. На современных мониторах цветовые оттенки могут отличаться, т.к. на TFT нет послесвечения люминофора, который сглаживает мерцание.
Для эмуляторщиков на данный момент существует только один эмулятор, правильно поддерживающий гигаскрин - unreal с использованием конфигурации палитры от pulsar`а.
http://multiartist.untergrund.net/img/fullpalette.gif
не знаю где эти художники долго наблюдали...
из ini для унриала для палитры pulsar которое на сайтеке multiartist-а
по шкале srgb в скобочках перепроверенная комбинация цветов пипеткой в multiartist-е
black+bright0 = $74 = 116 (115)
bright0+bright0 = $CB = 203 (202)
bright0+bright1 = $E7 = 231 (230)
bright1+bright1 = $FF = 255 (254)
black+bright1 = $9E = 158 (157)
- - - Добавлено - - -
- - - Добавлено - - -
сравним с нашим теоретически правильным вариантом (посчитал на онлайн калькуляторе)
линейное и srgb представление
black+bright0 = 0,29531 = 147.81
bright0+bright0 = 0,59062 = 202
bright0+bright1 = 0,79531 = 230.51 (тут уж сильно оно похоже)
bright1+bright1 = 1 = 255
black+bright1 = 0,5 = 187.52 (а в сочетании с черным у них чота темнее)
- - - Добавлено - - -
для проверки кто же прав можно было бы выдать те же яркости дизерингом
и глянуть на что мерцание больше похоже на ЭЛТ
- - - Добавлено - - -
сейчас попробую провести тест
NEO SPECTRUMAN
01.12.2020, 01:48
вощемта результаты не однозначные...
мигалка
специально х2 чтоб подавить некоторые артефакты которые есть у ЭЛТ мониторов
https://jpegshare.net/images/d2/14/d2148d60e6c82f912eff24685f6ae02b.gif
поставил 100Гц на мониторе
вот вроде бы красивая картинка
правильный дизеринг выглядит правильно и правильно передает яркость (так и есть)
шахматный гигаскрин соответствует обыкновенной шахматке и соответствует мат части (так и есть)
multiartist suxx (так и есть)
сплошной гигаскрин вроде бы тоже выглядит не плохо... (А НИФИГА глазами он выглядит совершенно не так)
https://jpegshare.net/images/4a/22/4a2268839f2f820d7a304b9abdb193fc.png
вот фотка с другого фотика
это больше похоже на то как оно видно глазами
все шахматки градиентом а сплошной гигаскрин ВНЕЗАПНО криво
глазами 3-й кубик сплошного гигаскрина еще ярче и выделяется еще сильнее
https://jpegshare.net/images/82/db/82db1f037280e05d7d4ed9d3f4f2aa8d.png
а вот я взял и прикрутил яркость монитора
и снова первый фотик
и тут ВНЕЗАПНО шахматки расколбашивает так же как сплошной гигаскрин
фотка похожа на то как видно глазами (кроме вариантов с дизерингом, тут они ярче чем надо)
https://jpegshare.net/images/33/e0/33e03af78c4ce6b9a8abe3aa2b5fcfda.png
- - - Добавлено - - -
и если на моем элт палитра мультиартиста полностью в пролете
то вот на моем лсд-шнике палитра мультиартиста очень даже похожа на шахатный гигаскрин
вангую что эти "долго наблюдающие художники" долго наблюдали за лсд-шником... :v2_lol:
- - - Добавлено - - -
так что про точную передачу яркости в гигаскрине наверно можно забыть
там потом еще окажется что и видят все по разному
тк одни гигаскрин переносят нормально и на эмуляторе с 60Гц монитором с разсинхронизацией и бегущими полосами
другие устраивают истерику видя на реале с 50Гц
а вот я взял и прикрутил яркость монитора
и снова первый фотик
и тут ВНЕЗАПНО шахматки расколбашивает так же как сплошной гигаскрин
При линейном расчете цвета шахматки и гигаскрина результат валиден только на откалиброванном CRT мониторе. Выкручиваешь яркость - разумеется все поплывет.
так что про точную передачу яркости в гигаскрине наверно можно забыть
На LCD тот гигаскрин, что отображается на CRT, не повторить в принципе в силу того, что уж очень по разному устроены мониторы. Кристаллики поворачиваются на каждом мониторе с разной скоростью + в дешевеньких мониторах может применятся аппаратный дизеринг, который 6 бит трансформирует в 8, и все это влияет на то, как мы видим мигающие цвета.
Мое мнение на сегодняшний день - линейный расчет гигаскрина корректен и правелен, но только для откалиброванного CRT монитора. И на мой взгляд, его и нужно применять. Но уже возник стандарт, сломать его вряд ли удасться.
Я обновил программу, она поддерживает оба варианта расчета.
https://jpegshare.net/images/5c/b6/5cb677b5f77a746fb8419faa472e146e.png
NEO SPECTRUMAN
01.12.2020, 18:52
Выкручиваешь яркость - разумеется все поплывет.
яркость это умножение
если правильно делать яркость то все соотношения должны оставаться
если правильно делать яркость то все соотношения должны оставаться
А ты уверен, что выкручивая яркость на мониторе ты не меняешь гамму? На мой взгляд меняешь. А линейный расчет корректен только для гаммы 2.2.
NEO SPECTRUMAN
01.12.2020, 19:23
корректен только для гаммы 2.2.
а при чем тут вообще гамма?
труЪ яркость и любая обработка должна применятся к линейному представлению
а 2.2 гамма чтоб иметь больше различимых ступенек на темных цветах при сплющивании цвета до 8 бит на компоненту
а при чем тут вообще гамма?
Линейные координаты в sRGB - это такие координаты, которые дают равномерное изменения цвета при увеличении/уменьшении значения координаты. Цветовое пространство sRGB имеет гамму 2.2. Изменение гаммы приводит к тому, что изображение на мониторе перестает быть изображением в sRGB, и для получившегося нового цветового пространства формулы расчета линейных равномерных значений будут другими.
NEO SPECTRUMAN
01.12.2020, 23:21
Линейные координаты в sRGB -
а потом окажетсо что ЦАП видеокарты выдает уже в линейном представлении...
интересно было бы почитать какой нибудь datasheet
а потом окажетсо что ЦАП видеокарты выдает уже в линейном представлении..
Линейные координаты - это imho чисто программная абстракция для цветокоррекции.
-Добавил поддержку конвертации в ч/б и цветные изображения Profi:
https://jpegshare.net/images/3b/a7/3ba7f5c1f81a101207b225fac8587eb5.png
NEO SPECTRUMAN
04.12.2020, 01:35
ты это добавь выбор n цветов из подсовываемой поллитры
нужно же для всяких там АТМ-ов, векторов
ты это добавь выбор n цветов из подсовываемой поллитры
Уже реализовано.
нужно же для всяких там АТМ-ов, векторов
Всякие АТМ и Векторы также планируются к добавлению.
NEO SPECTRUMAN
04.12.2020, 01:57
Уже реализовано.
прицепи номер версии к поделию
а то не очевидно когда ты оно обновляешь
- - - Добавлено - - -
Уже реализовано.
чот не очень работает
ставлю число меньше
оно автоматически увеличивает
- - - Добавлено - - -
да и еще одна "притензия"
не всегда нужно из самой палитры выкидывать цвета
иногда нужно чтоб что подсунул
то и на выходе (но со всеми ограничениями)
ну например это может быть воксельная карта высот
или номера кодов символов (которыми имитируется яркость)
нужные "цвета" могут быть в середине палитры
а после перемешивания придется востанавливать палитру другим редактором...
прицепи номер версии к поделию
Help\About. Актуальная версия 1.7.
чот не очень работает
ставлю число меньше
оно автоматически увеличивает
Поподробней. Можно со скриншотами.
иногда нужно чтоб что подсунул
Не понятно. Откуда брать данные о тех цветах, которые можно "подсунуть"?
NEO SPECTRUMAN
04.12.2020, 02:05
Поподробней. Можно со скриншотами.
наглядный скриншот
https://jpegshare.net/images/47/43/4743ef4c888ddb28ea143b78fbdc437e.png
- - - Добавлено - - -
возможно нижний потолок в 8 цветов?
- - - Добавлено - - -
Не понятно. Откуда брать данные о тех цветах, которые можно "подсунуть"?
ну до это лишняя операция...
придется сначала подгонять под нужное число
а потом переназначать под такие же цвета в исходной палитре
но у тебя щас палитра оптимизируется под картинку даже когда выбраны все 256 цветов
это полезно
но не всегда это надо
а иногда это не нужно вообще
тк номера цветов могут быть привязаны к железу
возможно нижний потолок в 8 цветов?
Да. Я не имею понятия, как получить более-менее адекватную палитру при менее 8 цветах.
NEO SPECTRUMAN
04.12.2020, 02:09
Да. Я не имею понятия, как получить более-менее адекватную палитру при менее 8 цветах.
а как же машины с 2 бит на точку + палитра?
сходу могу вспомнить например sam coupe
- - - Добавлено - - -
Help\About. Актуальная версия 1.7.
ну всмысле в первый пост :)
ну до это лишняя операция...
придется сначала подгонять под нужное число
а потом переназначать под такие же цвета в исходной палитре
Не понял.
но у тебя щас палитра оптимизируется под картинку даже когда выбраны все 256 цветов
это полезно
но не всегда это надо
а иногда это не нужно вообще
тк номера цветов могут быть привязаны к железу
В следующей версии добавлю галку "хранить в выходном файле полную палитру"
а как же машины с 2 бит на точку + палитра?
Дойду до sam coupe - посмотрю.
NEO SPECTRUMAN
04.12.2020, 02:33
Не понял.
была палитра
0 5
1 66
2 88
3 99
ограничение на 2 цвета
новая палитра
0 5
1 99
натянули полученное изображение на старую палитру (лишнее действие)
0 5
1 66
2 88
3 99
а так было бы круто если бы можно было подгружать палитру и в виде картинки с 256-ю пикселями (16х16, 8х32 итд)
или вообще любых размеров
тк редакторы палитр убогие
и набрать палитру в 256 цветов может быть не легко
намного проще сделать палитру в виде картинки
ее намного проще просмотреть
итд итп
- - - Добавлено - - -
а еще
полезно кода можно палитру не только адаптивно создать
но еще и потом сохранить и применить потом для другого изображения
была палитра
ограничение на 2 цвета
новая палитра
натянули полученное изображение на старую палитру (лишнее действие)
1) Выбрали палитру
2) Установили ограничение
3) Сформировали изображение
4) Ctrl+C
5) Ctrl+V
6) Убрали ограничение
7) Сформировали изображение
а так было бы круто если бы можно было подгружать палитру и в виде картинки с 256-ю пикселями (16х16, 8х32 итд)
Добавлю.
но еще и потом сохранить и применить потом для другого изображения
Зачем? Ведь другое изображение имеет другие цвета.
NEO SPECTRUMAN
04.12.2020, 02:49
Зачем? Ведь другое изображение имеет другие цвета.
ну например это может быть чб картинка с сепией или прочим подобным эффектом
оттенок которой хочетсо перетащить к себе (спздеть : )
так же это может быть полезно когда есть скриншот с какой нибудь игры где 16с (но когда сохранено в 24 бит)
и от куда хочется выдрать интересную палитру (не будешь жо тыкать пипеткой и считать сколько уже набрал цветов)
ну а кроме реальных скриншотов
есть еще закос под пиксель арт в котором тоже ограниченное количество цветов
...конечно такой функционал есть у фотошопа
но фотошоп продукт несколько тяжеловестный
и не бесплатный...
работа же с палитрами в мерзском gimp-е
это просто ахтунх...
NEO SPECTRUMAN
09.12.2020, 04:23
Если вы хотите,
кстате еще напомню что есть такой глюк на LCD с принудительным переводом всего в черезстрочный режим
https://zx-pk.ru/threads/29109-lcd-led-tv-and-hi-res-interlace.html
- - - Добавлено - - -
что не просто типа гигаскрин
а дает такие извращенные результаты дето там у буржуев
https://velesoft.speccy.cz/other/hires-text3.jpg
NEO SPECTRUMAN
09.12.2020, 19:17
Еще вспомнил
нужон поддержка flash color-а
http://speccy.info/Flash_color
когда при установленом бите флеша
ink смешивается пополам с paper-ом
а paper становится 0
по моему в unreal-е эмулировался криво
и не все комбинации смешивались...
нужон поддержка flash color-а
А это вообще хоть кто-то использует?
NEO SPECTRUMAN
10.12.2020, 04:08
А это вообще хоть кто-то использует?
к сожалению не особо
и это есть печально
я когда то даже пытался перекрашивать буратино под оно
но в процессе забил (тк там ink это черный что вызывает много проблем и мерациние и еще оказалось что и эмулятор херню показывает...)
"возрождение" этой шняги должно было быть в новом pentagon 4096
но аффтар сильно увлекся изобретательством и монстро железки пока нет
и не ясно доживет ли этот режим до финальной версии платы
так же по идеи можно настроить ulaplus для совместимости с flashcolor-ом
и по идеи можно писать сразу под то и под то
Dec, огромная благодарность за добавление в результат PCX формата УК-НЦ.
Скрин из UKNCBTL
https://jpegshare.net/images/2a/35/2a358ebaf35270b2ac54e01484976863.png
так же ссылка на данную тему добавлена на Игровом форуме в тему по PCX УК-НЦ, а
текущая версия DaDither на главную мордочку архива.
Спасибо.
moroz1999
26.12.2020, 01:46
Крутые результаты даёт программа, спасибо, пользуемся!
А есть ли возможность добавить в утилиту batch (пакетную) обработку? или папками или список файлов, выбрать метод конверсии и пусть конверит весь список.
NEO SPECTRUMAN
26.12.2020, 11:24
А есть ли возможность добавить в утилиту batch (пакетную) обработку?
думаю на конвертацию видева уйдет вечность :v2_lol:
как вспоминаю скорость гасмановоского? divIDEо конвертера :v2_dizzy_wall:
а тут все совсем медленно
думаю на конвертацию видева уйдет вечность :v2_lol:
как вспоминаю скорость гасмановоского? divIDEо конвертера :v2_dizzy_wall:
а тут все совсем медленно
не обязательно видео. есть куча файлов со спрайтами/тайлами, которые жахнуть бы пакетно, а то сидеть ручками это всё конвертить, такое себе занятие.
Было бы здорово в режиме Common>Palette>Adaptive задавать не только Max Color Count, но и максимальное число бит на каждый канал палитры (например для классического vga по 6, для мультикарты ориона-про по 4 и т.д.). В идеале еще бы и отдельно и независимо для каждого из каналов rgb
NEO SPECTRUMAN
26.12.2020, 19:15
Было бы здорово в режиме
тут вопрос куда складывать кнопочки всех настроек?
ато настраеваемых тонкостей конвертации больше
чем кода самого конвертера :v2_lol:
А есть ли возможность добавить в утилиту batch (пакетную) обработку?
В планах есть, но это не приоритетная задача.
- - - Добавлено - - -
Было бы здорово в режиме Common>Palette>Adaptive задавать не только Max Color Count, но и максимальное число бит на каждый канал палитры
Планируются режимы RGB111, RGB222, RGB332, RGB333, RGB444, RGB555, RGB565, RGB666, RGB777.
В планах есть, но это не приоритетная задача.
- - - Добавлено - - -
Планируются режимы RGB111, RGB222, RGB332, RGB333, RGB444, RGB555, RGB565, RGB666, RGB777.
надеюсь, RGB888 тоже останется.
надеюсь, RGB888 тоже останется.
Разумеется.
NEO SPECTRUMAN
26.12.2020, 19:56
Dec, а в процессе ты не находил "наглядное" описание как делать ордеред дизеринг?
а то я не представляют мат часть без расхода килотон памяти...
нелюбители флойдов как раз на такое фапают
а все конвертеры, разумеется, не учитывают матчасть :)
ты не находил "наглядное" описание как делать ордеред дизеринг?
Нет, я пока не вникал в ordered dithering.
Одно мааааленькое замечание. :)
В случае с МС 0515 лучше писать не "Electronics", а "Elektronika", транслитом. Это часть названия и пытаться переводить его некорректно.
Вот на сайте С. Фролова написано верно: http://www.leningrad.su/museum/show_calc.php?n=267
Да и Corvette лучше превратить в Korvet
А программа очень полезная, я в начале года фотошопом в палитру и разрешение EGA конвертировал, а это не слишком удобно. Результаты тут (https://sun9-25.userapi.com/impg/GIOUcbubr7kR1pDSesMhiLHqPXBIRZ1imxcFEQ/NFXB8vJaF84.jpg?size=1620x2160&quality=96&proxy=1&sign=3daca37c8e5d654bece87b5a636fb7d3&type=album)
В случае с МС 0515 лучше писать не "Electronics", а "Elektronika", транслитом
Согласен, переделал.
Corvette лучше превратить в Korvet
Я ориентировался на страницу с английской вики (https://en.wikipedia.org/wiki/Corvette_(computer)).
Было бы здорово в режиме Common>Palette>Adaptive задавать не только Max Color Count, но и максимальное число бит на каждый канал палитры (например для классического vga по 6, для мультикарты ориона-про по 4 и т.д.).
Добавлены режимы RGB111...RGB777. VGA в отдельном пресете.
Также добавлена возможность выбора области из исходного изображения, которую нужно конвертировать. Для режимов атрибут на байт отображаются границы знакомест, это может позволить добиться более качественной конвертации.
Dec, хорошо бы еще добавить конверсию для Специалиста. 384x256 точек, фон всегда черный и 3 варианта цветов точек, которые задаются для блока 8x1 точек:
1. белые точки (с фоном получается ч/б)
2. R, G, B и белый (т.е. с фоном всего 5 цветов)
3. 8 цветов из комбинаций R+G+B (всего 8 цветов, черный цвет точек совпадает с черным фоном)
Своего формата у Специалиста нет, но можно в bmp (и png и т.д.)
1. белые точки (с фоном получается ч/б)
Понятно.
2. R, G, B и белый (т.е. с фоном всего 5 цветов)
Непонятно. Как пять цветов кодируются в 2n бит. Лучше дай какую-нибудь ссылку на документацию.
3. 8 цветов из комбинаций R+G+B (всего 8 цветов, черный цвет точек совпадает с черным фоном)
Понятно.
Своего формата у Специалиста нет, но можно в bmp (и png и т.д.)
Тогда уж лучше писать в виде дампа памяти. И, соответственно, мне нужны образцы для исследований.
Pixel aspect ratio? Палитра?
NEO SPECTRUMAN
05.01.2021, 11:43
Тогда уж лучше писать в виде дампа памяти.
И, соответственно, мне нужны образцы для исследований.
ну у специалиста атрибуты несколько недосягаемые для прямого чтения\записи
там выбирается атрибут (шлется в порт)
и любая запись в видео память дублирует по тем же адресам памяти атрибутов этот атрибут...
(по крайней мере это вроде так для 5с и 8с что там за режимы на MX-х яхз)
paper всегда черный
результат вроде типо хардварного мультиколора
ну а строение экрана самое что нинаесть идеальное для спектрума :)
он повернут на 90 градусов
и линейный по обоим осям
переход к соседним байтам при помощи inc\dec h inc\dec l
$0000 байт X0,Y0
$00FF байт X0,Y255
$0100 байт X1,Y0
$2FFF байт X47,Y255
- - - Добавлено - - -
http://www.spetsialist-mx.ru/images/colortable1.png
пробежался по залежам описаний
эти бляди понавыкладывали везде только про 8 цветный контроллер цвета
видителе 5 цветный никому не нужен...
переход к соседним байтам при помощи inc\dec h inc\dec l
Как это возможно при размере экрана 384x256?
NEO SPECTRUMAN
05.01.2021, 11:48
Как это возможно при размере экрана 384x256?
легко
присмотрись
$00 00 - X0,Y0
$00 FF - X0,Y255
$01 00 - X1,Y0
$2F 00 - X47,Y0
$2F FF - X47,Y255
X это байты 8 пикселей в ширину
48*8 = 384
поэтому я и говорю что экран "повернут"
http://www.spetsialist-mx.ru/images/colortable1.png
А точные RGB значения есть? Или можно из картинки брать?
- - - Добавлено - - -
присмотрись
Присмотрелся. И все равно не понял. $nnFF = X383,Y255. Чему равно nn?
NEO SPECTRUMAN
05.01.2021, 11:50
Или можно из картинки брать?
чисто кодерские цвета
чисто кодерские цвета
Не понял формулировку. Что обозначает "кодерские"?
NEO SPECTRUMAN
05.01.2021, 11:59
"кодерские"?
это означает что цвет отдельной компоненты или $00 или $FF :)
вот собственно 8с
https://jpegshare.net/images/f9/f2/f9f2bedef3d9cabdac16d4c771dd64cd.png
тут на каждую компоненту выделили по одной ру-шке (16К х 1бит)
из которых 4*3 Кбит памяти не используется :)
...блджд никогда бы не подумал что придет время когда нельзя будет нагуглить *****й "моделист контсруктор 07 88" в долбанном гугле :v2_dizzy_facepalm:
- - - Добавлено - - -
по МХ контроллер описан тут
http://www.spetsialist-mx.ru/index23.html
но как оно работает я не вникал
Как это возможно при размере экрана 384x256?
Организация ч/б части специалиста аналогична плоскостям вектора, только столбцы сверху-вниз, а не снизу вверх. Для ч/б можно и дамп генерировать. А для цветных вариантов только если какой-то формат изобретать, простой пересылкой дампа отобразить цветную картинку не получится.
Pixel aspect ratio? Палитра?
Примеры палитры из Emu и Emu80
7439274393
Пиксельклок 8 МГц, т.е. ширина точки 7/8 от точки спека (при пискельклоке спека 7 МГц). PAR примерно 92:100
2. R, G, B и белый (т.е. с фоном всего 5 цветов)
Правильно ли я понимаю, что в блоке 8x1 может быть всего два цвета: черный + один из четырех.
3. 8 цветов из комбинаций R+G+B
Правильно ли я понимаю, что в блоке 8x1 может быть всего два цвета: черный + один из восьми.
NEO SPECTRUMAN
05.01.2021, 12:37
А для цветных вариантов только если какой-то формат изобретать, простой пересылкой дампа отобразить цветную картинку не получится.
какая проблема?
атрибуты подряд ложить отдельно сразу после
читаем атрибут
шлем в порт
читаем байт
шлем в экран
на случае чего первыми идет чб изображение в формате чб специалиста
- - - Добавлено - - -
Правильно ли я понимаю,
до до
- - - Добавлено - - -
протрахавшись битый час с гуглом
статью с 5 цветным контроллером наконец нашел
https://jpegshare.net/images/96/19/9619ba3a0c82d6a79ec36fb52a305d82.png
https://jpegshare.net/images/a0/b0/a0b080355e8f376b400136e8b6979354.png
Правильно ли я понимаю, что в блоке 8x1 может быть всего два цвета: черный + один из четырех.
Правильно ли я понимаю, что в блоке 8x1 может быть всего два цвета: черный + один из восьми.
Да, все так
NEO SPECTRUMAN
05.01.2021, 13:29
проверил номера цветов в эму80
5с
https://jpegshare.net/images/90/50/90506e17ea16f855222bc8bcd6724309.png
8с
https://jpegshare.net/images/bf/1d/bf1d49a52a95806a6ad4df5a36811557.png
в процессе очепяталсо (вместо 0 тыкнул 9) но сути это не меняет
так же там похходу возможен черный на черном? о_О
про такое я не в курсе
- - - Добавлено - - -
какая проблема?
атрибуты подряд ложить отдельно сразу после
читаем атрибут
шлем в порт
читаем байт
шлем в экран
на случае чего первыми идет чб изображение в формате чб специалиста
конечно для вывода было бы быстрей чередовать атрибуты с пикселями...
но думаю это усложнит последующую работу с полученным файлом
По поводу Специалист MX. Правильно ли я понимаю, что на MX доступных цветов стало 16, но основа та же - 2 цвета на блок 8x1? На MX можно устанавливать цвет и на фон, при этом можно совмещать яркие и светлые цвета в одном блоке? Например, светло-синий для фона и темно-красный для точек? Или же как на спектруме - яркий фон только с ярким цветом точек, а темный фон - только с темным цветом точек?
NEO SPECTRUMAN
05.01.2021, 14:06
судя по схеме там раздельное 16 цветов для фона 16 цветов для пикселей
НО
цап тут без диодов (как например это в пентаогне)
https://jpegshare.net/images/a9/72/a97232d060676bcb2e1e328e69a6f9f1.png
и какие тут цвета при брайте 1 не совсем ясно
я бы сказал что когда установлен брайт добавляется половинная якрость к каждой компоненте а не только к активной
нужно уточнение какая тут поллитра
Правильно ли я понимаю, что на MX доступных цветов стало 16, но основа та же - 2 цвета на блок 8x1? На MX можно устанавливать цвет и на фон, при этом можно совмещать яркие и светлые цвета в одном блоке? Например, светло-синий для фона и темно-красный для точек?
Да, все так
- - - Добавлено - - -
В эмуляторах цвета сильно отличаются
NEO SPECTRUMAN
05.01.2021, 14:24
В эмуляторах цвета сильно отличаются
думаю что 2-й вариант совсем левый
там вообще не логичные цифры
В эмуляторах цвета сильно отличаются
На правой картинке цвета линейные (кроме серого), а на левой у светлых цветов подмешаны дополнительные цвета - там где должен быть 0, там стоит значения 128. Почему именно 128? Типа половина яркости? Но половина яркости - это 188 (или 192 как в этих палитрах).
NEO SPECTRUMAN
05.01.2021, 14:29
там стоит значения 128. Почему именно 128?
это судя всего поллатра написанная по слухам
отечественные компутеры обычно так и эмулирются :)
- - - Добавлено - - -
а это выглядит правдоподобно
https://zx-pk.ru/attachment.php?attachmentid=74395&d=1609845105
Может быть есть где-нибудь в природе фотография с монитора, на которой изображена эта палитра. Хочется посмотреть, действительно ли "темно-белый" отличается от "светло-черного" )
Единичная фотография с монитора может показать что угодно. Есть "авторские" варианты цветов (http://www.spetsialist-mx.ru/index23.html), которые я мягко назвал бы удивительными, т.к. взяться им при нормально настроенном телевизоре вроде неоткуда.
NEO SPECTRUMAN
05.01.2021, 15:18
взяться им при нормально настроенном телевизоре вроде неоткуда.
судя по всему эти цвета сначала напечатали на принтере :)
а потом придумали им названия и подобрали на глаз RGB значения
- - - Добавлено - - -
диничная фотография с монитора
поэтому только скриншот с тв тюнера спасет отца русской демократии
поэтому только скриншот с тв тюнера спасет отца русской демократии
А по схемы не посчитать? А тебя есть идея "я бы сказал что когда установлен брайт добавляется половинная якрость к каждой компоненте а не только к активной", ее можно развить дальше до конкретных цифр?
NEO SPECTRUMAN
05.01.2021, 16:10
ее можно развить дальше до конкретных цифр?
можно
но не мной :)
а так вокруг все такие умные
но почему то никто никогда и нигде не может посчитать 3 *****х резистора по закону ома... :v2_lol:
- - - Добавлено - - -
ее можно развить дальше до конкретных цифр?
я порасматривал варианты ЦАП-а на спектруме с диодами
и пришел к выводу что принципиально они не отличаются (кроме отсекания черного брайта 1)
тк на вид никак не ограничивают равномерного добавления ко всему и сразу?
и тогда получается что и в наших спектрумах не чистые кодерские цвета при брайте а разбавленные белым
что как бы не логично(на фоне везде принятых кодерских цветов) и опять же требует уточнения...
- - - Добавлено - - -
вот на реальном пентагоне подобное подмешивание выглядит так
https://zx-pk.ru/threads/31125-test-eshchjo-odnogo-videoartefakta-pentagona.html?p=1037687&viewfull=1#post1037687
https://a.radikal.ru/a12/1912/38/5b858c7557ect.jpg
- - - Добавлено - - -
а вот скриншот с эльфа (тут как раз есть черный брайт)
там цап подобным образом но с другим соонтошением
и тут как раз очень похоже на ту первую картинку с палитрой МХ
http://zxbyte.ru/pic/alf/alf24.jpg
но тут количество яркости добавляемой к голубому и черному
явно совершенно разное...
голубой ~ 0,64,64
с брайтом ~ 64.255,255
черной ~ 0,0,0
с брайтом ~ 64,64,64
хорошо бы еще добавить конверсию для Специалиста
Добавил.
- - - Добавлено - - -
но тут количество яркости добавляемой к голубому и черному
явно совершенно разное...
голубой ~ 0,64,64
с брайтом ~ 64.255,255
черной ~ 0,0,0
с брайтом ~ 64,64,64
Логика прослеживается. 0 превращается в 64, 64 превращается в 255.
NEO SPECTRUMAN
06.01.2021, 11:38
Логика прослеживается. 0 превращается в 64, 64 превращается в 255.
не особо прослеживается
- - - Добавлено - - -
64, 64 превращается в 255.
точнее не ясно а почему именно так
и что будет при других номиналах резистров
и подмешиванием брайта параллельно от одного выхода (а не от 3-х разных как тут на картинке)...
ну и цифры сильно округлены
Добавил.
Спасибо, вероятно это первый доступный широкой общественности конвертер картинок для специалиста
NEO SPECTRUMAN
06.01.2021, 12:22
Dec, а как ты проверяешь пригодность определенной палитры для картинки?
а как ты проверяешь пригодность определенной палитры для картинки?
Для БК/CGA? Считаю дельту между исходной картинкой и конвертированной. Меньшая дельта - более правильная палитра.
NEO SPECTRUMAN
06.01.2021, 13:49
исходной картинкой и конвертированной
ну то есть 100500 палитр
100500 конвертаций?
у меня конвертация еще медленнее
и я пыталсо подбирать палитру сравнивая ее с первоначальным изображением
- - - Добавлено - - -
Для БК/CGA?
наверно вопрос по АТМ вектор
где количество палитр бесконечно
ну то есть 100500 палитр
100500 конвертаций?
Можно квантовать изображение и сравнивать полученные цвета с палитрами и выбирать наиболее подходящую. Но я не заморачивался этим, для небольшого кол-ва палитр проще сделать простым перебором.
- - - Добавлено - - -
наверно вопрос по АТМ вектор
В этом случае - квантование. Других вариантов нет.
NEO SPECTRUMAN
06.01.2021, 14:02
артифакты у специалиста конечно дикие
https://jpegshare.net/images/4a/11/4a112f1a7e30e6f17ba2aa7e4e4d36a7.png
особенно на 5с
https://jpegshare.net/images/ed/eb/edeb32d70a6e987edd3c1d45217b177a.pnghttps://jpegshare.net/images/4b/be/4bbe3340a294e46377ddbb6a6b9f0c48.png
- - - Добавлено - - -
Если вы хотите, что бы программа умела конвертировать графику для какой-то дополнительной платформы - пишите, все решаемо.
кстате
а ищо можно было бы добавить 256х256 от Львов ПК-01
но у него 128 фиксированных 4-х цветных поллитр
и 2 их варианта
https://jpegshare.net/images/9c/a8/9ca8260d43b699b5e385a7acf8e3538c.png https://jpegshare.net/images/5c/f7/5cf7e7544c6fbecb8ba11d793ca8fd1a.png
артифакты у специалиста конечно дикие
На таких хитрых палитрах, как на Специалисте, дизеринг особо не поделаешь.
NEO SPECTRUMAN
06.01.2021, 14:08
На таких хитрых палитрах, как на Специалисте, дизеринг особо не поделаешь.
да по сравнению со спецтрумом тут 4К :)
по крайней мере 8с вариант
можно было бы добавить 256х256 от Львов ПК-01
Посмотрю.
- - - Добавлено - - -
да по сравнению со спецтрумом тут 4К
по крайней мере 8с вариант
Если бы можно было было бы устанавливать произвольный цвет фона - то да, а так - максимум 2K )
NEO SPECTRUMAN
06.01.2021, 16:36
Посмотрю.
по генерации самой палитры вот
http://pc01.lviv.ua/forum/viewtopic.php?f=2&t=154&start=30#p2346
суть такова что битами d6,d5,d4 выбираем основной цвет (зеленый при этом инверсный)
http://pc01.lviv.ua/forum/download/file.php?id=19
осталные цвета задаются инвертированием компонент основного цвета
2-й цвет - битами d3,d2
3-й цвет - битом d1
4-й цвет - битом d0
http://pc01.lviv.ua/forum/download/file.php?id=18
d7 - вообще отвечает за заглушку внешнего динамика :v2_lol:
на случай если хочется пищать только на магнитофон (но помойму пзу это не использует :v2_lol:)
строение байта экрана вроде такое (1 пиксель находится одновременно в обоих ниблах)
----T---T---T---T---T---T---T---¬
¦ 7 ¦ 6 ¦ 5 ¦ 4 ¦ 3 ¦ 2 ¦ 1 ¦ 0 ¦ Байт экранного ОЗУ
L-T-+-T-+-T-+-T-+-T-+-T-+-T-+-T--
¦ ¦ ¦ L---+---+---+---*
¦ ¦ L-------+---+---* ¦
¦ L-----------+---* ¦ ¦
L---------------* ¦ ¦ ¦
¦ ¦ ¦ ¦
--+-T-+-T-+-T-+-¬
¦ 1 ¦ 2 ¦ 3 ¦ 4 ¦ Пикселы на экране
для стандартной RGB палитры ($F по счету)
0xxx0xxx - black
0xxx1xxx - blue
1xxx0xxx - green
1xxx1xxx - red
щас раздуплим какие это логические цвета для поллитры
- - - Добавлено - - -
соответствие байта экрана битам палитры такое
0xxx0xxx - d3,d2
0xxx1xxx - d0
1xxx0xxx - d6,d5,d4
1xxx1xxx - d1
а ну и до
экран линейный слеванаправо сверхувниз 64х256 байта
пиксели прямоугольные надо уточнять
давайте предположим что частота пикселей 5МГц
и что пиксели в ширину 1,4 относительно спектрумовских :) (я всегда считал как 1,5)
- - - Добавлено - - -
самая ровная фотка с экрана
https://i.ibb.co/fdvdzjN/C2281264-B524-4118-AFF3-640020-D1-DC32.jpg
https://ibb.co/1G6GtFX
256х256 без сохранения пропорций для проверки
https://jpegshare.net/images/78/4c/784c1be33a4511dda09c41f8bc4f4348.png
и надо как то сохранять номер палитры
нето ложить его в имя файла
нето ложить последним байтом
- - - Добавлено - - -
Dec, еще полезно продублировать бегунки обычным цифровым вводом
например может понадобится конвертировать жменю изображений с одинаковыми настройками (и не обязательно за один заход)
чтоб они примерно одинаково выглядели
а выцеливать нужную цифру бегунком сомнительное удовольствие
и 2 их варианта
Белый всегда белый (не серый)?
Что-то у меня не выходит твой алгоритм кодирования палитры. Возьмем палитру №40 (слева твое, справа мое):
https://jpegshare.net/images/e4/c1/e4c1cc5f087cb5324fdfe986d1f3bb69.png
40 = 010 10 0 0
Цвет 1: 010
0,0,0: черный
Цвет 2: 10 - xor-им BG цвета 1
0, 255, 255: голубой
Цвет 3: 0 - xor-им R цвета 1
255, 0, 0: красный
Цвет 4: 0 - xor-им BGR цвета 1
255, 255, 255: белый
Как у тебя получается два голубых цвета?
И еще бы ты дамп экранной области сделал.
еще полезно продублировать бегунки обычным цифровым вводом
Да, давно собирался сделать, руки никах не доходили.
NEO SPECTRUMAN
06.01.2021, 17:38
Белый всегда белый (не серый)?
не знаю чего так и так ли вообще
вроде там ничего такого на схеме и нет
но дето упоминалось о том что цвета получаются грязные
может это подмешивали к каждой компоненте дополнительно сигнал video (там 4-й на схеме)
цветным я оно никогда не видел
точно сказать не могу...
- - - Добавлено - - -
Как у тебя получается два голубых цвета?
элементароно вацусон
у меня пол литра сделана ручками (и видмо проскочило ошибко)
вот тебе из более надежного источника (собственно та картинка сделана из этой : )
тут вроде такого нету
https://jpegshare.net/images/5d/fc/5dfc4b2973f859824c8cfc3148a6545d.png
да и сам алгоритм раздуплен именно из этой картинки
и с реалом это скорей всего не сверено :)
так же сам "алгоритм" не проверен для всех цветов
все что я брал для проверки совпадали
на схеме просто избыточная наглядность :)
https://jpegshare.net/images/24/08/2408c69f9b78effb0b9953f745275f35.png
- - - Добавлено - - -
дампы экранов
https://dropmefiles.com.ua/ru/7ZvH4fME
дублирую еще тут
https://anonfiles.com/ZbA6l86ep6/lvov_7z
можно было бы добавить 256х256 от Львов ПК-01
Добавил. Два варианта - 200x225 и 256x256. На выходе дамп + 1 байт с кодом палитры. Палитра только с "кодерскими" цветами. Будут более точные данные по палитре - пиши, поправлю.
NEO SPECTRUMAN
07.01.2021, 21:25
Добавил
проверяем
https://jpegshare.net/images/da/40/da409940ca06fb0081138ea80fc7f8c8.png https://jpegshare.net/images/29/cd/29cd2205419ac9d02efc91c3502ad6cd.png
https://jpegshare.net/images/c8/02/c80297b67c76166b6da42f4b8bd4e2be.png https://jpegshare.net/images/c6/c3/c6c342860ae756e0349da94114ddc923.png
https://jpegshare.net/images/8a/85/8a85e6c571425112b0e594d65e1905cc.png
https://jpegshare.net/images/04/4f/044fd9cf57d2851e9115eddd7cea572c.png https://jpegshare.net/images/2d/53/2d535ba72428ae9da797c204f7ac3ec3.png
https://jpegshare.net/images/dd/94/dd94080cdd66e44c1027f869a8503cfd.png https://jpegshare.net/images/52/5d/525df3ffd350311077d286084ed17cfe.png
https://jpegshare.net/images/7c/0d/7c0d4f4bc99275cb8ee92a7907f5f9fb.png https://jpegshare.net/images/98/32/9832c90fac5425e2c251e31e2b3bf52b.png
по крайней мере проверенные в emu палитры на вид совпадают
- - - Добавлено - - -
Два варианта - 200x225 и 256x256. На выходе дамп + 1 байт с кодом палитры.
замечаниЁ
1. белая рамка при сплющивании подставляется перед конвертацией
https://jpegshare.net/images/3f/7c/3f7ce9d951167ec7f22b41dc3451c83d.png
со всеми вытекающими
https://jpegshare.net/images/52/0f/520fa540320c5f65561f8ec5c492e143.png
оно начинаит считать белый одним из основных цветом
которого на картинке может и близко не быть
тут можно сделать 3 варианта
белый фон
черный фон (именно его лучше по дефолту тк черный есть почти всегда (да и обычно на спектрумах ставят именно черный бордюр чтоб не мозолил глаза))
фон какой получитсо (тк может быть пофиг какого цвета рамка)
2. номер палитры лучше отображать и в самом редакторе
подсматривать в hex редакторе какой же номер палитры у сконверченой картинки не очень удобно
ну и это актуально наверно и для бека
3. щас нет возможности нормально выставить максимальный уровень для наиболее рационального испоользования
есть ligtness fix но оно измеряется в сферически вакуумных единицах и нужный оптимальный не поставишь
можно было бы сделать вообще несколько прессетов
255 > 85 - для RGB0 палитр в которых белый получается при помощи 3-х пикселей
255 > 128 - для палитр в которых белый получается при помощи 2-х инверсных пикселей (например зеленый+магента)
255 > 171 - для CMY подобных палитр в которых белый получается при помощи 3-х пикселей (собственно C, M, Y)
и можно было бы режим auto
когда динамический диапазон подгоняется под каждую палитру
например
если на картинке максимальная яркость 230 а в палитре есть 255 растягиваем картинку 230 до 255
если на картинке максимальная яркость 230 а в палитре только 128 то сплющиваем 230 до 128
нижний уровень наверно не нужно дотягивать до 0
но это нужно как то делать с учетом того что белый получается из 2-х 3-х цветов
и что самого белого на картинке может и не быть
нужно или перебирать комбинации 3-х цветов для всей палитры
или считать по сумме яркостей (может с коэфициентами) и может тогда недостающие цвета будут замененны эквивалентными хотябы по яркости а не просто срезаны
или нужно как то проверять для каждой компоненты раздельно
я еще не дошел до реализации подобного
и пока правильный алгоритм действий не придумал...
- - - Добавлено - - -
Dec, так же наверно нужно в первом посте описать нестандартные форматы изобретенные в этой теме
ато потом затеряется в каком формете экран специалиста с атрибутами
где палитра в формате экрана львова
белая рамка при сплющивании подставляется перед конвертацией
А куда ее девать? Если пользователь захотел режим "сплющивания" - то это его видение композиции, и рамка является частью композиции, и ответственность за цвет рамки несет пользователь. Я могу добавить что-нибудь типа кнопки Auto, при нажатии которой цвет рамки будет подбираться автоматически на основе пикселей, расположенных вдоль рамки.
Другое дело - если тебе нужно создать что-то типа спрайта. В этом случае нужно отключать фиксированные размеры выходного изображения, как, например, это сделано для Вектора.
номер палитры лучше отображать и в самом редакторе
Согласен.
есть ligtness fix но оно измеряется в сферически вакуумных единицах и нужный оптимальный не поставишь
Как работает Ligtness fix:
При отрицательных значения светлые цвета затемняются, был диапазон 0-100, станет диапазон 0-80.
При положительных значения темные цвета засветляются, был диапазон 0-100, станет диапазон 20-100.
Единица измерения - проценты.
Модификация цвета производится в цветовом пространстве CIELab путем модификации L-компоненты.
нужно в первом посте описать нестандартные форматы изобретенные в этой теме
Согласен. Но по сути изобретен лишь один формат - для Львова. Для Специалиста нет какого-то своего проприетарного выходного формата кроме bmp/png/gif.
NEO SPECTRUMAN
07.01.2021, 22:06
Для Специалиста нет какого-то своего проприетарного выходного формата кроме
просмотрел
я думол и для него сделано
надо наверно сделать
чтоб не писать отдельный png2specialist конвертер :)
- - - Добавлено - - -
Модификация цвета производится в цветовом пространстве CIELab путем модификации L-компоненты.
хотел показать как надо
а у меня у самого оно как то криво сделано
и результатом я совершенно не доволен
я умножал на коэфициент уже в линейном RGB пространстве
белый то получается белым но другие цвета чота ярче чем надо...
если подумать
по идеи нужно умножать на 0.3333... 0.5 0.6666... еще в sRGB пространстве
но я не помню почему я отказался от этого в пользу умножения в линейном пространстве
в итоге у меня щас такое результат при компрессии кодерских цветов до 85
https://jpegshare.net/images/ab/59/ab5902e8c7d049db75114898f27193ac.png
белый получился срезанным затемненным
а по идеи результат должен быть такой
https://jpegshare.net/images/3a/c6/3ac6ce1d5e220210bf82f1b4bb8bbb77.png
замена черного на синий в желтом должна давать белый
замена черного на красный в голубом должна давать белый
- - - Добавлено - - -
Модификация цвета производится в цветовом пространстве CIELab путем модификации L-компоненты.
наверно это дает совсем не правильный результат
https://jpegshare.net/images/2d/bf/2dbf5a304c0d4fa4459a0ba7f0edffd7.png
синий уж совсем выпячиваетсо
https://jpegshare.net/images/61/79/61798817656bf546242feef45a501122.png
кстате этой коррекции нету для режима с выбираемой поллитрой
сама тестовая картинка
https://jpegshare.net/images/c5/7c/c57ce2a8f3a004d5a714eb7cbcab7f05.png
надо наверно сделать
чтоб не писать отдельный png2specialist конвертер
Я ведь не против. Но нужно что бы Специалистоводы рассказали мне, как им удобнее. А то я сделаю формат, а пользоваться им не возможно будет.
в итоге у меня щас такое результат при компрессии кодерских цветов до 85
Что такое 85? Конвертация в какую палитру?
NEO SPECTRUMAN
08.01.2021, 00:16
Что такое 85? Конвертация в какую палитру?
85 это сплющенные 255 до 85 в sRGB диапазоне
для конвертации в 4 цветные палитры с одними только кодерскими red, green, blue, black
цифра со времен конвертаций в фотошопах
для линейного диапазона наверно это будут другие цифры
а у себя я наверно подставил фиг знает что :v2_dizzy_wall:
щас потыкаю у себя
- - - Добавлено - - -
ну до
поклацал цифры в линейном диапаозоне результат посредственный
щас когда делая сплющивание до 85 еще когда изображение в sRGB
итоговое изображение не выходит на нужную яркость
https://jpegshare.net/images/5b/d5/5bd5a7d3c452a59391dbd8f943987226.png
то есть сумарно 3 канала дают не 85 яркость а большую (что вобщем то и так было нам уже известно...)
и коррекцию диапазона нужно делать все таки в sRGB пространстве (тогда будут сохранятся именно вопсринимаемые соотношения яркостей)
- - - Добавлено - - -
вощем происходит какаято дичь
ставлю коэфициент 0,5 для sRGB
и все правильно
https://jpegshare.net/images/52/21/5221f0dd58cfd4866243251bb007862c.png
каждый канал сохраняет свою яркость
https://jpegshare.net/images/b6/76/b6766c9eed899864706d781fdc676d47.png
ставлю расчетный 0.612501025 (0.333333 в линейном пространстве (оно же 85 для фотошопов))
и появляется перегрузка
https://jpegshare.net/images/27/32/273252e43edf9b72cb437b2252c5b241.png
https://jpegshare.net/images/e6/26/e6260f3b08fff868f10fc9fce633e20a.png
меньший коэфициент дифузии тоже не спасает
так что это не изза текучки
- - - Добавлено - - -
методом научного тыка подобрал коэфициент для sRGB 0.54735
https://jpegshare.net/images/ac/ce/acce9732506804bf016346662ff78d4a.png
изображение разбирается на ~ равномерные компоненты
https://jpegshare.net/images/3e/36/3e360b12a8fe65552310f24bdd0f44be.png
https://jpegshare.net/images/aa/ff/aafff69229e150d20678cc4c96e99a0e.png
https://jpegshare.net/images/51/fa/51faadcf52626247a9a195c1393e84ec.png
- - - Добавлено - - -
ну и на реальном изображении
0.54735 для sRGB пространства
https://jpegshare.net/images/19/02/19025b4624d4755c7f0e7487d6643fb4.pnghttps://i.postimg.cc/SxXZ8Wh0/kon-02.png
0.333333 для линейного RGB пространства (оно же -lc 85 в NDither-е)
https://jpegshare.net/images/14/1d/141d78f46e1fd877fd92ae5b463468e4.pnghttps://i.postimg.cc/SxXZ8Wh0/kon-02.png
видно перегрузку на фоне
0.090841711 для линейного RGB пространства
https://jpegshare.net/images/4f/9f/4f9f18d4d2f6643b8f72cfcea4fdd5d8.pnghttps://i.postimg.cc/SxXZ8Wh0/kon-02.png
явно недотягивает
- - - Добавлено - - -
sRGB-шное 0,54735 переводится в линейное как 0,260514255
но чего так?
на суммарную единицу это не выходит 0,781542765
можот дето у меня ошибки левые коэфициенты...
тк у меня сорец сильно обвешан экспериментальными свистелками и перделками
Что бы сохранить соотношение яркостей при затемнении цветов - то на мой взгляд правильным решение является умножение на ровно 0.5 в линейных координатах.Все сложнее, чем я думал. "Белый" на скриншоте ниже выглядит темнее "желтого".
Я поправил алгоритм Ligtness fix, теперь коррекция производится в линейных RGB. И если в режиме Львова выставить значение -50, то для твоей тестовой картинки для палитры Black/Red/Green/Blue получается минимальная дельта, и она выбирается автоматически. Сама конвертированная картинка выглядит так:
https://jpegshare.net/images/f6/92/f692f4cb87218075e1b96f2f8c8e52f5.png
- - - Добавлено - - -
И конкретно для палитры Black/Red/Green/Blue можно попробовать использовать фильтр Байера (https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80_%D0%91%D0%B0% D0%B9%D0%B5%D1%80%D0%B0).
- - - Добавлено - - -
Расширил границы fix до -90...90. Примерно на -60 "белый" становится светлее "желтого".
https://jpegshare.net/images/88/cd/88cda543dd72c37be70e921787bf2cc1.png
https://jpegshare.net/images/b8/b2/b8b214e10a19f9ac6a6d00476e778b7e.png
NEO SPECTRUMAN
08.01.2021, 20:01
так лучшо
но перегрузка остается
https://jpegshare.net/images/36/14/36144f4009ba376904fb76fd650beb7e.png
https://jpegshare.net/images/0d/51/0d515435ef07eaed21bfe8065fdfde06.png
https://jpegshare.net/images/31/3f/313f08afbfe2349adb15d43af9c3b349.png
- - - Добавлено - - -
то на мой взгляд правильным решение является умножение на ровно 0.5 в линейных координатах
оно то правильное НО
восприятие логарифмическое
+-1% на линейной яркости 0
намного различимей чем
+-1% на линейной яркости 255
а гамма коррекция sRGB как раз делают шкалу логарифмической
я как раз хотел прикрутить себе такой учет разницы восприятия для разной яркости
чтоб не терять детали на черном и чтоб подбиралось близкие цвета с учетом различимости
в итоге у меня получился практически sRGB
и дизеринг разумеется стал работать на нем как в фотошопе...
...конечно у меня еще есть идея как подобное сделать
но это нужно будет опять плясать с бубном...
ну и в случае цветов полученных шахматкой
умножение в линейном пространстве наверно тоже испортит соотношение между получаемыми цветами
хотя это еще надо экспериментально уточнить
если подумать то вариант с умножением в sRGB тоже не правильный
надо подумать еще
но щас что то считать нет никакого желания
добавлю в todo
наверно всетаки правильно умножение в линейном
оно будет сохранять линейные соотношения между цветами
как раз эти соотношения и воспринимаются
и так как sRGB шкала логарифмическа ТО получается
можно быстро делать ~линейное управление яркостью
при помощи инкримента\декремента в sRGB пространстве
Я теперь склоняюсь к мысли, что правильно умножать на 1/3, поскольку белый получается суммой трех пикселей B (яркость 0.072187), R (яркость 0.212655) и G (яркость 0.715158). И усредненная яркость этого кластера 0.33333(3).
NEO SPECTRUMAN
08.01.2021, 20:31
на 1/3
это и есть то 85
но у меня чего то появляется при этом перегрузка
проверь у себя
может это у мну косяки
- - - Добавлено - - -
вот тут фон явно срезался (справа снизу например)
https://jpegshare.net/images/14/1d/141d78f46e1fd877fd92ae5b463468e4.png
да и на тестовой картинке у меня срезался белый
но множителе подобранном ручками фон целый
https://jpegshare.net/images/19/02/19025b4624d4755c7f0e7487d6643fb4.png
- - - Добавлено - - -
чисто по идеи на все случаи жизни должны быть множители
0,3333
0,5
0,6666
Ты можешь скачать обновленную версию и выставить -67. что соответствует умножению на 0.33.
NEO SPECTRUMAN
09.01.2021, 13:45
и выставить -67
перегрузки нет
https://jpegshare.net/images/7f/c9/7fc9fbfe065cc271594de40b105ed2de.png
https://jpegshare.net/images/1e/d0/1ed06fb8951a90cae5b0699105704c7e.png
https://jpegshare.net/images/f2/a2/f2a2771016fc6d37a81c834da56c27d6.png
https://jpegshare.net/images/c2/2d/c22d13bd4c4dbc9144712a76e688e854.png
но выхода на 100% возможную яркость тоже нет
(черные точки на белом)
https://jpegshare.net/images/2a/91/2a91bdf32a4210aa60df634dadb3bbb7.png
- - - Добавлено - - -
а на -66 уже текучка
https://jpegshare.net/images/f4/98/f498cd442adf62067cb4d64194d6cdbc.png
но выхода на 100% возможную яркость тоже нет
Я не знаю, как с этим бороться (не меняя глобально алгоритм). Вот есть белая точка, затемненная до (0.333(3), 0.333(3), 0.333(3)). И в палитре для этой точки ближайший цвет - черный. Т.е. даже для чисто белой картинки первая точка в отдизеренной катринке всегда будет черной. И это влияет и на дизеринг оставшихся точек.
NEO SPECTRUMAN
09.01.2021, 16:30
Т.е. даже для чисто белой картинки первая точка в отдизеренной катринке всегда будет черной. И это влияет и на дизеринг оставшихся точек.
в принципе логично
НО
если использовать коэфициенты для RGB
ТО
чисто синий это 1/7 = 0,14285714285714285714285714285714
что явно меньше чем 0,33333
а первым пикселем пойдет красный с яркостью 0,28571428571428571428571428571429
- - - Добавлено - - -
так же даже если первый пойдет черным
то при правильном алгоритме он будет единственным лишним черным
ну или одним из нескольких
у меня тут на белом лишних черных особоо то и не видно (7 пикселей)
https://jpegshare.net/images/ac/ce/acce9732506804bf016346662ff78d4a.png
что явно меньше чем 0,33333
А почему ты не учитываешь остальные координаты? Я считаю дистанцию между цветами как (R1 - R2)^2 + (G1 - G2)^2 + (B1 - B2)^2. И R и G значения добавят к 1/7^2 еще 2.
- - - Добавлено - - -
у меня тут на белом лишних черных особоо то и не видно
Это флойд?
NEO SPECTRUMAN
09.01.2021, 16:31
прозевал :)
то при правильном алгоритме он будет единственным лишним черным
А каков правильный алгоритм?
NEO SPECTRUMAN
09.01.2021, 16:35
Это флойд?
по идеи да
и со 100%
- - - Добавлено - - -
А каков правильный алгоритм?
без понятия
его как раз нгужно изобрести :)
щас к нему только есть требования что он должен выдавать на выходе :)
- - - Добавлено - - -
Я считаю дистанцию между цветами как (R1 - R2)^2 + (G1 - G2)^2 + (B1 - B2)^2
и может мой множитель 0,260514255 (sRGB 0.54735)
как то с этих степеней и вытекает
надо еще подумать
Если быть точнее, то я считаю так: 0.212655 * (R1 - R2)^2 + 0.715158 * (G1 - G2)^2 + 0.072187 *(B1 - B2)^2
NEO SPECTRUMAN
09.01.2021, 16:44
КСТАТЕ насчет подавления текучки
может стоит каждый шаг при распределении ошибки
проверять во сколько раз получается яркость пикселей больше\меньше чем яркость в оригинальном изображении
и делать обрезание если идет превышение например в 2, 3, 10 разов
тупое ограничение максимума не давало особо положительных результатов
- - - Добавлено - - -
Если быть точнее, то я считаю так: 0.212655 * (R1 - R2)^2 + 0.715158 * (G1 - G2)^2 + 0.072187 *(B1 - B2)^2
ЕЩЕ КСТАТЕ если подумать
ТО
можно наверно запихнуть мноижетли 0.072187*
на первый проход когда изображение переводится еще из sRGB в линейное
ну и поллитру для расчетов так же подогнать
а потом использовать только (B1 - B2)^2
Я не знаю, как с этим бороться (не меняя глобально алгоритм). Вот есть белая точка, затемненная до (0.333(3), 0.333(3), 0.333(3)). И в палитре для этой точки ближайший цвет - черный. Т.е. даже для чисто белой картинки первая точка в отдизеренной катринке всегда будет черной. И это влияет и на дизеринг оставшихся точек.
Возможно, можно попробовать при выборе цвета из палитры предварительно проверять яркость. И если яркость точки выше некого порога, например, выше половины яркости синего, то исключать черный из вариантов.
NEO SPECTRUMAN
09.01.2021, 16:50
Возможно, можно попробовать при выборе цвета из палитры предварительно проверять яркость. И если яркость точки выше некого порога, например, выше половины яркости синего, то исключать черный из вариантов.
это уже похоже на костыль для 4с
а не на универсальный алгоритм который жрет всё :)
можно наверно запихнуть мноижетли 0.072187* на первый проход
Можно, это прибавит скорости. Но, формула K((A-B)^2) <> (KA - KB)^2. Но не знаю, насколько это повлияет на результат.
NEO SPECTRUMAN
09.01.2021, 16:57
K((A-B)^2) <> (KA - KB)^2
это до
ну также нигде не сказано куда именно нужно тулить коэфициент
может окажется что (KA - KB)^2 даже правильней
я не уверен проверял я такой вариант или нет
у меня по 5 варинтов действий под скобочками
и по 5 варинтов за скобочками с разными степенями итд
и все это уже не читаемо :)
но рабочие только несколько комбинаций
и то для ЧБ одни для цветного другие...
так же я тыкал вместо степеней коэфициенты яркости каждого канала в разном виде
результат посредственный...
а на -66 уже текучка
У меня ощущение, что текучка вызвана как раз коэффициентами в формуле 0.212655 * (R1 - R2)^2 + 0.715158 * (G1 - G2)^2 + 0.072187 *(B1 - B2)^2. Из за низкого коэффициента синий копиться, а как появляется возможность, начинает сбрасываться в виде текучки.
NEO SPECTRUMAN
09.01.2021, 17:34
У меня ощущение
нехилая текучка есть и без коэфициентов
неплохо было бы снять дамп буфера
прямо во время текучки и посмотреть какие там цифры
я наверно включу у себя в пошаговом режиме
NEO SPECTRUMAN
10.01.2021, 00:34
симуляция текучки в excel для палитры CGA
переход с синего на белый
желтым обведен "потек"
https://jpegshare.net/images/84/a3/84a3d38096ac24af48788b0f666f56ed.png
вот как выглядит в оригинале
https://jpegshare.net/images/6d/29/6d29ae7194dcb66b0186c9e089132739.png https://jpegshare.net/images/8b/63/8b63a80653d744e987223d7038af591c.png
проверка нормальности работы
https://jpegshare.net/images/f5/ad/f5ad768601429f7f163fc08436131e1e.png
- - - Добавлено - - -
вместо ограничения уровня по типу тупого среза
можно попробовать общую нормализацию
на каждом шаге подгонять уровни по максимальному
типо
128 512 64 --> 64 255 32
-100 -100 300 --> 0 0 256
и не допускать уровни больше x1,5 х2 от максимума например
NEO SPECTRUMAN
10.01.2021, 06:28
не совсем правильная нормализация
(ограничивает диапазон но не заботится о центровке относительно 0)
ограничение в 3 диапазона
https://jpegshare.net/images/2b/6a/2b6a9e30b878f030edda291bc10fc730.png
ограничение в 4 диапазона
https://jpegshare.net/images/0c/a9/0ca987e6e72e56f082fbeb54c79ed044.png
(ну есное дело ограничение в 4 диапазона дает тормозной путь как минимум в 4 пикселя)
без ограничений
https://jpegshare.net/images/bc/79/bc79d4f4ee3fa5da926d13e8a839c45f.png
без ограничений но коэффициент распределения 0,86
https://jpegshare.net/images/76/56/7656556a2295d4ab65fcc7d9e35853e3.png
видим как просрались нижние ступеньки...
может с правильной центровкой относительно 0,5
результат будет получше
- - - Добавлено - - -
проверяем не похерилсо ли обычный режим работы
https://jpegshare.net/images/a7/f1/a7f1d7c4796aca648da9e12fbe0c6ab7.png
стало\было (было может не соответствовать тем же настройкам)
https://jpegshare.net/images/fc/78/fc78bb1ed6f90f79f1f983064436f14c.png https://i.postimg.cc/XNgTLcBt/yuubari-02-dithered-0000.png
https://jpegshare.net/images/75/bf/75bf4d0cfc61c0820053592ef0928ac5.png https://i.postimg.cc/zXKH4v8m/yuubari-01-dithered-0000.png
https://jpegshare.net/images/01/3d/013d5a16642915ad04b3b522c626792a.png https://jpegshare.net/images/d4/dd/d4dda4dddc715e8f28307b2666599e2c.png
https://jpegshare.net/images/27/3a/273a3c9de7e664412d2c3e37a50917d1.png https://i.postimg.cc/7ZbRVFSW/kon-02-dithered-0000.png
https://jpegshare.net/images/94/ef/94efb34af7c0b42734e8a10e826cbe6d.png https://i.postimg.cc/ZYFXKFTV/kon-01-dithered-0000.png
https://jpegshare.net/images/25/3e/253ed0bbaf5cceefe28fb68fb8027d1d.png https://jpegshare.net/images/9e/9b/9e9bf0bd75835a16691b42e7a20258e6.png
местами задралась яркость (спишем на кривую реализацию)
но в целом смысл не изменился...
- - - Добавлено - - -
и снова с CGA
https://jpegshare.net/images/45/d7/45d7ee13ae0bb83fcc61644986b5029f.png https://jpegshare.net/images/1f/a7/1fa7dbb42425cdbd3dc578a4e1aa8c4d.png
https://jpegshare.net/images/75/f5/75f563b62b1906e49533633d0884f756.png https://jpegshare.net/images/73/88/73887bcb78654f1f6a4ad0436774ec80.png
https://jpegshare.net/images/ce/1c/ce1c76d5a9a088ff8349781262e071c9.png https://jpegshare.net/images/f9/42/f942aa0d82fa0d31ef09c6d7a55e8f0f.png
https://jpegshare.net/images/a2/49/a24911711eccda388b12c30535e67f6f.png https://jpegshare.net/images/7d/7a/7d7af246cac10bf10d64485d874ead25.png
ну и еще теперь я не могу включить серпантин
поэтому оставшаяся текучка несколько сильней чем могла бы быть...
- - - Добавлено - - -
и смертельный номер
подсовываем палитру в которой нет белого
и теперь белый получить некак
RGBY
https://jpegshare.net/images/c4/63/c463c5e3ae01d9ff88e37e9448f3574e.png https://jpegshare.net/images/33/34/33342738b636efcdff7fa1b3a550db4d.png
тоесть текучка сильно не развилась даже в экстремальных условиях
CGA с расчехленными из широких штанин весовыми коэффициентами (православные 4G2R1B)
https://jpegshare.net/images/81/2a/812a28ec70231e4a458c9fe1a85444c2.png https://jpegshare.net/images/98/3f/983f9cfb36aff784d67ee3e67b74d1f0.png
https://jpegshare.net/images/0d/38/0d3845fc8b5df254fdd2c0ebdc0acb22.png https://jpegshare.net/images/5c/aa/5caace7e180b7bbac90c688ff0339068.png
https://jpegshare.net/images/08/fd/08fd38a9f8bc4f5f94c3e4ee0df8c423.png https://jpegshare.net/images/28/70/28707851303b7a6c1a567b327f77f4d8.png
https://jpegshare.net/images/b7/df/b7dfafb645b330132ac1a6f03ad75b51.png https://jpegshare.net/images/cb/73/cb732cb9dbbe7c1d42fd27666b88b2fc.png
NEO SPECTRUMAN
16.01.2021, 11:25
Dec, а можешь запилить "safe" версию гигаскрина для спектрума?
ну это когда атрибуты одинаковые у обоих мигающих знакомест
и когда промежуточный цвет делается шахматкой
саму шахматку сделать 2х
11001100
11001100
00110011
00110011
11001100
11001100
00110011
00110011
ну пушо ее не так колбасит на фоне дизерингов и штриховок
и она LCD TV Safe
тк там может быть такое мерзкое явление
https://jpegshare.net/images/b1/a6/b1a6f0328eac9c62dee1d9d930d8a3e4.png
Попробую. Кстати, для гигаскрина доступна опция View\Show flickering images.
NEO SPECTRUMAN
16.01.2021, 11:54
а еще я хотел паругатсо :)
https://jpegshare.net/images/9b/d3/9bd354a775025f9806bf897d20533ca4.png
- - - Добавлено - - -
доступна опция View\Show flickering images.
у меня не доступно
пункт есть но он серый
щас скачаю еще версию из шапкии проверю
- - - Добавлено - - -
проверил все тоже самое
может используется способ вывода синхронизации которого нет в ХРю?
а кнопка лочится при проверке наличия
Если у тебя WinXP, то да, тогда будет не доступна. Для ожидания начала развертки я использую функцию DwmFlush, а она появилась только в Vista.
NEO SPECTRUMAN
16.01.2021, 11:56
а ну тада ладн...
главное чтоб основной функционал работал
В XP можно попробовать использовать waitForVBlank, но надо вникать в DirectX. Будет время, поизучаю.
NEO SPECTRUMAN
19.01.2021, 03:01
Dec, еще замечены некоторые косяки
при автоподборе нужен форсированный выбор самого яркого цвета с округлением вверх
и самого темного с округлением в вниз при выборе
и если самый яркий цвет может и выбирается
https://jpegshare.net/images/f3/64/f36432d0607aa3066ac9a2040f0db89f.png
то самый темный нет
https://jpegshare.net/images/79/e3/79e37c2943b3d5f822ace81734723bd7.png
на реальных картинках это заканчивается серыми "потеками" на глазах
постить такое не буду...
так же на искуственном тесте видно что изза этого даже появилась перегрузка на темном
которой бы не было если бы был черный в палитре
- - - Добавлено - - -
а еще ВНЕЗАПНО я обратил внимания
чтоб использовать такой конвертер для каких нибудь игр
нужен подбор цветов с ограниченим их количества
тк внезапно то есть элементы интерфейса которые должны быть одного цвета при смене картинков
и цвета которых уже забиты в палитре
то есть для режимов с автоподбором палитры
еще бы не помешали варианты с подгрузкой части палитры
которая будет прибита гвозядями
Я как раз сейчас обдумываю режим, в котором можно 1) выставлять цвета, которые должны быть в палитре 2) выставлять цвета, которых не должно быть в палитре.
при автоподборе нужен форсированный выбор самого яркого цвета с округлением вверх
и самого темного с округлением в вниз при выборе
Автоподбора нет, но для некоторых режимов добавил режим Сustom, в котором можно выбирать желательные цвета.
даже не ожидал, что в градациях так мощно получиться (на картинке актриса Айя Кэш).
Обязательно надо на реальной плате картинку сравнить (картинка из UKNCBTL)
https://i.ibb.co/3m6H8dF/20210120225353794.png
доп. информация тут https://zx-pk.ru/threads/32647-konvertatsiya-grafiki.html
и тут https://zx-pk.ru/threads/20016-graf-redaktor-picture-composer-i-dlya-uk-nts.html
и ещё вот тут https://zx-pk.ru/threads/32004-opros-i-obmen-informatsiej-po-zhivym-uk-nts.html
DragonsLord
07.02.2021, 19:40
Перепробовав ВСЕ существующие конвертеры (штук 20 наверное) я выбрал для себя рабочим именно этот - DaDither 1.20.
Но, как и было сказано кем-то ранее, мне сразу же дико не хватило ПАКЕТНОЙ загрузки/выгрузки. А реализация такой возможна, потому что она есть в другом конверторе ZXScreens 2.03
https://b.radikal.ru/b32/2102/46/428b94216895.png
но юзать его не представляется возможным, потому что автор допустил досаднейшую ошибку и он путает цвета при отписке скринов в формате стандартного Спека. ВСЁ работает. - именно спековские скрины 6912 бажит. Рука/лицо...
Just.SCR тоже поддерживает пакетную обработку, но не имеет интерфейса, так что пакетка без мануальной настройки изображения руками не имеет смысла. Как впрочем и в ZXScreens 2.03. Должно быть на экране и юзание ползунков всяких и выбор кучи файлов для автоматического конверта.
Если руки, как грится, не заточены к такому мега констракшену, то хотя бы ускорьте загрузку выгрузку! НЕ ЧЕРЕЗ контенстное меню! Чтобы вообще правая кнопка мыши не юзалась - такое я тоже видел в другом конверторе (уже и не помню в каком именно). Там в один клик по полю ввода - подгрузка и по одному клику по полю вывода выгрузка.
Второй вопрос к реализации Гигаскрина. Вчера поконвертил чуток и хочу поинтересоваться, кто этот гений, который придумал делать заливку цветов СЕТКОЙ? Ну нахрена шахматкой делать, если именно это палит всю структуру клэшинга и весь конверт на смарку. Такая реализация нафиг никому не нужна. Проверял на Анриле, не знаю, как на железном Спеке. ВЫРВИГЛАЗНО сейчас! Сделайте заливку сплошным цветом на одном экране и сплошным на втором. Никаких сеток НЕ НАДО!
Мда. Загадочная программа. :dizzy_mad_old:
Захотел конвертнуть картинку 512x240 в Profi режим. Казалось бы что может быть проще? Ан нет сколько не мучался ничего не получилось. За каким-то ребусом программа вместо 240 пытается сжать картинку до 180px. В картинке чётко 5 цветов. Откуда-то появляются полутона, хотя чётко указано «Native demension» и отключены все фильтры в «Dithering». Но нет программа самая умная. :eek:
https://i.postimg.cc/G24zCbNs/image.png (https://postimages.org/)
Если выбрать «Fit result in source», программа один фиг перемаштабирует картинку, после чего зачем-то отрезает пиксели по краям. :sleep:
я в шоке. :mad:
https://i.postimg.cc/V62gs3QZ/image.png (https://postimages.org/)
Про скорость работы я вообще умолчу, ощущение, что обрабатывается огромаднейшее полотно 5000x3000px. :D
Может я тупой не понимаю своего щастия, но автор объясни как пользоваться твоей программой. Сохрани мне картинку:
https://i.postimg.cc/SKv7VwsQ/image.png (https://postimages.org/)
В профивском формате GRF
DragonsLord
08.02.2021, 00:14
В продолжении про Gigascreen: я конечно не в курсе истории сего формата, но чётко подразумеваю логику: увеличение цветов с 16 доступных до 192 штук. За минусом повторяющихся и откинуты два лишних чёрных, получается 108 цветов. Заметьте, НЕ увеличение количества пикселей с разными цветами, а увеличение градаций цвета одних на тех же пикселях! (это вам не 3color где пиксельные экраны на каждый слой RGB!!!)
И вот тут назрел вопрос: а каким раком и зачем в результирующем файле лежит одно и то же монохромное изображение ДВАЖДЫ? У нас что в стране, закрома резиновые? Формат img содержит тупо два последовательных 6912 экрана, - проверил вчера лично, это так. ЗАЧЕМ? По моему формат должен выглядеть так: 1 монохромный экран и за ним две области атрибутов по 768 байт.
За каким-то ребусом программа вместо 240 пытается сжать картинку до 180px
И да, автоперетяжка исходника в размер конечного скрина чаще бесит и не нужна, чем нужна. Нужно запилить галочку, перетягивать или оставлять в оригинальном размере (как например редактирует ZX Пэйнтбраш). Например я хочу сконвертить маленьку иконку 32х32. Что сделает конвертер? Правильно, пертянет в 256х192 и сконвертит. - Вот ЗАЧЕМ? Или я хочу отконвертить фотообои для каких то своих нужд - например сделать мегаскроллер скрина больше стандартного экрана - а он тупо снова сожмёт любой размер в 256х192 стандарт.
Да, можно обойти, фотошопя исходники в стандартные экраны. Но это куча лишней работы и порой выбешивает.
Shadow Maker
08.02.2021, 00:19
Ты чего, гигаскрин это два экрана с разными пикселями и атрибутами. На одном пиксели и атрибуты и на другом пиксели и атрибуты. Один в #4000 лежит, другой в #c000 в 7 странице и щелкаются друг с другом, создавая такой мерцающий и опасный для эпилептиков экран.
DragonsLord
08.02.2021, 00:24
Да я вижу, что их два. Зачем. Пусть один будет. Меньше кстати по ощущениям мигать будет. Точнее, вообще не будет. Если конвертить с ограничениями, как этот конвертер позволяет выставлять.
https://a.radikal.ru/a13/2102/2c/77bfb09d502d.png
Нижний правый квадрант не мигает практически вообще. Правый верхний мигает немного. Мигают, как угорелые только два одинаковых верхний правый и левый нижний.
Shadow Maker
08.02.2021, 00:33
Да я вижу, что их два. Зачем. Пусть один будет. Меньше кстати по ощущениям мигать будет. Точнее, вообще не будет. Если конвертить с ограничениями, как этот конвертер позволяет выставлять.
Ну в одном экране персонаж бегает, в другом бекграунд-объекты. Обводки разные рисовать. Есть смысл, люди использовали и используют. Тебе не нужно - не используй, в общем-то нет препятствий.
DragonsLord
08.02.2021, 00:37
Тебе не нужно - не используй, в общем-то нет препятствий.
Препятствия есть - этот конвертер делает тупо, как ты сказал, и не делает, как я сказал. Какие же это "не препятствия", когда он НЕ делает то, что мне надо. И каким это раком можно делать обводки и т.д., нарушающие клэшинг, если это не рисовальный редактор, а просто конвертер, где не казывается руками в какой конкретно экран какие пиксели с каким цветом пихать? Он как захочет, так от балды по экранам и раскидает. Так что, то, что ты сказал - не реализуемо в рамках этого конвертера никак, ИМХО.
Гденить в другом месте может быть. Здесь нет. А следовательно, мой вопрос остаётся в силе.
moroz1999
08.02.2021, 01:13
И вот тут назрел вопрос: а каким раком и зачем в результирующем файле лежит одно и то же монохромное изображение ДВАЖДЫ?
В большинстве картинок монохромное изображение тоже разное.
NEO SPECTRUMAN
08.02.2021, 03:06
Про скорость работы я вообще умолчу, ощущение, что обрабатывается огромаднейшее полотно 5000x3000px.
Может я тупой не понимаю своего щастия
не нравитсо напиши быстрее и лучшо
за быстро можешь идти в фотошопы
с соответствующим качеством...
и это ты не конвертил ham_convert-ом
вот там реально долго
- - - Добавлено - - -
я в шоке
у него местами юзаются "оригинальные" пропорции пикселей типо 1:1,2 для выходного изображения
так что можно наткнутся на ВНЕЗАПНЫЕ обрезания там где этого не есть быть ожидать
и местами они прибиты гвоздями
КСТАТЕ ВНЕЗАПНО если это 512 в ширину то это именно твой случай
ибо на выходе пиксели прямоугольные 1:0,5
а ты подсунул хрен знает что на вход
реальные пропорции такого видео режима 256:240
а если так хочетсо натянуть сову на глобус то есть же опция streched
которая делает все что ты хочешь
https://jpegshare.net/images/68/df/68df8d40e5229d5d7546d7405a3fc30b.png
за палитру тоже несколько мимо
хотя тут не совсем очевидно для не читающих тему
и надо видимо более внятно написать что это принудительное выставление нужных\обязательных в палитре цветов
а не именно выбор палитры
Dec кстате агитирую за опцию 1:1 которая есть для некоторых режимов
только для всего
и как раз будет очевидно для некоторых что они doing it wrong
- - - Добавлено - - -
Да я вижу, что их два. Зачем. Пусть один будет.
как говорится :v2_dizzy_facepalm:
кстате можно дружно поклянчить у dec-а
кроме
обычно 4-х цветного
и safe 3-х цветного гигаскрина (который все еще не впилен)
еще и чисто атрибутный гигаскрин :)
почему нет?
DaDither 1.20.
а почему не 1.30 ? я вот кстати постепенно всё больше проникаюсь "как правильней адаптировать картинку для лучшего результата на экране УК-НЦ" и мне всё больше и больше программа нравится )
DragonsLord
08.02.2021, 09:01
и где продвинутые юзеры 1.3 берут?
NEO SPECTRUMAN
08.02.2021, 09:04
и где продвинутые юзеры 1.3 берут?
в первопсте
там уже 1.37
аффтар тайком обновляет :)
чтоб никто не догадался
а еще не ложит в архив (умя есть подозрение что некоторые "умные" антивирсуки (ВНЕЗАПНО ЭТО ИМЕННО ОПЕЧАТКА :v2_lol: оставлю пусть будет) голый .exe не дают сохранить браузером но это не точно)
и не пишот сверху версию :)
моя свалка\неполная коллекция дадизеров
https://jpegshare.net/images/40/bc/40bcf8c46756cacf5511879d3e77858a.png
Чтобы вообще правая кнопка мыши не юзалась
В 1.37.1 - Ctrl+O/Ctrl+S
Программа предназначена для конвертации экранов 256x192, а не для спрайтов. Для спрайтов используйте соответствующие инструменты.
агитирую за опцию 1:1 которая есть для некоторых режимов
только для всего
Добавил в 1.37.1.
safe 3-х цветного гигаскрина (который все еще не впилен)
Сделаю, но позже. Я помню про твою хотелку.
еще и чисто атрибутный гигаскрин
Поясни, что ты имеешь в виду?
DragonsLord
08.02.2021, 11:45
Он имеет в виду моё предложение: один монохромный экран и две атрибутные зоны.
И без шахматки пожалуйста!
не нравитсо напиши быстрее и лучшо
за быстро можешь идти в фотошопы
с соответствующим качеством...
Ой, вот только не начинай, а? Вроде взрослый дядя, оставь школоте эти «сперва добейся».
и это ты не конвертил ham_convert-ом
вот там реально долго
От того, что где-то ещё хуже, мне не легче, я рассматриваю данную программу и делюсь впечатлениями о её использовании. И если есть проблемы с производительностью, то было бы очень странно на это не указать.
у него местами юзаются "оригинальные" пропорции пикселей типо 1:1,2 для выходного изображения
так что можно наткнутся на ВНЕЗАПНЫЕ обрезания там где этого не есть быть ожидать
и местами они прибиты гвоздями
Я правильно понимаю, что пользователь который первый раз в жизни видит эту программу, должен быть телепатом?
КСТАТЕ ВНЕЗАПНО если это 512 в ширину то это именно твой случай
ибо на выходе пиксели прямоугольные 1:0,5
Опять же я должен включить режим телепата?
а ты подсунул хрен знает что на вход
реальные пропорции такого видео режима 256:240
Опять врёшь и не краснеешь. Если бы у видеорежима было действительно только 256 точек, при конверте «шахматки», мы бы получили сплошную линю.
https://i.postimg.cc/Wz8tXXqn/image.png (https://postimages.org/)
К слову, например в том же редакторе для ATARI «Graph2Font», при импорте из PNG есть галочка «HResize». Если она НЕ включена, то редактор понимает, что у нас картинка строго заданной ширины, если включена, он уже растягивает до нужного.
а если так хочетсо натянуть сову на глобус то есть же опция streched
которая делает все что ты хочешь
Но и даже в твоём режиме «Stretched», и при отключённом «Dithering» программа ухитрилась накосячить. Что там за алгоритмы, одно корейскому рендому известны.
https://i.postimg.cc/L5ShRrMR/image.png (https://postimg.cc/k6j7vY4h)
Dec кстате агитирую за опцию 1:1 которая есть для некоторых режимов
Вот это бы бы идеальный вариант!
- - - Добавлено - - -
По поводу алгоритмов понятно. Почитал доку по профи. Там нет полноценных 16ц. Есть что-то типа мультиколора 8x1, то есть фактически только 2 цвета на блок. Своеобразный клешинг. Тогда понятно почему сплошные линии по углам.
NEO SPECTRUMAN
08.02.2021, 19:51
Ой, вот только не начинай, а? Вроде взрослый дядя, оставь школоте эти «сперва добейся».
это у тя запрос из разряда
"хачу подобрать 20 значный пароль от rar за 30 секунд а ваш брутфорс перебирает его уже 20 минут"
если че
- - - Добавлено - - -
Опять врёшь и не краснеешь. Если бы у видеорежима было действительно только 256 точек, при конверте «шахматки», мы бы получили сплошную линю.
уровень вникания в тему близок к 0
судя по упоминанию "шахматки" и мат части тоже
- - - Добавлено - - -
одно корейскому рендому известны.
а ты пробовал не конвертить квадраты малевичей? :v2_lol:
хотя к алгоритму масштабирования у меня тоже есть вопросы
но на реальных изображениях оно работает и так...
- - - Добавлено - - -
Поясни, что ты имеешь в виду?
это когда вместо щелкания экраном
перекидывают одни 768 байт атрибутов ldir-ом или около того
тк например на 48-м второго экрана то и нет
(не помню чтоб я где либо такое видел
(но такой вариант гигаскрина вроде не раз тут обсуждался))
получится обычный спектрумовский клешинг режим с 2-мя цветами
но 2-мя из палитры гигаскрина + брайт
не знаю кому это надо
но на фоне всяких "сомнительных" режимов в том же bmp2scr
почему бы и нет?
да и вобщем не далеко от этого режима до flashcolor-а :)
DragonsLord
09.02.2021, 02:36
получится обычный спектрумовский клешинг режим с 2-мя цветами
но 2-мя из палитры гигаскрина + брайт
поддерживаю. получится 108 цветов. Только ради боге, не надо шахматкой атрибуты делать!!!
да и вобщем не далеко от этого режима до flashcolor-а
А он как делается? Видел скрин, вроде там несколько градаций серого.
NEO SPECTRUMAN
09.02.2021, 02:58
Только ради боге, не надо шахматкой атрибуты делать!!!
да здравствуют эпилептические припадки :v2_lol:
UKNCBTL в режиме (единственно правильном!) градаций
https://pic.maxiol.com/thumbs2/1612832541.787615398.majest.png (https://pic.maxiol.com/?v=1612832541.787615398.majest.png&dp=2)
исходное
https://pic.maxiol.com/thumbs2/1612832702.787615398.majesty.png (https://pic.maxiol.com/?v=1612832702.787615398.majesty.png&dp=2)
:rolleyes_std:
Dec, а можешь запилить "safe" версию гигаскрина для спектрума?
Проверяй.
Проверяй.
забрал 1.42 сборку и сразу напоролся. что в ячейках значений для разрешения слишком быстро срабатывает подстановка и обработка картинки - даже не успеваешь три цифры вбить, а программа уже успела 8 подставить...можно как то этот момент более комфортным сделать для изменений?
в ячейках значений для разрешения слишком быстро срабатывает подстановка
Увеличил время ожидания после нажатия клавиши до 2 секунд.
Увеличил время ожидания после нажатия клавиши до 2 секунд.
забрал, благодарю, так гораздо комфортнее...
https://pic.maxiol.com/thumbs2/1613804390.787615398.142.png (https://pic.maxiol.com/?v=1613804390.787615398.142.png&dp=2) https://pic.maxiol.com/thumbs2/1613804412.787615398.142cr.png (https://pic.maxiol.com/?v=1613804412.787615398.142cr.png&dp=2)
VELESOFT
28.02.2021, 00:48
Can you please add interlace support also in SAM COUPE mode(s) ? GFX mode 4 with 256x348 pixels with different palettes for each videoram....
Can you please add interlace support also in SAM COUPE mode(s) ?
Output file format(s)?
moroz1999
28.02.2021, 14:21
ss4: 256*192, each pixel is a 4bit index pointing to a 16color palette. Each byte stores 2 pixels (4 bits for left, 4 bits right).
So, there is 256*192 * 4bit = 24576 bytes of pixel data, then 16 bytes of palette are stored, making overall file size 24592.
Palette color is stored in a format:
-GRBPgrb
- bit7 - non used
G bit6 - high-order bit for green
R bit5 - high-order bit for red
B bit4 - high-order bit for blue
P bit3 - brightness bit.
g bit2 - low-order bit for green
r bit1 - low-order bit for red
b bit0 - low-order bit for blue
What I'm using in ZX-Image for converting the Sam's color to RGB:
red=(R * 4 + r * 2 + P) * 36
green=(G * 4 + g * 2 + P) * 36
blue=(B * 4 + b * 2 + P) * 36
RGB = red * 256 * 256 + green * 256 + blue.
I don't remember where this magical 36 is coming from, but I've seen some kind of service manual which described all of this.
ss4: 256*192, each pixel is a 4bit index pointing to a 16color palette.
DaDither умеет конвертировать в ss4. Вопрос был о том, какой формат нужен VELESOFT для 256x384.
moroz1999
28.02.2021, 14:42
Прошу прощения, плохо читать умею :)
VELESOFT
28.02.2021, 15:57
DaDither умеет конвертировать в ss4. Вопрос был о том, какой формат нужен VELESOFT для 256x384.
All interlace formats is ideal make as two standard screen files conect to one output file (if file size is not so big).
Then SS4+SS4. Here may be size of output file very big and not so comfortable for loading. Here may be better save interlaced SAM graphic as two separate SS4 files (separate file for each videoram). Use same filename similar as this:
picture.ss1 (24kB+palette)
picture.ss2 (24kB+palette)
If size of output interlaced file is very big then is for Z80 based computers better use two separate files. This is easy for loading from basic loader.
Can you please add interlace support also in SAM COUPE mode(s) ? GFX mode 4 with 256x348 pixels with different palettes for each videoram....
I have added support of interlaced mode 4. But... I don`t see a way to create a good looking image with different palettes, so both images contain the same palette. You can save result as two ss4 files or single lce file.
VELESOFT
02.03.2021, 21:59
I have added support of interlaced mode 4. But... I don`t see a way to create a good looking image with different palettes, so both images contain the same palette. You can save result as two ss4 files or single lce file.
Super. Now I see difference in vertical hi-res (interlace). But can you accept in interlace better color mixing as in zx gigascreen? Of cource you must ignore hi-res details and accept only color mixing/combinations. Gigascreen pictures are visible in interlace mode on LCD TV if we switch two different screens under interrupt. Please add also SAM gigascreen visible as interlaced tv lines (256x384)
I have some ideas:
All low res screens as ZX 256x192 show automatically as 512x192 pixels on PC monitor (each zx pixel = 2x2 PC pixels). Then after select interlace mode will be picture size on PC monitor always same = 512x192 pixels (each zx interlace pixel = 2x1 PC pixel). On modern FULL HD or 4K PC monitors is ZX screen 259x192 very small for see details...
Interlace/gigascreen may be used for all SAM and ZX modes.
Next idea: add possibility show all ZX gigascreen and multigiga modes as interlaced screen instead mixed colors.
Next idea: add switch for disable attribute grid in gigascreen conversion. Then without grid will contain both videorams consistent pictures (better for show on LCD TV in interlace)
But can you accept in interlace better color mixing as in zx gigascreen? Of cource you must ignore hi-res details and accept only color mixing/combinations. Gigascreen pictures are visible in interlace mode on LCD TV if we switch two different screens under interrupt. Please add also SAM gigascreen visible as interlaced tv lines (256x384)
I can add gigascreen for SAM but in interlaced mode the picture will be worse than the one that is created specifically for interlaced mode.
All low res screens as ZX 256x192 show automatically as 512x192 pixels on CP monitor
I will add Zoom option.
add possibility show all ZX gigascreen and multigiga modes as interlaced screen instead mixed colors.
I use different algos for gigascreen and interlaced screen. And in my opinion artist should convert image to the mode in which he plans to show the image.
DragonsLord
03.03.2021, 17:03
А почему, когда в стандартный спековский экран цветной конвертишь все способы предлагаемого дитеринга - червячки? Почему нет режимов в регулярными заливками аля чанки?
Почему нет режимов в регулярными заливками аля чанки?
Могу добавить, если кто-нибудь опишет алгоритм конвертации цвета в чанки.
DragonsLord
03.03.2021, 23:31
Джерри, ты вместо того, чтобы мучать меня наставлениями и заставлять конвертить в чанки вручную в фотошопе, взял бы и рассказал уважаемому DEC, как это конвертировать. Чтобы любой.... эээ.... последователь мог сделать это одной кнопкой в лучшем виде и не тратил своё время на то, что может сделать машина за секунду.
- - - Добавлено - - -
А Dec может пока потратить время ожидания с пользой - прикрутить пакетную обработку. Ибо сие очень надо, когда конвертишь видео. А видео скоро надо будет конвертить тоннами ,ибо я готовлю настоящую революцию в этом сегменте. :cool_std:
- - - Добавлено - - -
И кстати, я просил сделать какую-нибудь галку в интерфейсе, чтобы гигаскрин можно было сохранять в упрощённом режиме:
6144
768
768
И обязательно исправить конверт в цвета. Сейчас стоит СЕТКОЙ. Это недопустимо. Это жёстко палит вырвиглазность во фликер режиме. Надо чтобы цвет был сплошной для одного слоя и сплошной для другого слоя. Никакой знакоместной сетки!
Могу добавить, если кто-нибудь опишет алгоритм конвертации цвета в чанки.
Я в своём конвертере делал примерно так: генерировал все возможные сетки, их не так уж и много, считал для каждой сетки средний цвет, а затем попиксельно выбирал ближайшую. И копировал из неё соответствующий пиксель. На мой вкус -- выглядит нормально.
скриншоты из эмулятора UKNCBTL
https://i.ibb.co/m659VKC/20210311010313996.png (https://ibb.co/m659VKC)
https://i.ibb.co/cLPsL2M/20210311010418210.png (https://ibb.co/cLPsL2M)
DragonsLord
26.03.2021, 12:02
Как дела движутся? Я просил три доработки, которые постоянно нужны. Прям ежесекундно ОЧЕНЬ НАДО, а нету.... Хотелось бы иметь эти фишки в ДаДитере, а не где-то в левацких конвертерах, чтобы так сказать, всё в одном месте и удобно.
По мере значимости заказа:
- Перевод цветного в чёрнобелое регулярными чанками (допустим чанков "16 цветов" вполне хватит)
- Пакетная обработка файлов (смысл такой: иметь одновременно на экране список файлов каталога+настройки конвертинга, и потом выбрать сколько надо файлов и всех их одной кнопкой сконвертить в указанные настройки, и он сам их автоматически сконвертит и сохранит в выбранный формат)
- Конверт и отписка на диск в упрощённый гигаскрин (где только один экран 6144 и к нему приклеены две атрибутные области для 5 и 7 банки 768х2. Причём обязательно исправить в алгоритме: сейчас он конвертит атрибутной сеткой по непонятной причине, а надо чтобы в сплошные цвета)
- - - Добавлено - - -
P,S,: Кстати, есть ошибка, которую надо выправить, - когда конвертишь в цвет червячками, то он постоянно пытается по верхней границе знакоместа нарисовать сплошную линию. Это реально мешает.
Вот пример:
https://b.radikal.ru/b28/2103/cd/c65731e8c857.png
Видите, чуть выше центра на фоне полоски горизонтальные. Причём посреди поля равномерного цвета, что никак не объясняется.
Возможно, из за перехода с одной яркости на другую алгоритм как то кособочит. Надо исправить, а то мешает конвертить на особо вкусных настройках.
Если не понятно, вот ещё:
https://b.radikal.ru/b20/2103/13/02778e08fa9f.png
Над планетой смотрите на верхней границе яркостных знакомест. А также над самой коброй на атрибутах с низкой яркостью по верхней кромке чёрная полоска. Специально утрирую настройки, чтобы более явно показать баг.
Исходники дать для тестов? Вот:
https://b.radikal.ru/b12/2103/ec/bdf520916ee3.png
https://a.radikal.ru/a07/2103/06/a40e1f1f0c6b.png
DragonsLord
04.04.2021, 14:00
Ээээ.... сии просьбы взяты в работу, или рассматриваются, как глупости, не стоящие внимания? Мне бы обратку получить. Чтобы понимать - ждать/не ждать и планировать свои работы. А не плавать в информационном вакууме.
Херню наверное скажу, но вот опыт с майнкрафтом (гама такая, заточеная под типа пикселиз) столкнула с разными людьми и среди них школото всякое (казалось-бы сопля, салага) но в фотошопе как-то умудрялись картинки обрабатывать под нужды майна - там типа всё "пиксельное" (на самом деле - "воксельное" но не суть).
Фильтры создавали (мне присылали как админу - можно-ли такую картинку воткнуть? Конечно можно! Сделано, ребяты, всё для игроков) но выглядело это (постобработка) как прям спек-скрин и вообще!
В общем глядя на эти все графмучения тут - я поражаюсь - ребят может мы что-то упустили? Молодёжь вполне справляется когда хотят в достижении результата, при этом не зная всяких страшных слов типа дизеринг, интерполяция цвета и т.д.
Кто-нибудь общается с молодняком (правило 95% дебилов работает конечно, но есть и среди новых поколений светлые головы)
Попробуйте что-ли не со старым поколением это обсудить, а как-то (слава Аллаху - инет у всех есть)
Рили - и нам есть чем у них поучится, я на себе испытал...
DragonsLord
11.04.2021, 01:32
Мороз мне не верил, что можно крутой скрин одной кнопкой получить. Пока не попробовал сам :biggrin:
DragonsLord
12.04.2021, 21:04
В Хайпе смешной чувак, который конкурсы графики проводит. То он песню поёт (конкурс Лив Тайлер), что аяяй, как не хорошо конвертер использовать - "грош цена такому скрину". А потом он же неделю спустя, на откровенный конвертинг скрина Питера с жигулями советскими соловьём заливается, как прекрасен скрин, а главное какая фотреалистичность достигнута. А всё потому, что автор Дайвер и прям страшно чё-то поперёк батьки говорить. ЛОЛ. :biggrin:
А то что у Дайвера 95% работ это прямой конверт, немного доведённый руками, ни-ни. Хаха....
Dec, Спасибо за конвертер.
Для Вектор-06Ц в конвертере всегда используется палитра в 16 цветов.
Но Вектор позволяет задействовать не все планы - просто палитра настраивается так что некоторые биты игнорируются.
Было бы неплохо добавить возможность для конвертации в 8/4/2 цвета для Вектора.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot