Конверсия в img (часть 2)
Конвертор, опубликованный в предыдущем
номере,удалось доработать. Исходник я при─
лагать не буду, а выпущу программу отдель─
но;однако сообщу,что всё-таки изменилось и
зачем.
Во-первых, скорость конверсии, которая,
в принципе, уже была приличная, стала ещё
более приличной - например,конверсия в img
ускорена где-то в 3 раза. Этого удалось
достичь следующим путём. Перед поиском лу─
чшей палитры для конкретного знакоместа
производится вычисление среднего цвета
этого знакоместа. Далее в цикле поиска па─
литры вычисляется средний цвет палитры
(это очень просто). Далее вычисляется раз─
ница между тем и другим.Если она превышает
заданный порог (квадрат расстояния больше
min/32, где min = сумма квадратов ошибок
представления пикселов палитрой предыдущей
строки), данная палитра отвергается. Хотя
это и не очевидно, но на качестве картинки
в худшую сторону новый метод не отражает─
ся.
Более того,алгоритмы теперь целочислен─
ные! На данном этапе уже можно перенести
конвертор на ZX!
Во-вторых, исправлены формулы проециро─
вания текущего цвета на текущую палитру.
Теперь это действительно геометрическое
проецирование. Точность передачи цветов в
режиме чанковой штриховки, соответственно,
улучшилось. А чанковой штриховкой покрыта
весьма большая доля площади каждой картин─
ки в журнале (напоминаю: в моём конверторе
можно выбирать кисточкой,какие области бу─
дут чанковые,а какие - флойдовые). Цвета в
чанковой штриховке всё-таки не совсем со─
ответствуют цветам во флойдовой. Это не
глюк, но с этим нужно детально разобраться
- почему оно так и зачем это может приго─
диться на практике.
При конверсии в мультиколор (если кому-
то это ещё надо) предпроецирование следует
выключать, иначе не работает механизм пои─
ска среднего цвета (который давал такие
милые полосочки).
В-третьих, появилась возможность перед
конверсией знакоместа заранее спроециро─
вать все его точки на найденную "лучшую"
палитру (в прошлом номере я уже объяснял,
что она не такая уж и лучшая).Это наконец-
то позволило убрать видимые границы знако─
мест, которые наблюдались даже тогда,когда
соседние знакоместа имели одинаковую пали─
тру! Впрочем,следует учесть,что при низком
уровне dithering границы знакомест всё-та─
ки будут проглядываться (за счёт распрост─
ранения ошибки, которое и даёт правильный
средний цвет), но,конечно,не настолько яв─
но, как раньше.
Заодно запрещены палитры, в которых все
4 цвета лежат на одной линии (исключение -
серая палитра). Это тоже, как оказалось,
не ухудшило качество.
В-четвёртых, добавлена конверсия 6912 и
GIGA в ch$. Пока без задания размеров; тем
не менее, из нескольких ch$ легче склеить
один большой, чем из нескольких scr или
img. О формате ch$ читайте в статье про
384x304 viewer.
На данный момент аналогов моему конвер─
тору по качеству конверсии в img не сущес─
твует.Вероятно, Baze/3SC написал приличный
конвертор, но не распространил его.
Alone Coder