<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 5760字,需瀏覽 12分鐘

           ·

          2022-04-24 13:53

          上一篇:2T架構(gòu)師學(xué)習(xí)資料干貨分享


          大數(shù)據(jù)文摘出品
          搞過圖像處理的同學(xué)應(yīng)該都認識這位吧?

          這位名叫 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é)果:

          顯然這玩意是不能顯示圖像的。

          在 70 年代末,搭載 CP/M OS 的計算機出現(xiàn)了,這是一個完全成熟的操作系統(tǒng),有文件系統(tǒng)、磁盤驅(qū)動器、編譯器、程序和游戲。但是有一個問題 —— CP/M UI 只是文本。

          從理論上講,我們可以用 ASCII 圖形來顯示下面的內(nèi)容:
          但是這顯然是一種作弊的手法,不能算數(shù)。
          再往后來呢?

          一些 CP/M OS 機器,比如 Visual 1050 計算機,是有圖形功能的,但是沒有通用的標準。

          最早可用于 CP/M 的格式之一是 RLE,它對黑白圖像進行編碼,分辨率為 256×192。
          我們終于能看到“女神”了!
          雖然實際上圖片可能看起來像這樣:
          正如我們所看到的,它遠非完美,但仍然比純 ASCII 好得多。這種格式的單色圖像大小約為 6 KB,因此在 CP/M 90 KB 軟盤上,最多可以保存 14 張這種質(zhì)量的照片。

          后來計算機硬件變得更加強大。

          1981 年,CGA(彩色圖形適配器)被引入,MS-DOS 計算機能夠顯示 4 種顏色的高達 320x240 分辨率的圖形。

          這種品質(zhì)的圖片可能看起來像這樣:
          這種格式的圖像大小約為 40 KB,因此在一張 360 KB 的軟盤上可以放置大約 8 張圖像。幾年后,1987 年推出的 VGA 適配器能夠顯示 256 張彩色圖像,這些圖像就更真實了。

          這張圖片的大小是 77kb,所以 5-6 張圖片可以保存在一張 720kb 的 1.44 英寸的磁盤上。

          后來,80 年代末推出的 SVGA (高級視頻圖形陣列) 適配器能夠使用 16M 顏色顯示高達 1280x1024 分辨率的逼真圖像,這實際上與我們今天所用的顏色非常接近了。

          其他的計算機模型在 80 年代和 90 年代也可以使用(蘋果,Commodore,ZX Spectrum 等等),它們都可以顯示不同類型的圖形。

          先有圖像還是先有圖像格式?

          先有雞還是先有蛋?先有圖像還是圖像格式?
          肯定是圖像。

          在最簡單的情況下,“格式”是不需要的,單色圖像只是一個位序列:

          因此,如果我們知道圖像的寬度和高度,并且計算機具有圖形功能,那么每個開發(fā)人員都可以制作一個程序,從二進制文件中顯示圖像“原樣”。
          順便說一下,在談?wù)摗白远x”圖像格式時,提到 1985 年發(fā)布的游戲“脫衣?lián)淇恕?Strip Poker) 也很有意思:
          我們可以看到,在第一個屏幕,玩家可以選擇兩個人物之一,“蘇姿”或“梅麗莎”,第二個屏幕是游戲本身。另外,搜索公眾號互聯(lián)網(wǎng)架構(gòu)師后臺回復(fù)“2T”,獲取一份驚喜禮包。如果我們打開游戲文件夾,很容易看到這兩個人物的數(shù)據(jù)文件只是保存“原樣”,根本沒有壓縮,所有文件大小相同:
          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
          游戲開發(fā)者盡最大努力縮小尺寸:每個文件的大小只有 5768 字節(jié)!

          這樣我們只能得到 320x18 的灰度圖像。事實上,我們可以使用 Python 打開 pic-file,看到許多細節(jié)缺失:

          也許游戲使用了單獨的背景圖片或者通過編程方式繪制了一些細節(jié) (比如垂直線) ,開發(fā)人員肯定使用了一些技巧來有效地在 320x240 的屏幕上顯示 320x18 的圖片。

          他們?yōu)槭裁匆ㄟ@么多精力呢?

          答案很簡單ーー當時許多計算機根本沒有硬盤驅(qū)動器,因此在軟盤上寫入游戲的能力至關(guān)重要。

          正如我們已經(jīng)知道的那樣,第一張軟盤的大小只有 360 KB—— 這不僅對于游戲而言已經(jīng)足夠了,對于 MS-DOS 引導(dǎo)文件也是如此。開發(fā)者實際上做到了,游戲的大小只有 140 KB。
          當然,“按原樣”保存圖像可能會占用空間,開發(fā)人員試圖找到更好的方法來保存數(shù)據(jù)。
          最早的圖像編碼方法之一是 RLE (游程編碼)。在這種格式下,每個數(shù)據(jù)塊都存儲在‘count,value’對中,這樣可以更有效地保存圖像。
          作為一個簡化的例子,黑白點序列“ bwwbwwwwww”可以保存為“1B3W1B4W”。正如我們所看到的,它更加緊湊,可以用于圖形或表格,但是對于真實感圖像,“壓縮”的圖像甚至可以比原始圖像更大。

          最早被廣泛使用的格式之一是 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;
          PCX 格式實際上不太適合保存照片圖像,例如,同一幅 320x240 分辨率的“ Lenna”圖像的 16 色格式大小為 35 KB,256 色格式大小為 100 KB。
          GIF GIF 于 1987 年發(fā)布,與 PCX 相比,它要先進得多。另外,搜索公眾號互聯(lián)網(wǎng)架構(gòu)師后臺回復(fù)“2T”,獲取一份驚喜禮包。
          GIF 使用的是 Lempel-Ziv-Welch (LZW) 算法,這種算法效率更高ーー同樣的 320x240 圖像以 GIF 格式保存,只有 37 KB 大小,而 PCX 是 100 KB 大小。
          1989 年,GIF 的擴展版本發(fā)布了,它也可以顯示動畫。令人驚訝的是,即使在今天,動畫 GIF 仍然在使用,甚至在本文中也可以看到這個例子ーー它仍然是最簡單的、跨平臺的方法,可以將動畫內(nèi)容嵌入到頁面中。
          最后,于 1992 年推出了聯(lián)合攝影專家組制作的 JPEG 格式。它使用的是有損數(shù)據(jù)壓縮圖片,是專門為保存照片而設(shè)計的。
          該算法使用 DCT (離散余弦變換) 來保存數(shù)據(jù),這個方法本身是在 1972 年提出的,但是正如我們所看到的,僅僅 20 年之后,公眾對這項技術(shù)的真正需求出現(xiàn)了。

          順便說一下,在 90 年代,色情圖片的銷售變成了一種生意。從技術(shù)角度來看,這些廣告來自 1994 年的《電腦雜志》 ,很有趣:

          總結(jié)

          讓我們回到最初的問題,在將近 40 年前的 80 年代初,有沒有可能在 XT 機器上看《花花公子》?

          從技術(shù)上講,答案是肯定的。這些機器能夠顯示圖像,并且有軟盤驅(qū)動器,這使得文件共享變得容易。下面是 1983 年制造的一臺真正的康柏便攜式計算機的運行過程:

           正如我們所看到的,它并沒有那么快,圖像加載時間大約是 40 秒,但它仍然可以工作。

          但實際上,這臺電腦是在 1983 年發(fā)布的,而 PCX、 GIF 或 JPEG 圖像格式甚至還沒有推出。



          感謝您的閱讀,也歡迎您發(fā)表關(guān)于這篇文章的任何建議,關(guān)注我,技術(shù)不迷茫!小編到你上高速。 
              · END ·
          最后,關(guān)注公眾號互聯(lián)網(wǎng)架構(gòu)師,在后臺回復(fù):2T,可以獲取我整理的 Java 系列面試題和答案,非常齊全


          正文結(jié)束


          推薦閱讀 ↓↓↓

          1.救救大齡碼農(nóng)!45歲程序員在國務(wù)院網(wǎng)站求助總理!央媒網(wǎng)評來了...

          2.如何才能成為優(yōu)秀的架構(gòu)師?

          3.從零開始搭建創(chuàng)業(yè)公司后臺技術(shù)棧

          4.程序員一般可以從什么平臺接私活?

          5.37歲程序員被裁,120天沒找到工作,無奈去小公司,結(jié)果懵了...

          6.IntelliJ IDEA 2019.3 首個最新訪問版本發(fā)布,新特性搶先看

          7.這封“領(lǐng)導(dǎo)痛批95后下屬”的郵件,句句扎心!

          8.15張圖看懂瞎忙和高效的區(qū)別!

          瀏覽 67
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲成人无码在线 | 激情乱伦电影 | 91超碰青娱乐 | 中文字幕第一页在线 | 亚洲另类视频 |