Цитата Сообщение от tae1980 Посмотреть сообщение
1. ИМХО с сточки зрения Профи это всё таки биты, а то что раскрашены, это частный случай их применения. Я кончено могу ошибаться, то это диктует физическое строение экрана.
2. Все описанный метод УЖЕ применялись с данной картинке (я использую фотошоп). Картинка уже 16 цветов из 256 в палитре Профи.
Вот это-то и плохо! Еще раз говорю: ЗАБУДЬ про биты и профик, это знание сейчас только тебе мешает, сбивает с толку. У тебя задача конвертировать картинку с исходным пиксельным форматом (допустим, RGB32) в картинку с ТАКИМ ЖЕ пиксельным форматом, но с ДРУГИМИ ЦВЕТАМИ, которые умеет профик. И вот её уже потом, на самом последнем этапе, элементарно конвертируешь в свои биты.

Цитата Сообщение от tae1980 Посмотреть сообщение
3. При переводе цвета в биты у нас из 3-8 цветов остается только 2.
Неверно. Нужно не выбирать два цвета из имеющихся (притом уже испорченных фотошопом), а найти два НОВЫХ целевых цвета обработкой восьми оригинальных. К сожалению, объективного критерия для выбора быть не может. Я бы для начала поступил так:
1) находим субъективную яркость каждого из 8 цветов по коэффициентам матриц по прошлой ссылке
2) находим статистическую медиану по этим яркостям и делим яркости на две группы
3) находим средневзвешенную яркость для каждой группы
4) находим наиболее близкие по субъективной яркости цвета профика
Это и будут два новых ЦЕЛЕВЫХ (то есть напрямую сразу в них НЕ меняем) цвета полоски 8x1, нужных в качестве ВХОДНЫХ ДАННЫХ для совершенно самостоятельного алгоритма распределения ошибки (который сам по себе попиксельный и которому хоть на каждом шаге можно новые входные подсовывать).

Что касается фотошопа, то его лучше применить для предварительного сглаживания картинки, уборки шума, но не для конвертирования цвета.

Цитата Сообщение от tae1980 Посмотреть сообщение
Предлагаемый алгоритм для каждого байта:
1. Определяем два основных цвета в байте.
2. Берем первый цвет, приводим к одному из двух цветов,
3. Получаем ошибку. (входит, что передать ошибку можем только вправо, так как байт линейный)
4. Передаем её следующему цвету в байте.
Вот о чём я и говорю - постоянно рассуждаешь о битах-байтах, в результате возникают странные мысли наподобие рассуждений в скобках в п.3
Еще раз - обрабатываешь НЕ биты-байты, обрабатываешь ПИКСЕЛИ! - соответственно передать ошибку можешь в ЛЮБЫЕ ПИКСЕЛИ, вправо, вниз, по диагонали, через один - как захочется конкретному алгоритму.