用40年前的电脑打开女神图片,这你敢信?
共 5760字,需浏览 12分钟
·
2022-04-24 13:53
上一篇:2T架构师学习资料干货分享
这位名叫 Lena Forsen 的模特,自从在上世纪 70 年代被南加州大学信号与图像处理研究所的助理教授 Alexander Sawchuk 用作测试图片后,就一发不可收拾,成为图像行业标准,被学者们复制和重新分析了数十亿次。
可以说,她是整个计算机图像处理领域的“女神”。
Medium 上一位博主突然产生了一个想法,在那些几十年前古老的计算机上,能够显示“女神”Lena Forsen 的这张经典照片吗?
最古老的可以显示照片的计算机,又是哪一款呢?
远在图像产生之前
我们现在熟悉的图像格式其实离我们并不远。JPEG 图像格式于 1993 年推出,GIF 于 1987 年发布。
那远在这些图像格式诞生之前,有没有可能显示图像呢?
70 年代的大型机和超级计算机确实能够处理照片图像,但那离普通人太远了。
第一台个人电脑 Altair 8800 于 1975 年发布,用户可以通过开关进入程序,并通过 Led 灯观看结果:
在 70 年代末,搭载 CP/M OS 的计算机出现了,这是一个完全成熟的操作系统,有文件系统、磁盘驱动器、编译器、程序和游戏。但是有一个问题 —— CP/M UI 只是文本。
一些 CP/M OS 机器,比如 Visual 1050 计算机,是有图形功能的,但是没有通用的标准。
1981 年,CGA(彩色图形适配器)被引入,MS-DOS 计算机能够显示 4 种颜色的高达 320x240 分辨率的图形。
这张图片的大小是 77kb,所以 5-6 张图片可以保存在一张 720kb 的 1.44 英寸的磁盘上。
后来,80 年代末推出的 SVGA (高级视频图形阵列) 适配器能够使用 16M 颜色显示高达 1280x1024 分辨率的逼真图像,这实际上与我们今天所用的颜色非常接近了。
其他的计算机模型在 80 年代和 90 年代也可以使用(苹果,Commodore,ZX Spectrum 等等),它们都可以显示不同类型的图形。
先有图像还是先有图像格式?
在最简单的情况下,“格式”是不需要的,单色图像只是一个位序列:
1:03 AM 71 Melissa.txt12:18 AM 5768 Melissa1.pic12:18 AM 5768 Melissa2.pic12:19 AM 5768 Melissa3.pic12:20 AM 5768 Melissa4.pic12:21 AM 5768 Melissa5.pic5:40 AM 35 Opn.txt12:04 AM 5768 Opps.pic12:59 PM 50304 Poker.exe1:06 AM 1288 Screen.pic12:03 AM 5768 Stitle.pic5:09 AM 69 Suzi.txt12:02 AM 5768 Suzi1.pic1:33 AM 5768 Suzi2.pic12:00 AM 5768 Suzi3.pic12:01 AM 5768 Suzi4.pic12:00 AM 5768 Suzi5.pic
这样我们只能得到 320x18 的灰度图像。事实上,我们可以使用 Python 打开 pic-file,看到许多细节缺失:
也许游戏使用了单独的背景图片或者通过编程方式绘制了一些细节 (比如垂直线) ,开发人员肯定使用了一些技巧来有效地在 320x240 的屏幕上显示 320x18 的图片。
他们为什么要花这么多精力呢?
答案很简单ーー当时许多计算机根本没有硬盘驱动器,因此在软盘上写入游戏的能力至关重要。
最早被广泛使用的格式之一是 PCX (PiCture eXchange) ,它于 1985 年推出。这种格式也使用 RLE 编码,正如我们看到的,头部字段存储了大量附加信息:
// Standard PCX header (C/C++)struct PCXHeader {char ID; // ID, always 0x0Achar Version; // The version numberchar Encoding; // Use of encoding (0, 1)char BitPerPixel; // 1, 2, 4 or 8short X1; // The minimum x-coordinate of the image positionshort Y1; // The minimum y coordinate of the image positionshort X2; // The maximum x coordinate of the image positionshort Y2; // The maximum y coordinate of the image positionshort HRes; // The horizontal image resolution in DPIshort VRes; // The vertical image resolution in DPIchar ClrMap[16*3]; // The EGA palette for 16-color imageschar Reserved1;char NumPlanes; // Number of color planes: 1, 3, or 4short BPL; // The number of bytes of one color planeshort Pal_t;char Filler[58];} Header;
顺便说一下,在 90 年代,色情图片的销售变成了一种生意。从技术角度来看,这些广告来自 1994 年的《电脑杂志》 ,很有趣:
总结
让我们回到最初的问题,在将近 40 年前的 80 年代初,有没有可能在 XT 机器上看《花花公子》?
从技术上讲,答案是肯定的。这些机器能够显示图像,并且有软盘驱动器,这使得文件共享变得容易。下面是 1983 年制造的一台真正的康柏便携式计算机的运行过程:
正如我们所看到的,它并没有那么快,图像加载时间大约是 40 秒,但它仍然可以工作。
但实际上,这台电脑是在 1983 年发布的,而 PCX、 GIF 或 JPEG 图像格式甚至还没有推出。
正文结束
1.救救大龄码农!45岁程序员在国务院网站求助总理!央媒网评来了...
5.37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...