Цветные фотки на первых ПК

Чтобы цветная картинка воспринималась как фотография нужно более 100 цветов. Первым компьютером, который смог вывести на экран более 100 цветов стал Aтари 400, производство которого началось аж в 1979. Это был также первый компьютер, созданный инженерным гением Джея Майнера. 8-битные Атари, которые производились до 1992, могли показывать до 256 цветов!

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

Для дальнейшего понадобится картинка-образец, которую будем конвертировать на различные компьютеры 80-х. Возьмем для этого случайную картинку размером 1024×1024 с 69344 цветами, сгенерированную системой ИИ.

Общепринято, что первым компьютером, реально показавшим фотографии на экране, стал второй и последний компьютер Джея Майнера, легендарная Амига, выпуск которой начался в 1985. Амига, используя специальный графический режим, может выводить до 4096 цветов на экран одновременно. Использование этого режима также налагает серьёзные ограничения, что делает его очень трудным для использования в динамической графике и, в частности, в играх. В этом режиме фактически используется только 16 базовых цветов из палитры в 4096 цветов и есть возможность в текущем пикселе изменять одну из RGB-компонент предыдущего пиксела. Оказалось, что такой подход отлично работает и фактически является некоторой формой сжатия визуальной информации с потерями. На каждый пиксел в этом режиме выделяется 6 бит, вместо 12 как было бы нужно для показа 4096 цветов без ограничений. Кроме того, помимо типового режима, когда 16 базовых цветов задаются для всего экрана, можно использовать и режим SHAM, когда базовые цвета определяются построчно. Однако, оказалось, что SHAM часто даёт практически незаметное повышение качества и поэтому почти не используется. Недостатком фотографического режима Амиги является трудоёмкость качественной конверсии произвольной картинки в такой формат. Современная кросс-утилита ham_convert может работать над одной фотографией более десятка минут на современном десктопе!

Теоретически первые Амиги могли выводить растр до 362×283 для моделей PAL и 362×241 для моделей NTSC с 4096 цветами, что в середине 80-х было просто фантастично. Для сравнения, знаменитые Макинтоши могли показывать 512×342 и только в монохроме. Атари СТ могли показать не более 16 цветов из палитры 512 цветов в растре 320×200. Профессиональная карта EGA для IBM PC совместимых позволяла выводить только 16 цветов из палитры 64 цвета в растр 640×350. Хотя надо отметить, что телевизоры и мониторы для Амиги тех лет не могли показать больше 270 строк для систем PAL и 220 для NTSC. Кроме того, Амига ОС до 90-х поддерживала только разрешение в 320×200 (320×256 для PAL) для многоцветных режимов и поэтому почти все картинки-фотки тогда были не больше этого размера.

Американская Амига (320х200, 370 цветов)

Американская Амига (320×200, 370 цветов)

Европейская Амига (320х256, 398 цветов)

Европейская Амига (320×256, 398 цветов)

Вслед за Амигами в том же 1985 появились первые компьютеры стандарта MSX-2, которые могли показывать одновременно 256 цветов в растр до 256×212 и без всяких ограничений. Однако палитра фиксировалась также в 256 цветов. Тут трудно не заметить, что для такой графики Z80 на эффективной частоте примерно в 3.1 МГц был скорее слабоват. И даже наличие мощного видеопроцессора проблемы не решало. ZX Spectrum со своей примитивной графикой использовал процессор процентов на 10 быстрее, чем MSX! Для конвертации фоток в формат MSX-2 существуют до десятка кросс-утилит и даже онлайн-сервис. Для того чтобы почувствовать деградацию качества по сравнению с Амигой, сравните увеличенные картинки.

MSX-2 (256x212, 65 цветов)

MSX-2 (256×212, 65 цветов)

В 1987 появился очень редкий компьютер Geneve 9640, последняя модель в когда-то очень известном семействе домашних компьютеров TI-99/4. Он использует тот же видеочип, что и MSX-2, и поэтому может показывать любую графику этого стандарта.

И в 1987 пришла карта VGA для IBM PC совместимых и появился второй Макинтош. Эта профессиональна аппаратура позволяла уже показывать одновременно 256 цветов без ограничений из палитры в сотни тысяч цветов. Это позволяло без каких-либо трюков получать весьма качественные фотографические изображения на экране. VGA выводит фотографический растр до 360×240 на стандартный монитор, а Макинтош II 512×384. Однако, абсолютное большинство программ использовали возможности VGA лишь частично, работая со стандартным BIOS-растром в 320×200. Большой размер палитры позволяет эффективно использовать все свободные цвета, что при показе фоток дает индексным цветам VGA или Макинтоша преимущество по сравнению с MSX-2 или даже иногда Амигой.

