Цветные фотки на первых ПК
Чтобы произвольная картинка воспринималась как цветная фотография, нужно предположительно более 100 цветов в палитре на показывающей аппаратуре. Первым компьютером, который смог вывести на экран более 100 цветов стал Aтари 400, производство которого началось аж в 1979. Это был также первый компьютер, созданный во многом инженерным гением Джея Майнера. 8-битные Атари, которые производились до 1992, могли показывать до 256 (модели до 1981 года умели только 128) цветов! Однако, было слишком много ограничений на использование разных цветов на одном экране. Поэтому вплоть до недавнего времени на атарях так и не удавалось получить изображений, которые воспринимались бы как фотографические. Только в 80-е появились компьютеры, которые смогли реально показывать фотки.
Для дальнейшего понадобится картинка-образец, которую будем конвертировать на различные компьютеры 80-х. Возьмем для этого случайную картинку размером 1024x1024 с 69344 цветами, сгенерированную системой ИИ.
Общепринято, что первым массовым компьютером, реально показавшим фотографии на экране, стал второй и последний компьютер Джея Майнера, легендарная Амига, выпуск которой начался в 1985. Амига, используя специальный графический режим, может выводить до 4096 цветов на экран одновременно. Использование этого режима также налагает серьёзные ограничения, что делает его очень трудным для использования в динамической графике и, в частности, в играх. В этом режиме фактически используется только 16 базовых цветов из палитры в 4096 цветов и есть возможность в текущем пикселе изменять одну из RGB-компонент предыдущего пиксела. Оказалось, что такой подход отлично работает и фактически является некоторой формой сжатия визуальной информации с потерями. На каждый пиксел в этом режиме выделяется 6 бит, вместо 12 как было бы нужно для показа 4096 цветов без ограничений. Кроме того, помимо типового режима, когда 16 базовых цветов задаются для всего экрана, можно использовать и режим SHAM, когда базовые цвета определяются построчно. Однако, оказалось, что SHAM часто даёт практически незаметное повышение качества и поэтому почти не используется. Недостатком фотографического режима Амиги является трудоёмкость оптимальной конверсии произвольной картинки в такой формат. Современная кросс-утилита ham_convert может работать над одной фотографией более десятка минут на современном десктопе!
Теоретически первые Амиги могли выводить растр до 368х290 для моделей PAL и 368х241 для моделей NTSC с 4096 цветами, что в середине 80-х было просто фантастично. Для сравнения, знаменитые Макинтоши могли показывать 512х342 и только в монохроме. Атари СТ могли показать не более 16 цветов из палитры 512 цветов в растре 320х200. Профессиональная карта EGA для IBM PC совместимых позволяла выводить только 16 цветов из палитры 64 цвета в растр 640х350. Хотя надо отметить, что телевизоры и мониторы для Амиги тех лет не могли показать больше 270 строк для систем PAL и 220 для NTSC. Кроме того, Амига ОС до 90-х поддерживала только разрешение в 320х200 (320x256 для PAL) для многоцветных режимов и поэтому почти все картинки-фотки тогда были не больше этого размера.
Вслед за Амигами в том же 1985 появились первые компьютеры стандарта MSX-2, которые могли показывать одновременно 256 цветов в растр до 256х212 и без всяких ограничений. Однако палитра фиксировалась также в 256 цветов. Тут трудно не заметить, что для такой графики Z80 на эффективной частоте примерно в 3.1 МГц был скорее слабоват. И даже наличие мощного видеопроцессора проблемы не решало. ZX Spectrum со своей примитивной графикой использовал процессор процентов на 10 быстрее, чем MSX! Для конвертации фоток в формат MSX-2 существуют до десятка кросс-утилит и даже онлайн-сервис. Для того чтобы почувствовать деградацию качества по сравнению с Амигой, сравните увеличенные картинки.
В 1987 появился очень редкий компьютер Geneve 9640, последняя модель в когда-то очень известном семействе домашних компьютеров TI-99/4. Он использует тот же видеочип, что и MSX-2, и поэтому может показывать любую графику этого стандарта. Интересно, что в MSX использовали видеочип с TI-99/4...
И в 1987 пришла карта VGA для IBM PC совместимых и появился второй Макинтош. Эта профессиональная аппаратура позволяла уже показывать одновременно 256 цветов без ограничений из палитры в сотни тысяч цветов. Это позволяло без каких-либо трюков получать весьма качественные фотографические изображения на экране. Макинтош II выводит фотографический растр до 512х384 (или даже 640x480 с более дорогой видеосистемой), а VGA – до 360х240 (или 360x480) на стандартный монитор. Однако, абсолютное большинство программ использовали возможности VGA лишь частично, работая со стандартным BIOS-растром в 320х200. Большой размер палитры позволяет эффективно использовать все свободные цвета, что при показе фоток дает индексным цветам VGA или Макинтоша преимущество по сравнению с MSX-2 или даже иногда Амигой.
Фактически видеорежимы VGA можно достаточно несложным образом создавать по потребности. 256-цветный режим можно получить в растре до 400x600. Нужно лишь уложиться в спецификации используемого монитора и учитывать, что с ростом числа строк падает частота обновления экрана и соответственно качество изображения.
В том же году появился Acorn Archimedes, который ненадолго сделал Британию да и Европу в целом лидером по техническим инновациям для ПК. Помимо того, что Архимед мог быть до 10 раз быстрее Амиги, он мог ещё и выводить изображения в 256 цветах из 4096-цветовой палитры в растры от 320х256 до 1056х256 на недорогие мониторы. А для дорогих мониторов были доступны режимы с большим числом строк, например, 640х512 и даже 800х600! Видеосистема Архимеда очень быстрая и гибкая и фактически пользователь может создавать новые видеорежимы по своему усмотрению как и на VGA. Но у видеосистемы Архимеда есть один немаленький недостаток: в режиме 256 цветов использование палитры затруднено из-за того, что имеется только 16 регистров палитры вместо 256. Это позволяет иметь по 16 фиксированных вариантов для каждого из 16 свободных цветов. Поэтому нельзя выбрать все 256 цветов абсолютно произвольно и часть из выбранных цветов иногда необходимо заменять на похожие. В худших случаях вместо 256 цветов может реально остаться только 16, в лучших – все цвета сохраняются. Из-за этого недостатка потеря более двух третей цветов, что оставляет менее 80 свободных цветов, – это скорее типично. Качественная замена одной палитры на другую – это весьма непростая и скорее ещё нерешенная задача. Лучше всего она пока частично решается при помощи дизеринга, хотя это и понижает уровень детализации. В некоторых демках количество цветов удавалось радикально увеличить, меняя палитру при прорисовке образа, но это требовало сверхточной синхронизации работы видеочипа и процессора через таймер.
В 1987 в другом островном государстве был выпущена первая модель в серии домашних компьютеров Sharp X68000, которая некоторое время побыла по нескольким ключевым параметрам лучшим игровым компьютером в мире. Эта модель может выводить до 256 (до 65536 с 1988) цветов из палитры в 65536 цветов в растр до 512x512. Однако, несмотря на такую продвинутую графику и в целом достойные технические характеристики, этот компьютер практически нигде кроме Японии замечен не был. Возможно из-за цены, которая была значительно выше цены Амиги. Удивительно, что Амиги и даже сверхудачные Коммодоры 64 в Японии были практически совсем неизвестны!
В Японии производили и другие компьютеры, способные красиво показать фотографические изображения. X68000 сменил предшествующую линейку компьютеров Sharp X1, производимую с 1982. Топовая модель X1 turbo Z, производство которой было начато в 1986, имеет видеорежим 320x200 с 4096 свободными цветами, с палитрой в те же 4096 цветов. Удивительно, но главный процессор этой топовой модели был, как и на начальной модели, Z80 4 МГц, что явно маловато для видеорежима, где экран требует почти 96 КБ видеопамяти.
Фирма Fujitsu, которая больше известна как крупный участник бизнеса мейнфреймов, с 1982 производила линейку компьютеров FM-7. Топовые варианты этих компьютеров имели обозначение FM-77AV и производились с 1985. Они могли использовать видеорежим, аналогичный X1 turbo Z. А последние модели с конца 1987 могли даже показывать 18 bpp (262144 свободных цвета!) в растр 320х200. Процессор для всех FM-77 был Motorola 6809 на частотах до 2 МГц. Хотя FM-77 были и побыстрее Sharp X1, но ненамного и это было мало, чтобы эффективно использовать графику с 12 bpp и тем более 18 bpp. Удивительно, что вместо 6809 не использовали пин-совместимый с ним Hitachi 6309, который может быть до 50% быстрее на одинаковой с 6809 частоте. Для сравнения, Амига, как минимум, раза в два быстрее FM-77, но типично использует цветную графику только 5 bpp и очень редко 6 bpp.
Крупнейший в Японии производитель чипов и персональных компьютеров, компания NEC, с 1981 выпускала разнообразные варианты компьютеров линейки PC-8800. Некоторые модели этой линейки, производимые с 1987, поддерживали работу с графикой до 640x408 с 256 свободными цветами или до 640x204 с 65536 свободными цветами при палитре в 65536 цветов. Однако, многоцветные режимы PC-8800, FM-77 и X1 turbo Z почти никогда не использовались. Да и сами эти модели, способные показывать цветные фотки, были редкими даже для Японии и совершенно неизвестными в других странах.
Появление графики высокого качества на массовых офисных ПК, Архимеда и недорогих японских многоцветных компьютеров сняло тормоз с производства Амиг и они хотя и с опозданием в 2 года заслуженно стали реально популярными компьютерами, которые, однако, продавали, как и Атари СТ, больше в Европе, чем в Америке. С первым компьютером Джея Майнера случилась аналогичная история, Атари 400/800 тоже фактически придерживали года 2-3. Грустная, но типичная ситуация, когда гений инженера превосходит уровень имеющегося менеджмента. Тут можно и Ползунова вспомнить с его первым промышленным паровым двигателем...
К концу 80-х уже появилась аппаратура, позволяющая на ПК выводить полноцветовую картинку с более 16 миллионами цветов на экране. Для IBM PC такие видеокарты получили название Super VGA. Растр вырос до немыслимых для начала 80-х размеров 1024х768. Аналогичный качественный рост происходил и для вторых Макинтошей. Удивительно, но с тех пор параметры десктоповых дисплеев ненамного выросли – сегодня растр в 1920х1080 вполне обычная вещь, а различимых цветов не прибавилось совсем. Прирост за более 30 лет всего-то раза в 3, хотя если брать лучшие массовые изделия, то прирост будет почти в 10 раз. В любом случае, впечатляет мало.
Однако даже в первой половине 80-х были и другие массовые компьютеры, которые могли выводить на экран картинки фотографического качества. И до сих пор это скорее малоизвестно.
Как уже отмечалось, вывести картинки покрасивее на 8-битных Атари пытались много раз, но получалось плохо. Энтузиасты почти с ума сходили, пробуя разные способы повысить качество. Главная проблема была в колоссальном числе возникающих вариантов при генерации картинки при возможности вывести не более 9 цветов в строку. Только в 2012 появилось средство, кросс-утилита RastaConvert, которая, используя разные трюки, в частности, наложение спрайтов, может, иногда ценой часов работы на современном железе, получать изображения, относительно похожие на исходные цветные фотографии. Но в общем случае, результат получается скорее очень сомнительный, хотя можно играть с параметрами и пытаться что-то улучшать. Это может затянуть в бесконечную и почти беспродуктивную деятельность... Нужно ещё учитывать, что на PAL и NTSC системах картинки будут показываться с разными цветами.
А DEC Professional со стандартной дополнительной видеокартой может в разрешении 256х256 выводить до 4096 цветов и без каких-либо ограничений! Хотя есть информация, которую, к сожалению, не смог проверить, что на древних мониторах выводилось не более 240х240 пикселов. Эта серия компьютеров производилась с 1982. Но особенности использования этих систем привела к тому, что до 2023 не было ни одной программы, которая могла бы вывести фотографическую картинку на экран! И это при том, что возможность использования 4096 цветов одновременно прописана в официальной документации! В СССР с 1985 производился клон модели Pro 350 под названием Электроника-85. Опять, к сожалению, мне так и не удалось до сих пор проверить может ли отечественный клон красиво показывать цветные фотки.
Цветная графика у DEC Pro имеет уникальные особенности. Всё фирменное ПО использует только растр 960x240 с 8 цветами, выбираемыми из палитры в 256 цветов на моделях 325 и 350 и в 4096 цветов на модели 380. Однако, можно работать без палитры, задавая цвет напрямую. Каждой цветовой плоскостью в этом режиме можно управлять независимо, например, горизонтальное разрешение у каждой плоскости может быть своё. Уменьшая разрешение, получаем возможность больше регулировать яркость для пиксела. При 256 пикселах в строке получаем 16 уровней яркости, а при 512 – 4. Например, при разрешении 512х256 можно иметь 64 цвета. Если иметь разные разрешения для всех трёх плоскостей, то получим очень экзотические режимы с деталями в трёх разрешении (1024x256, 512x256, 256x256) и 128 цветами.
Если бы среди пользователей DEC Pro было больше энтузиастов, то знаменитый жонглер мог бы появиться на DEC Pro раньше, чем на Амиге. К сожалению, энтузиазма пользователей хватило только на то, чтобы теоретически заметить, что графические возможности систем позволяют показывать фотки. Картинка ниже получилась из сделанного на скорую руку простейшего конвертера, но 4096 свободных цветов позволяют не напрягаться.
Другими компьютерами, которые могли показывать картинки пусть и худшего, но почти фотографические качества были компьютеры серии Commodore 264, производившейся с начала 1984. Эти компьютеры могли выводить до 121 цвета на экран, но с большими ограничениями. Например, в растре 320х200 можно было иметь не более 2 цветов на знакоместо 8х8. Это типичный пример клаша атрибутов, характерный для многих дешевых компьютеров 80-х, например, Спектрума. Однако из-за большой гибкости управления видеосистемой можно, загружая процессор, уменьшить ограничения 2 цветов до матрицы 8х2, фактически получая 2 бита на пиксел. А в разрешении 160х200 ограничение можно довести до 4 цветов в матрице 4х2 при фиксированных двух цветах на строку растра, получая чуть более 4 bpp. Такие видеорежимы требуют более 18 КБ на картинку и не могут поэтому быть использованы на самом массовом компьютере серии Commodore 16, если не сделать расширение памяти. Максимальный растр для компьютеров этой серии – это 320x288 для систем PAL, но, как это уже отмечалось выше, так много вертикальных линий могут показать только эмуляторы и современные мониторы. Техника 80-х могла показать не более 256-264 строки. Для NTSC максимальное число строк 226, но практически, с учетом возможностей мониторов тех лет – 216-220. Стоит отметить, что качественный кросс-конвертор картинок для этих компьютеров появился только в 2007 и он может делать растры не более 304х248. При показе такой картинки процессор почти всё время занят только её поддержанием.
Редкий компьютер Enterprise, выпускавшийся в 1985, имеет видеорежим 80х256 с 256 свободными цветами из палитры в те же 256 цветов. Это позволяет получать похожие на фотографии изображения. Конвертор сделан по-быстрому, поэтому качество картинки можно наверное несколько повысить.
К началу 90-х энтузиасты обнаружили возможность вывода нескольких десятков цветов (48 или даже с некоторыми ограничениями 56) в одну строку на Атари СТ, первом домашне-офисном полностью 16-разрядном компьютере, процессор которого может даже работать с 32-разрядными данными. Этот компьютер производился также с 1985. Энтузиасты нашли и способ показывать картинки размером до 416x274, но в отличие от Амиг повышенное разрешение так и не было на СТ стандартизировано. Вывод более 16 цветов в строку требует изменять регистры видеочипа прямо во время отрисовки, что иногда приводит к появлению на экране так называемых артефактов, случайных точек. Кроме того, такая хакерская работа со цветами приводит ещё и к тому, что теряется одна строка растра.
В 1986 был выпущен Apple IIgs, который мог в растре 320х200 выводить до 3200 цветов из палитры в 4096 цветов. Однако, в таком режиме в каждой строке выводится только не более 16 различных цветов, что делает создание качественных фотографических изображений очень проблематичным. Только после 2000 появились средства для относительно приемлемой конвертации в такой режим. Однако, возможно вследствие исторической замкнутости сообщества фанов IIgs и его ориентированность на тренды 8-битных Апплов, качественного кросс-средства для такой конвертации так и не было сделано. Поэтому возможно когда-нибудь в будущем кто-нибудь сможет получить для IIgs картинку лучшего качества, чем следующая.
В СССР в 1987-88 были сделаны несколько моделей многоцветных компьютеров. Мне известны две, палитра которых содержит 256 цветов: почти мифический компьютер Радуга и один из самых известных советских домашних компьютеров Вектор-06Ц. Oба были разработаны далеко не в самых крупных индустриальных центрах усилиями всего нескольких энтузиастов. Радуга в Омске, а Вектор в Кишиневе. Многоцветная графика на Векторе выводится в растр 256х256 при 16 свободных цветах. Однако, замена цветов в палитре сделана весьма громоздко, что делает построчную замену цветов почти невозможной.
Все Амиги, MSX-2, Энтерпрайз и Коммодоры 264, а также топовый DEC Pro 380 могут вдвое повышать число показываемых строк, используя все строки типовой в 80-е чересстрочной развертки, так называемый интерлейсинг. Однако, интерлейсинг создаёт неприятное мерцание на экране и поэтому показ фоток – это практически наилучшее и единственно реальное применение интерлейсинга.
Из-за того, что пары строк при чересстрочной развертке фактически частично налагаются друг на друга, реальное разрешение поднимается совсем не так эффектно как могло бы быть на мониторе, способном без интерлейсинга показывать удвоенное число строк. Из-за этого эффекта удвоение числа строк через интерлейсинг очень трудно качественно эмулировать – нет наверное ни одного эмулятора, который бы мог показывать интерлейсную графику также как реальная аппаратура. Можно ещё отметить, что из-за того, что частота мерцания 25 Гц для PAL и 30 Гц для NTSC, на американских системах интерлейсинг получается чуть менее раздражающим. При интерлейсинге на PAL системах число выводимых цветов может быть большим заявленных из-за эффекта инверсии цветов на парных строках, например, на Коммодорах вместо 121 цвета может фактически показываться 240.
Стоит ещё упомянуть, что некоторые энтузиасты ретро-техники в своём желании увидеть на своём первом компьютере побольше цветов доходят до сомнительных приёмов. Самый типичный из них, это показывать наложение цветов, чередуя две, а иногда и более картинки. Это, как при интерлейсинге, приводит к неприятному мерцанию и в целом сомнительному качеству. Хотя иногда результаты получаются неплохие, но это обычно результат кропотливой ручной работы и значительного снижения итогового разрешения – автоматические конверторы в среднем работают плохо.
В заключение, таблица размера памяти в байтах, необходимой для показа фотографической картинки на соответствующих системах, приведенных в хронологическом порядке. После слэша – число свободных цветов, если это число отсутствует, то все цвета свободны.
Система | Растр | Цветов | Палитра | Размер |
Atari 800 | 320x240 | 256/2 | 256 | ≈21000 |
DEC Pro | 256x256 | 4096 | 4096 | 98304 |
Commodore 264 | 304x248 | 121/2 | 121 | ≈28000 |
Enterprise | 80x256 | 256 | 256 | 20480 |
Atari ST | 320x199 | 512/48 | 512 | ≈42000 |
Amiga | 360x283 | 4096/16 | 4096 | 76434 |
MSX-2 | 256x212 | 256 | 256 | 54272 |
Apple IIgs | 320x200 | 3200/16 | 4096 | 37000 |
Sharp X1 turbo Z | 320x200 | 4096 | 4096 | 96000 |
Acorn Archimedes | 800x600 | 256/16 | 4096 | 480024 |
IBM PC VGA | 360x240 | 256 | 262144 | 86976 |
Macintosh II | 512x384 | 256 | 262144 | 197184 |
Вектор-06Ц | 256x256 | 256/16 | 256 | 32768 |
Fujitsu FM77AV40EX | 320x200 | 262144 | 262144 | 144640 |
NEC PC-88 VA | 640x204 | 65536 | 65536 | 261120 |
Sharp X68000 | 512x512 | 256 | 65536 | 262144 |
По ней видно как сильно отрывались 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 цвета – это всё-таки маловато.
С 1982 года в Японии было начато производства локальной альтернативы надвигавшемуся тогда глобальному стандарту IBM PC, компьютера NEC PC-98, который постоянно модернизировали и выпускали до 2003 года. Интересно, что несмотря на сложные отношения между NEC и Intel, последняя приобрела у NEC права на клонирование видеочипа из PC-98 и этот чип стал в дальнейшем основой для большого числа графических процессоров Intel. Возможности этого видеочипа позволяют предположить, что с некоторыми трюками он может обеспечить показ цветных фоток относительно приемлемого качества. Главное, что палитра на PC-98 имеет размер в 4096 цветов. Растр может быть до 1024х1024 при 16 свободных цветах, но в то время ещё не было мониторов, способных показать так много строк и были бюджетные ограничения на размер памяти, поэтому типичный видеорежим имел размер 640х200 (или 640x400) и 8 цветов.
Конечно, для многих компьютеров существовали расширения, позволявшие показывать качественные изображения. Например, для IBM PC с 1984 была опция использовать карту PGC, а для BBC Micro с 1985 – карту Pluto II.
Картинки на реальном железе имеют, как правило, несколько другое соотношение ширины к высоте, чем в приведенные в этом материале выше. Поэтому привожу финальную галерею, где все картинки как бы выводятся на один монитор с соотношением сторон 4:3. Эти изображения получены прямым масштабированием с сохранием числа цветов.
Благодарю за прочтение. Буду рад замечаниям и дополнениям. Есть перевод на английский.