Оригиналът е на Dmitrii Eliuseev
„JPEG форматът бе представен през 1993 година, а GIF – през 1987-ма. Но по какъв начин тогава хората са гледали разголени снимки с помощта на показаната по-горе прекрасна машина от 1983 година?“.
Този въпрос ми бе зададен от читател на ревюто за портативния компютър Compaq Portable. Отговорът е по-сложен, отколкото навярно бихте си помислили. Нека да се спрем по-подробно.
Хардуерът
Нека да започнем с хардуера – дали изобщо е възможна работата с графика с помощта на тази древна техника? Очевидно е, че мейнфреймите и суперкомпютрите от 70-те години са можели да правят подобни неща, но те изобщо не са били достъпни за широката публика. Първият в света „персонален компютър“ Altair 8800 излезе през 1975 година. Щастливият собственик на това чудо на технологиите можеше да въвежда програма с помощта на превключватели, наблюдавайки резултатите от нейната работа чрез регистър от светодиоди.

За тази малко странна машина дори са написани няколко игри. Имената им бяха от рода на „Убий кита“ (Kill The Bit) и дават представа за геймплея… Очевидно е, че с помощта на това устройство няма как да бъдат показани каквито и да било снимки.
В края на 70-те години се появиха по-съвършени компютри, работещи под управлението на операционната система CP/M. Това е пълноценна ОС с файлова система, дискови устройства, компилатори, програми и игри. Но уви, всичко се представя в текстов вид, дори и UI. С помощта на ASCII може да бъде показано единствено нещо подобно:
Но това по-скоро е един забавен трик, отколкото истинска снимка. Но всъщност, някои CP/M машини имаха зачатък на графика. Например моделът Visual 1050. Но по това време все още не бяха измислени универсалните графични стандарти.

Един от най-ранните графични формати за CP/M бе RLE, при който се кодираха чернобели изображения с резолюция 256х192 пиксела. Той дава възможност да се види следното:
Форматът е далече от съвършенството, но е много по-добре от чистия ASCII. Големината на това монохромно RLE изображение е около 6 KB и на една CP/M дискета с капацитет 90 KB се побираха до 14 снимки с подобно качество.
С течение на годините компютърният хардуер ставаше все по-добър. През 1981 година излезе графичният формат CGA (Color Graphics Adapter), а компютрите с MS-DOS вече можеха да показват графика с резолюция 320х240 в четири цвята. Ето какво е качеството на показваните изображения:
Големината на изображението с този графичен формат е около 40 KB и на една стандартна дискета с 360 KB дисково пространство се събираха около 8 от тези снимки. След няколко години на пазара се появиха VGA графичните карти, които можеха да показват на екрана 256-битови изображения. Те вече бяха наистина реалистични:
Големината на това изображение е 77 KB, а на една обикновена 1,44-инчова дискета с капацитет 720 KB можеха да се запишат пет или шест подобни снимки. Интересно е, че дисковото пространство нараства, а броят изображения на тях на практика не се променя.
В края на 80-те години SVGA (Super Video Graphics Array) видеокартите започнаха да демонстрират фотореалистични изображения с резолюция до 1280х1024 пиксела с 16 милиона цвята, което е на практика аналогично на качеството от наши дни.
През 80-те и 90-те години се продаваха и други компютри – Apple, Commodore, ZX Spectrum… Те всичките могат да показват различен тип графика, но няма да изброяваме тези типове, понеже ще стане скучно, а и вече стана ясно какви са възможностите на графичните карти от тези времена. Нека да обърнем внимание на софтуера.
Източниците на изображения
С хардуерните възможности на персоналните компютри в началото на 80-те години всичко е достатъчно ясно, но какво да кажем за самите изображения? В началото, нека да си отговорим на въпроса, дали по това време изобщо е имало разголени снимки? Отговорът е „да“. Всъщност, показваното дотук знаменито изображение на Лена, което към днешен ден е едва ли не стандарт за тестване алгоритмите за обработка на изображения, е сканирано от списание Playboy от 1973 година в университета на Южна Калифорния с помощта на скенера и компютъра Hewlett Packard 2100.

Шведският фотомодел Лена Сьоблом, на някои места Лина Сьоблом (Lenna Sjööblom) без съмнение е много привлекателна жена, но днес никой не би си спомнил за тази стара снимка от списание Плейбой, 1973 година. Единствено благодарение на научната публикация снимката на Лена стана едно от най-използваните изображения в компютърната история. Разбира се, тя е била сканирана не за да се гледат разголени снимки на компютрите, а за илюстрация в научен доклад.
Но както и да е, технологията за сканиране на изображения е станала достъпна още през 70-те години, а през 80-те дискетите вече бяха евтино и надеждно хранилище за запис и копиране на файлове. Ето така изглежда една 5-1/4 инчова дискета с капацитет 360 KB в сравнение със съвременна microSDXC карта памет:
По този начин още през 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 KB, като там трябва да се записва не само играта, но и зареждащите файлове на MS-DOS. Програмистите е трябвало да правят чудеса, понеже размерът на всички файлове на тази игра не превишава 140 KB.
Разбира се, записът на тези изображения заема много място и всички започнаха да търсят някакви по-добри методи. Един от първите начини за кодиране на изображението бе 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 форматът не е чак толкова добър за записа на снимки. Така например, същата фотография на Лена при резолюция 320х240 и четири цвята заема 35 KB, а при 256 цвята – цели 100 KB!
През 1987 година се появи форматът GIF (Graphics Interchange Format), който е много по-съвършен от PCX. При него за компресия се използва по-ефективният Lempel-Ziv-Welch (LZW) алгоритъм и при неговото използване същото изображение на Лена с резолюция 320х240 заема само 37 KB, а не 100 KB. А през 1989 година излезе разширената версия на GIF формата, която дава възможност за показването и на анимация.
Интересно е, че анимираните GIF изображения се използват и до днес. Това и досега е най-лесният кросплатформен начин за вграждането на анимирано съдържание в уеб страниците.
И накрая, през 1992 година учените представиха графичния формат JPEG (Joint Photographic Experts Group). При него се използва компресия със загуби, като той е специално създаден за записа и съхранението на снимки. За кодиране на данните се използва DCT алгоритъма. По принцип, самият метод за дискретно косинусово преобразуване бе представен през 1972 година, но чак след двадесет години тази технология намери своето практическо приложение.
И така, през 90-те години продажбата на еротични изображения се превърна в бизнес. От техническа гледна точка в наши дни следните рекламни обяви изглеждат доста забавно:
Към днешен ден колекцията с „над 2500 VGA снимки“ или „Super VGA 1024x768x256 фотографии“ предизвикват само лека усмивка, но тогава това бе по своя си особен начин хайтек. Днес вече всичко е много, много по-различно.