типичная картинка VGA (320х200, 256 цветов)

типичная картинка VGA (320×200, 256 цветов)

максимум VGA (360х240, 256 цветов)

максимум VGA (360×240, 256 цветов)

Фактически видеорежимы VGA можно достаточно несложным образом создавать по потребности. 256-цветный режим можно получить в растре до 400×600. Нужно лишь уложиться в спецификации используемого монитора и учитывать, что с ростом числа строк падает частота обновления экрана и соответственно качество изображения.

В том же году появился Acorn Archimedes, который ненадолго вернул Британии да и Европе в целом лидерство по техническим инновациям для ПК. Помимо того, что Архимед мог быть до 10 раз быстрее Амиги он мог ещё и выводить изображения в 256 цветах из 4096-цветовой палитры в растры от 320×256 до 1056×256 на недорогие мониторы. А для дорогих мониторов были доступны режимы с большим числом строк, например, 640×512 и даже 800×600! Видеосистема Архимеда очень быстрая и гибкая и фактически пользователь может создавать новые видеорежимы по своему усмотрению как и на VGA. У видеосистемы Архимеда есть только один реальный недостаток: в режиме 256 цветов использование палитры затруднено из-за того, что имеется только 16 регистров палитры вместо 256. Поэтому нельзя выбрать все 256 цветов абсолютно произвольно и часть из выбранных цветов иногда необходимо заменять на похожие. Реально эта проблема скорее для разработчиков системного ПО, которым нужно было обеспечить оптимальный выбор фактической палитры вместо заданной, чем для пользователя, для которого разница была практически неразличима.

Кстати, появление графики такого качества на офисных ПК сняло тормоз с производства Амиг и они пусть и с опозданием в 2 года заслуженно стали реально массовым компьютером, который, однако, продавали, как и Атари СТ, больше в Европе, чем в Америке. С первым компьютером Джея Майнера случилась аналогичная история, Атари 400/800 тоже фактически придерживали года 2–3. Грустная, но типичная ситуация, когда гений инженера превосходит уровень имеющегося менеджмента. Тут можно и Ползунова вспомнить с его первым промышленным паровым двигателем…

А концу 80-х уже появилась аппаратура, позволяющая на ПК выводить полноцветовую картинку с более 16 миллионами цветов на экране. Для IBM PC такие видеокарты получили название Super VGA. Растр вырос до немыслимых для начала 80-х размеров 1024×768. Аналогичный качественный рост происходил и для вторых Макинтошей. Удивительно, но с тех пор параметры десктоповых дисплеев ненамного выросли — сегодня растр в 1920×1024 вполне обычная вещь, а различимых цветов не прибавилось совсем. Прирост за более 30 лет всего-то раза в 3, хотя если брать лучшие массовые изделия, то прирост будет почти в 10 раз. В любом случае, впечатляет мало.

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

DEC Professional со стандартной дополнительной видеокартой может в растре 256×256 выводить до 4096 цветов и без каких-либо ограничений! Хотя есть информация, которую, к сожалению, не смог проверить, что на древних мониторах выводилось не более 240×240 растра. Эта серия компьютеров производилась с 1982. Но особенности использования этих систем привела к тому, что до 2023 не было ни одной программы, которая могла бы вывести фотографическую картинку на экран! И это при том, что возможность использования 4096 цветов одновременно прописана в официальной документации! В СССР с 1985 производился клон модели Pro 350 под названием Электроника-85. Опять, к сожалению, мне так и не удалось до сих пор проверить может ли отечественный клон красиво показывать цветные фотки.

Цветная графика у DEC Pro имеет уникальные особенности. Всё фирменное ПО использует только режим 960×240 с 8 цветами, выбираемыми из палитры в 256 цветов на моделях 325 и 350 и в 4096 цветов на модели 380. Однако, можно работать без палитры, задавая цвет напрямую. Каждой цветовой плоскостью в этом режиме можно управлять независимо, например, горизонтальное разрешение у каждой плоскости может быть своё. Уменьшая разрешение, получаем возможность больше регулировать яркость для пиксела. При 256 пикселах в строке получаем 16 уровней яркости, а при 512 — 4. Например, при разрешении 512×256 можно иметь 64 цвета. Если иметь разные разрешения для всех трёх плоскостей, то получим очень экзотические режимы с деталями в трёх разрешении (1024×256, 512×256, 256×256) и 128 цветами.

