用40年前的電腦打開女神圖片,這你敢信?

這位名叫 Lena Forsen 的模特,自從在上世紀 70 年代被南加州大學(xué)信號與圖像處理研究所的助理教授 Alexander Sawchuk 用作測試圖片后,就一發(fā)不可收拾,成為圖像行業(yè)標準,被學(xué)者們復(fù)制和重新分析了數(shù)十億次。
可以說,她是整個計算機圖像處理領(lǐng)域的“女神”。
Medium 上一位博主突然產(chǎn)生了一個想法,在那些幾十年前古老的計算機上,能夠顯示“女神”Lena Forsen 的這張經(jīng)典照片嗎?
最古老的可以顯示照片的計算機,又是哪一款呢?
遠在圖像產(chǎn)生之前
我們現(xiàn)在熟悉的圖像格式其實離我們并不遠。JPEG 圖像格式于 1993 年推出,GIF 于 1987 年發(fā)布。
那遠在這些圖像格式誕生之前,有沒有可能顯示圖像呢?
70 年代的大型機和超級計算機確實能夠處理照片圖像,但那離普通人太遠了。
第一臺個人電腦 Altair 8800 于 1975 年發(fā)布,用戶可以通過開關(guān)進入程序,并通過 Led 燈觀看結(jié)果:


一些 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,看到許多細節(jié)缺失:

也許游戲使用了單獨的背景圖片或者通過編程方式繪制了一些細節(jié) (比如垂直線) ,開發(fā)人員肯定使用了一些技巧來有效地在 320x240 的屏幕上顯示 320x18 的圖片。
他們?yōu)槭裁匆ㄟ@么多精力呢?
答案很簡單ーー當時許多計算機根本沒有硬盤驅(qū)動器,因此在軟盤上寫入游戲的能力至關(guān)重要。
最早被廣泛使用的格式之一是 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 年代,色情圖片的銷售變成了一種生意。從技術(shù)角度來看,這些廣告來自 1994 年的《電腦雜志》 ,很有趣:

總結(jié)
讓我們回到最初的問題,在將近 40 年前的 80 年代初,有沒有可能在 XT 機器上看《花花公子》?
從技術(shù)上講,答案是肯定的。這些機器能夠顯示圖像,并且有軟盤驅(qū)動器,這使得文件共享變得容易。下面是 1983 年制造的一臺真正的康柏便攜式計算機的運行過程:

正如我們所看到的,它并沒有那么快,圖像加載時間大約是 40 秒,但它仍然可以工作。
但實際上,這臺電腦是在 1983 年發(fā)布的,而 PCX、 GIF 或 JPEG 圖像格式甚至還沒有推出。
正文結(jié)束
1.救救大齡碼農(nóng)!45歲程序員在國務(wù)院網(wǎng)站求助總理!央媒網(wǎng)評來了...
3.從零開始搭建創(chuàng)業(yè)公司后臺技術(shù)棧
5.37歲程序員被裁,120天沒找到工作,無奈去小公司,結(jié)果懵了...
6.IntelliJ IDEA 2019.3 首個最新訪問版本發(fā)布,新特性搶先看


