Формат JPEG представили в 1993 году, а GIF — в 1987-м. Но тогда непонятно, как смотрели фотографии девушек на этой прекрасной машине образца 1983 года?
Такой вопрос пришёл мне от читателя обзора портативного компьютера Compaq Portable. Ответ оказался сложнее, чем мы думали. Давайте разберёмся.
Железо
Сначала поговорим об аппаратном обеспечении — была ли вообще возможность обрабатывать фотоизображения на той технике? Очевидно, что мейнфреймы и суперкомпьютеры 70-х годов могли, но они были недоступны для широкой публики. Первый в мире персональный компьютер Altair 8800 вышел в 1975 году. Счастливый обладатель этого чуда техники вводил программу с помощью переключателей, наблюдая за состоянием регистров на светодиодах:
Altair 8800 © Википедия
Для этой машины даже написали несколько игр. Названия вроде «Убить бит» (Kill The Bit) дают представление об игровом процессе… Очевидно, что отобразить фотографию на таком устройстве не было никакой возможности.
В конце 70-х годов появились более продвинутые компьютеры на CP/M. Это полноценная ОС с файловой системой, дисковыми накопителями, компиляторами, программами и играми. Но увы — чисто текстовый UI. Теоретически, с помощью ASCII-графики можно отобразить нечто подобное:
Изображение «Ленна» в формате ASCII © en.wikipedia.org/wiki/Lenna
Но это скорее забавный трюк, чем настоящее фото. Хотя надо признать, что на некоторых компьютерах CP/M имелись зачатки графики. Например, на Visual 1050. Однако универсальных графических стандартов ещё не придумали.
Компьютер Visual 1050 на CP/M © www.vintagecomputing.com
Одним из самых ранних форматов графики для CP/M стал RLE, который кодировал чёрно-белые изображения с разрешением 256×192. На практике картинка может выглядеть примерно так:
Как видим, формат далёк от совершенства, но гораздо лучше чистого ASCII. Размер монохромного изображения RLE около 6 КБ, поэтому на дискету CP/M объёмом 90 КБ вмещалось до 14 фотографий такого качества.
С годами компьютерное железо становилось всё лучше. В 1981 году вышел формат CGA (Color Graphics Adapter), а компьютеры MS-DOS могли отображать графику с разрешением до 320x240 в четырёх цветах. Изображение такого качества может выглядеть следующим образом:
Размер изображения в таком формате составляет около 40 КБ, а на дискету 360 КБ вмещалось около восьми картинок. Через несколько лет на рынке появились адаптеры VGA, которые смогли выводить на экран 256-цветные картинки. Вот они уже были действительно реалистичными:
Размер этого изображения 77 КБ, а на 1,44-дюймовую дискету 720 КБ можно было сохранить пять-шесть изображений (с операционной системой — прим. пер.). Как видим, размеры дискет растут, но количество картинок на них практически не меняется.
В конце 80-х адаптеры SVGA (Super Video Graphics Array) начали отображать фотореалистичные изображения до 1280×1024 с 16 миллионами цветов, что фактически аналогично современному.
В 80-х и 90-х продавались и другие компьютеры — Apple, Commodore, ZX Spectrum… Все могли отображать различные типы графики. Перечислять полный список слишком скучно, надеюсь, читатели уже получили основное представление о графических адаптерах тех времён. Так что давайте поговорим о программном обеспечении.
Источники изображений
С аппаратными возможностями ПК в начале 80-х годов всё более или менее ясно, но что насчёт самих изображений? Сначала давайте найдем ответ на более простой вопрос — были вообще в то время доступны фотографии обнажённой натуры в целом? Ответ — «да». На самом деле, знаменитое изображение Ленны (см. выше), которое сегодня стало своего рода стандартом при тестировании алгоритмов обработки изображений, отсканировано из журнала Playboy в 1973 году в Университете Южной Калифорнии с помощью сканера и компьютера Hewlett Packard 2100.
Компьютер HP 2100 в 70-е годы © en.wikipedia.org/wiki/HP_2100
Шведская модель Ленна Шьёблом (Lenna Sjööblom), безусловно, привлекательная женщина (полноразмерное изображение см. здесь). Но сейчас никто бы не вспомнил о старой фотографии из «Плейбоя» 1973 года. Только благодаря научной публикации фотография «Ленны» стала одним из самых используемых изображений в компьютерной истории. Конечно, оно было отсканировано не для обмена нюдсами, а в качестве иллюстрации для научного доклада.
(Сканирование девушек «Плейбоя» для научных статей в области обработки изображений у учёных встречается с 1960 года — прим. пер.)
Как бы то ни было, технология сканирования изображений была доступна уже в 70-х годах, а в 80-х дискеты стали дешевым и надежным хранилищем для сохранения и копирования файлов. Например, так выглядела дискета 5-1/4" на 360 КБ рядом с картой MicroSD для сравнения:
Таким образом, в 80-е годы пользователи компьютеров уже познакомились с цифровыми изображениями и могли ими легко обмениваться. Конечно, «картинки для взрослых» были своего рода редкостью, а сканеры вообще оставались доступны широкой публике.
Форматы изображений
Что появилось первым — курица или яйцо? Изображение или формат? Ну, первым было изображение. В простейшем случае «формат» не нужен, ведь монохромное изображение — это просто последовательность бит:
Если мы знаем ширину и высоту изображения, а компьютер умеет отображать пиксели, то любой разработчик может сделать программу, которая выводит картинку «как есть» из двоичного файла.
Кстати, на тему кастомных форматов интересно упомянуть игру Strip Poker, которая вышла в 1985 году:
На первом экране выбор оппонента: Сюзи или Мелисса, второй экран — сама игра. Если открыть папку с файлами игры, то легко заметить, что файлы данных обеих девушек сохранены «как есть», никакого сжатия, все файлы одинакового размера:
1:03 AM 71 Melissa.txt 12:18 AM 5768 Melissa1.pic 12:18 AM 5768 Melissa2.pic 12:19 AM 5768 Melissa3.pic 12:20 AM 5768 Melissa4.pic 12:21 AM 5768 Melissa5.pic 5:40 AM 35 Opn.txt 12:04 AM 5768 Opps.pic 12:59 PM 50304 Poker.exe 1:06 AM 1288 Screen.pic 12:03 AM 5768 Stitle.pic 5:09 AM 69 Suzi.txt 12:02 AM 5768 Suzi1.pic 1:33 AM 5768 Suzi2.pic 12:00 AM 5768 Suzi3.pic 12:01 AM 5768 Suzi4.pic 12:00 AM 5768 Suzi5.pic
Разработчики игры сделали всё возможное, чтобы минимизировать размер файлов. Каждый всего 5768 байт, что даёт нам разрешение всего лишь 320×18 в оттенках серого. И действительно, если открыть pic-файл с помощью Python, то многие детали отсутствуют:
Разработчики определённо использовали какие-то трюки, чтобы вывести изображение 320×18 на экране 320×240.
Возможно, игра использовала отдельное фоновое изображение или программно рисовала некоторые детали (например, вертикальные линии).
Зачем они потратили столько усилий? Ответ прост — у большинства компьютеров в то время вообще не было жёстких дисков. Поэтому было крайне важно, чтобы игра поместилась на дискету. Как мы уже знаем, размер первых дискет составлял всего 360 КБ — и это не только для игры, но и для загрузочных файлов MS-DOS. И разработчики сумели проявить чудеса оптимизации, так что размер всех файлов игры составляет всего 140 КБ.
Конечно, изображения «как есть» без сжатия занимают много места, поэтому все постоянно пытались найти лучшие способы. Одним из первых методов кодирования изображений стал RLE (Run-Length Encoding). В этом формате каждый блок данных хранится в парах «число, значение», что позволяет сохранять изображения более эффективно. В качестве простого примера — последовательность черно-белых пикселей ЧБББЧББББ
можно сохранить как 1Ч3Б1Ч4Б
. Так можно сэкономить немного места (или наоборот). Такой метод подходит скорее для графиков или таблиц, но для фотореалистичных изображений сжатый RLE может оказаться даже больше оригинала.
Одним из первых широко используемых форматов стал PCX (PiCture eXchange), который вышел в 1985 году. Этот формат также использует кодировку RLE, а в заголовке хранит много дополнительной информации:
// Standard PCX header (C/C++)
struct PCXHeader {
char ID; // ID, always 0x0A
char Version; // The version number
char Encoding; // Use of encoding (0, 1)
char BitPerPixel; // 1, 2, 4 or 8
short X1; // The minimum x-coordinate of the image position
short Y1; // The minimum y coordinate of the image position
short X2; // The maximum x coordinate of the image position
short Y2; // The maximum y coordinate of the image position
short HRes; // The horizontal image resolution in DPI
short VRes; // The vertical image resolution in DPI
char ClrMap[16*3]; // The EGA palette for 16-color images
char Reserved1;
char NumPlanes; // Number of color planes: 1, 3, or 4
short BPL; // The number of bytes of one color plane
short Pal_t;
char Filler[58];
} Header;
На самом деле PCX не очень хорош для сохранения фотографий, например, та же «Ленна» в в 16-цветном формате 320×240 занимает 35 КБ, а в 256-цветном — целых 100 КБ!
В 1987 году появился ещё формат GIF (Graphics Interchange Format) — гораздо более продвинутый, чем PCX. Для сжатия он использует более эффективный алгоритм Lempel-Ziv-Welch (LZW) — одно и то же изображение Ленны 320×240 в формате GIF занимает всего 37 КБ по сравнению со 100 КБ в PCX. В 1989 году вышла расширенная версия GIF, способная отображать ещё и анимацию.
Удивительно, но анимированные GIF используются и сегодня, даже в этой статье. Это по-прежнему самый простой и кроссплатформенный способ встраивания анимированного контента на страницу.
Наконец, в 1992 году учёные представили формат JPEG (аббревиатура Объединенной группой экспертов по фотографии, то есть Joint Photographic Experts Group). Этот формат использовал сжатие с потерями и специально разработан для сохранения фотографий. Для кодирования данных тут используется алгоритм DCT. Вообще-то, сам метод дискретного косинусного преобразования предложен в 1972 году, но, только через двадцать лет появился реальный общественный спрос на эту технологию.
Кстати, в 90-е годы продажа эротических изображений стала бизнесом. С технической точки зрения забавно смотрятся эти рекламные объявления из журнала PC Magazine за 1994 год:
Источник изображения: © PC Mag, июнь 1994
Сегодня коллекция «более 2500 VGA картинок» или «Super VGA 1024x768x256 изображений» вызывает только улыбку, но в то время это был своего рода хайтек.
Заключение
Вернёмся к первоначальному вопросу — можно ли смотреть нюдсы на компьютере XT в начале 80-х? Технически, «да». Эти машины умели отображать графику и у них были дисководы для дискет для обмена файлами. Вот как этот процесс выглядит на настоящем компьютере Compaq Portable, выпущенном в 1983 году:
Как видим, компьютер не самый быстрый, время загрузки изображения составляет около 40 секунд, но он ещё работает.
Но в реальной жизни этот компьютер был выпущен в 1983 году. А форматы изображений PCX, GIF или JPEG тогда ещё не изобрели. Скорее всего, существовали какие-то кастомные форматы — кодировка простая, и почти любой студент или программист мог написать простой вьюер монохромных изображений. Более того, программы просмотра изображений были доступны ещё в операционной системе CP/M, которая использовалась до MS-DOS. Поэтому я почти уверен, что пользователи делились между собой некоторыми изображениями эротического характера. Например, на компьютерах в университетских кампусах. Правда, я не смог найти никаких доказательств этого факта. Я нашёл несколько программ для просмотра изображений под MS-DOS, но все они сделаны позже, в 90-е:
Так что настоящий ответ остаётся открытым. Если кто-то из вас пользовался программами для сканирования, просмотра или редактирования изображений в 80-х годах или если у кого-то есть примеры таких изображений, пожалуйста, напишите в комментариях.
Спасибо за чтение. Кого интересуют подробности, предлагаю обзор того самого компьютера Compaq Plus Portable. Больше интересного про MS-DOS — в другой статье.
Автор: Дата-центр "Миран"