Если бы среди пользователей DEC Pro было больше энтузиастов, то знаменитый жонглер мог бы появиться на DEC Pro раньше, чем на Амиге. К сожалению, энтузиазма пользователей хватило только на то, чтобы теоретически заметить, что графические возможности систем позволяют показывать фотки. Картинка ниже получилась из сделанного на скорую руку простейшего конвертера, но 4096 свободных цветов позволяют не напрягаться.

DEC Pro (256x256, 277 цветов)

DEC Pro (256×256, 277 цветов)

Другими компьютерами, которые могли показывать картинки почти фотографические качества были компьютеры серии Commodore 264, производившейся с начала 1984. Эти компьютеры могли выводить до 121 цвета на экран, но с большими ограничениями. Например, в растре 320×200 можно было иметь не более 2 цветов на знакоместо 8×8. Это типичный пример клаша атрибутов, характерный для многих дешевых компьютеров 80-х, например, Спектрума. Однако из-за большой гибкости управления видеосистемой можно, загружая процессор, уменьшить ограничения 2 цветов до матрицы 8×2, фактически получая 2 бита на пиксел. А в разрешении 160×200 ограничение можно довести до 4 цветов в матрице 4×2 при фиксированных двух цветах на строку растра, получая чуть более 4 bpp. Такие видеорежимы требуют более 18 КБ на картинку и не могут поэтому быть использованы на самом массовом компьютере серии Commodore 16, если не сделать расширение памяти. Максимальный растр для компьютеров этой серии — это 320×288 для систем PAL, но, как это уже отмечалось выше, так много вертикальных линий могут показать только эмуляторы и современные мониторы. Техника 80-х могла показать не более 256–264 строки. Для NTSC максимальное число строк 240, но практически, с учетом возможностей мониторов тех лет — 224. Стоит отметить, что качественный кросс-конвертор картинок для этих компьютеров появился только в 2007 и он может делать растры не более 304×248. При показе такой картинки процессор почти всё время занят только её поддержанием.

высокое разрешение С264 (304х248, 88 цветов)

высокое разрешение С264 (304×248, 88 цветов)

многоцветный режим С264 (152х248, 91 цвет)

многоцветный режим С264 (152×248, 91 цвет)

Редкий компьютер Enterprise, выпускавшийся в 1985, имеет видеорежим 80×256 с 256 свободными цветами из палитры в те же 256 цветов. Это позволяет получать похожие на фотографии изображения. Конвертор сделан по-быстрому, поэтому качество картинки можно наверное несколько повысить.

Enterprise (80x256, 42 цвета)

Enterprise (80×256, 42 цвета)

К началу 90-х энтузиасты обнаружили возможность вывода нескольких десятков цветов (48 или даже с некоторыми ограничениями 56) в одну строку на Атари СТ, первом домашне-офисном полностью 16-разрядном компьютере, процессор которого может даже работать с 32-разрядными данными. Этот компьютер производился также с 1985. Кроме того, энтузиасты нашли способ показывать картинки размером до 416×274, но в отличие от Амиг повышенное разрешение так и не было на СТ стандартизировано. Был также найден способ расширить палитру с 512 до 3375 цветов, хотя это и связано с мерцанием. Почти уверен, что нет больше ни одного компьютера, видеосистема которого смогла бы выдержать столько радикальных хаков. Вывод более 16 цветов в строку требует изменять регистры видеочипа прямо во время отрисовки, что иногда приводит к появлению на экране так называемых артефактов, случайных точек. Кроме того, такая хакерская работа со цветами приводит ещё и к тому, что теряется одна строка растра.

Atari ST (320x199, 71 цвет)

Atari ST (320×199, 71 цвет)

В 1986 был выпущен Apple IIgs, который мог в растре 320×200 выводить до 3200 цветов из палитры в 4096 цветов. Однако, в таком режиме в каждой строке выводится только не более 16 различных цветов, что делает создание качественных фотографических изображений очень проблематичным. Только после 2000 появились средства для относительно приемлемой конвертации в такой режим. Однако, возможно вследствие исторической замкнутости сообщества фанов IIgs и его ориентированность на тренды 8-битных Апплов, качественного кросс-средства для такой конвертации так и не было сделано. Поэтому возможно когда-нибудь в будущем кто-нибудь сможет получить для IIgs картинку лучшего качества, чем следующая.

Apple IIgs (320x200, 112 цветов)

Apple IIgs (320×200, 112 цветов)

Все Амиги, MSX-2, Энтерпрайз и Коммодоры 264, а также топовый DEC Pro 380 могут вдвое повышать число показываемых строк, используя все строки типовой в 80-е чересстрочной разверстки, так называемый интерлейсинг. Однако, интерлейсинг создаёт неприятное мерцание на экране и поэтому показ фоток — это практически наилучшее и единственно реальное применение интерлейсинга.

Из-за того, что пары строк при чересстрочной разверстке фактически частично налагаются друг на друга, реальное разрешение поднимается совсем не так эффектно как могло бы быть на мониторе, способном без интерлейсинга показывать удвоенное число строк. Из-за этого эффекта удвоение числа строк через интерлейсинг очень трудно качественно эмулировать — нет наверное ни одного эмулятора, который бы мог показывать интерлейсную графику также как реальная аппаратура. Можно ещё отметить, что из-за того, что частота мерцания 25 Гц для PAL и 30 Гц для NTSC, на американских системах интерлейсинг получается чуть менее раздражающим. При интерлейсинге на PAL системах число выводимых цветов может быть большим заявленных из-за эффекта инверсии цветов на парных строках, например, на Коммодорах вместо 121 цвета может фактически показываться 240.

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

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

Система

Растр

Цветов

Палитра

Размер

DEC Pro

256×256

4096

4096

98304

Commodore 264

304×248

121/2

121

≈18848

Enterprise

80×256

256

256

20480

Atari ST

320×199

512/48

512

≈42586

Amiga

360×283

4096/16

4096

76434

MSX-2

256×212

256

256

54272

Apple IIgs

320×200

3200/16

4096

37000

Acorn Archimedes

800×600

256

4096

480024

IBM PC VGA

360×240

256

262144

86976

Macintosh II

512×384

256

262144

197184

По ней видно как сильно отрывались DEC Pro и Acorn Archimedes от базовых трендов своего времени. Хотя стоит отметить, что модели DEC Professional, выпускавшиеся до 1985 (325 и 350), имели довольно слабый процессор для такой тогда супер-графики. Производительность первых Pro на целых данных была где-то посередине между ZX Spectrum и первым IBM PC.

Наверное были в 80-е и другие ПК, способные красиво показать на экране цветную фотку. Возможно Tandy CoCo 3 (1986) тоже может показать фотку относительно качественно. Это компьютер в растре до 320×225 может показывать 16 цветов из палитры 64 цвета и если заменять цвета построчно, то это может дать неплохой результат. Проблемой этого компьютера при показе фоток является наличие двух разных палитр для мониторов разного типа (как было и для первых IBM PC с картой CGA), что делает невозможным показ одинаково красивой картинки на мониторах разных типов. Ну и 64 цвета — это всё-таки маловато.

Картинки на реальном железе имеют, как правило, несколько другое соотношение ширины к высоте, чем в приведенные в этом материале выше. Поэтому привожу финальную галерею, где все картинки как бы выводятся на один монитор с соотношением сторон 4:3. Эти изображения получены прямым масштабированием с сохранием числа цветов.

исходное (39812 цветов)

исходное (39812 цветов)

Amiga NTSC

Amiga NTSC

Amiga PAL

Amiga PAL

MSX-2

MSX-2

VGA 320x200

VGA 320×200

VGA 360x240

VGA 360×240

Acorn Archimedes 1056x256 (256 цветов)

Acorn Archimedes 1056×256 (256 цветов)

Acorn Archimedes 800x600 (256 цветов)

Acorn Archimedes 800×600 (256 цветов)

Macintosh II 512x384 (256 цветов)

Macintosh II 512×384 (256 цветов)

DEC Pro 3xx

DEC Pro 3xx

Commodore 264 hi-res

Commodore 264 hi-res

Commodore 264 multicolor

Commodore 264 multicolor

Apple IIgs

Apple IIgs

Enterprise

Enterprise

Atari ST

Atari ST

Благодарю за прочтение. Буду рад замечаниям и дополнениям.

© Habrahabr.ru