- 普林斯頓計算機公開課(原書第2版)
- (美)布萊恩·W.柯尼漢
- 3673字
- 2023-06-28 16:46:17
2.2 模數轉換
如何將模擬信息轉換成數字形式?我們看一些基本的例子,從圖片和音樂開始,其中包含最重要的思想。
2.2.1 圖像的數字化
將圖像轉換為數字形式可能是將模數過程可視化的最簡單方法。假設我們拍了一張家貓的照片,如圖2.1所示。

圖2.1 2020年的一只家貓
模擬相機通過將化學涂層塑料薄膜的感光區域暴露在被拍攝物體發出的光線下來創建圖像。不同的區域接收不同數量不同顏色的光,這會影響膠片中的染料。膠片通過一系列復雜的化學過程顯影并印在紙上,不同數量的有色染料顯示出不同的顏色。
在數碼相機中,鏡頭將圖像聚焦到紅色、綠色和藍色濾光片后面由微小光敏探測器組成的矩形陣列上。每個探測器存儲的電荷量與照射到它的光的量成正比。這些電荷被轉換成數值,結果數字序列可以表示光的強度,從而構成了圖像的數字表示。如果探測器數量更多,電荷測量將更精確,那么數字化圖像將更準確地捕捉原始圖像。
傳感器陣列的每個元素都是一個三合一檢測器,用于測量紅、綠和藍光的量;對于圖片元素,每組稱為一個像素。如果是4000×3000像素的話,就是1200萬像素,這對于現在的數碼相機來說是非常小的。一個像素的顏色通常由三個值來表示,這三個值分別記錄了它所包含的紅、綠和藍的強度,所以一個1200萬像素的圖像總共有3600萬個光強度值。屏幕上顯示的圖像是由微小的紅、綠、藍三聯燈組成的陣列,其亮度級別由相應的像素決定。如果你用放大鏡看手機、電腦或電視的屏幕,可以看到單個的彩色斑點,有點像圖2.2。如果離得夠近,就能在體育場屏幕和電子廣告牌上看到同樣的畫面。

圖2.2 RGB像素
2.2.2 聲音的數字化
模數轉換的第二個例子是聲音,尤其是音樂。數字音樂是很好的例子,因為這是數字信息屬性開始產生重大社會、經濟和法律影響的首個領域之一。與黑膠唱片或磁帶不同,數字音樂可以在任何家用計算機上免費地進行任意次數的復制,并且可以通過互聯網將完美的副本無誤地傳送到世界任何地方,這同樣是免費的。唱片業將其視為嚴重的威脅,并開始采取法律和政治行動,試圖壓制拷貝行為。這個戰爭還沒有結束,法庭和政治舞臺上的小沖突仍在繼續,但Spotify等流媒體音樂服務的出現緩解了這個問題。我們將在第9章繼續討論這個問題。
那么聲音是什么呢?聲源通過振動或其他快速運動產生氣壓波動,我們的耳朵將這個氣壓變化轉化為一種神經活動,從而大腦解釋為聲音。在19世紀70年代,托馬斯·愛迪生(Thomas Edison)制造了一種他稱之為留聲機的設備,它將波動轉換成蠟制圓柱體中的凹槽圖案,這些圖案可以在以后用來重現氣壓波動。將聲音轉換為凹槽圖案就是錄音;從圖案轉換為氣壓波動就是回放。愛迪生的發明很快得到改進,到20世紀40年代已經發展成LP唱片(見圖2.3)。這種唱片至今仍在使用,不過使用者主要是一些復古音樂愛好者。
LP唱片是帶有長螺旋槽的黑膠唱片,它可以編碼隨時間變化的聲壓。麥克風用于測量生成聲音時聲壓的變化,這些測量值用于制造螺旋槽上的圖案。播放LP唱片時,一根細針沿著凹槽的圖案移動,它的運動轉化為波動的電流,放大后用于驅動揚聲器或耳機,而這些設備通過振動表面來產生聲音。

圖2.3 LP唱片(又稱密紋唱片)
通過繪制氣壓隨時間的變化,可以很容易地將聲音可視化,如圖2.4所示。我們可以用許多物理方法來表示壓力:電子電路中的電壓或電流,光的亮度,或者像愛迪生的原始留聲機那樣的純機械系統。聲壓波的高度為聲強或響度,水平維數為時間;每秒的波的數量就是音調或頻率。

圖2.4 聲音的波形
假設我們按一定的間隔測量麥克風處的氣壓,即曲線的高度,結果將如圖2.5中的豎線所示。

圖2.5 對聲音的波形取樣
這樣的測量結果提供了一個數值序列來逼近該曲線。如果我們測量得越頻繁或者越精確,則得到的逼近曲線就越準確。由此產生的數字序列是波形的數字表示,它們可以被存儲、復制、操縱和傳輸到其他地方。我們還可以用一種設備進行回放,這種設備可以將數值轉換成匹配的電壓或電流模式,以驅動揚聲器或耳機,從而將其還原為聲音。從波形到數字的轉換是模數轉換,轉換設備稱為A/D轉換器;另一個方向當然是數模轉換,或稱為D/A。轉換從來都不是完美的,每個方向都會丟失一些東西,對于大多數人來說,這種損失是難以察覺的,而發燒友則聲稱數字聲音的質量不如LP唱片。
音頻光盤或CD出現在1982年左右,它是第一個消費數字聲音的例子。與LP唱片的模擬槽不同,CD在磁盤一側的長螺旋軌道上記錄數值。沿著軌道的每一點的表面要么是光滑的,要么有一個小凹點。這些凹點或光滑點被用來對波的數值進行編碼;每個點是一個比特,而一個比特序列表示二進制編碼中的數值,這些我們將在下一節中討論。當圓盤旋轉時,一束激光照射在軌道上,光電傳感器檢測反射的光的變化。如果光線不夠亮,表示這里是一個凹點;如果有很多反射光,就不是凹點。CD的標準編碼每秒進行44100個采樣;每個樣本是兩個幅度值(對應于立體聲的左聲道和右聲道),其測量精度為1/65536(即1/216)。凹點非常小,只有用顯微鏡才能看到。DVD也是類似的,但是所具有的更小的凹點和更短波長的激光允許它們能存儲近5GB數據,相比之下,一張CD存儲的數據約700MB。
音頻CD幾乎把LP唱片趕出了市場,因為它在很多方面都要好得多。它不會磨損,因為它沒有和激光進行物理接觸,也不會受到灰塵或劃痕的干擾。它不脆弱,而且絕對緊湊。LP唱片偶爾會稍微復興,而流行音樂的CD則嚴重衰退,因為從互聯網上下載音樂更容易,也更便宜。CD的第二大用途是存儲和分發軟件和數據,但這一功能已被DVD取代,而DVD在很大程度上又被互聯網存儲和下載所取代。對許多讀者來說,音頻CD似乎和黑膠唱片一樣古老。不過,我很高興我的音樂收藏全部都放在了CD上(盡管它們也以MP3格式存儲在可移動硬盤上)。我能夠完全擁有它們,而收藏在云中的音樂則不是這樣。制造出來的CD的壽命會比我的壽命長,但復制的CD可能不會,因為它們依賴于一種光敏染料的化學變化,這種染料的特性可能會隨著時間的推移而發生變化。
因為聲音和圖像包含了許多人類無法感知的細節,所以它們可以被壓縮。對于音樂來說,這是通過MP3和AAC高級音頻編碼(Advanced Audio Coding, AAC)等壓縮技術實現的,這些技術可以將音樂的大小減小為原來的1/10,幾乎不會出現可察覺的品質降低。對于圖像而言,最常見的壓縮技術被稱為JPEG,這是以聯合圖像專家組(Joint Photographic Experts Group)的名字命名的,該組織定義了JPEG,它能將圖像縮小為原來的1/10或更小。壓縮就是可以對數字信息方便進行處理的一個例子,但對模擬信息的處理如果不是不可能的話,也是極其困難的。我們將在第8章中進一步討論壓縮。
2.2.3 電影的數字化
電影又是怎樣的呢?19世紀70年代,英國攝影師埃德沃德·邁布里奇(Eadweard Muybridge)展示了如何通過快速連續地展示一系列靜止圖像來創造動畫的視覺感受。如今,電影是以每秒24幀的速度顯示圖像,而電視則以每秒25~30幀的速度顯示圖像,這已經快到足以讓人眼把這個序列看作連續的運動。電子游戲通常是每秒60幀。老電影每秒只有十幾幀,所以有明顯的閃爍(flicker)。這個術語是從表示電影的單詞“flicks”中演變而來的,其今天在網飛公司英文名稱“Netflix”中仍然存在。電影的數字表示法結合并同步了聲音和圖像組件。壓縮可用于減少所需的空間量,如在MPEG(移動圖像專家組)等標準電影表示方法中所做的一樣。實際上,視頻比音頻的呈現更復雜,部分原因是它本質上更困難,但也因為它大多是基于廣播電視的標準,而在廣播電視的大部分發展歷史中,信號都是以模擬形式進行處理的。模擬電視在世界上的大部分地區正在逐步被淘汰。在美國,電視廣播在2009年轉向了數字信號,其他國家正處于這一進程的不同階段。
電影和電視節目是畫面和聲音的結合,其商業節目的制作成本比音樂節目高得多。然而,制作完美的數字拷貝并免費發送到世界各地也很容易。因此,其版權的風險比音樂要高得多,娛樂行業仍在繼續與盜版行為做斗爭。
2.2.4 文本的數字化
有些類型的信息很容易以數字形式表示,因為除了對表示的內容達成一致之外,不需要進行任何轉換。想想普通的文本,比如書中的字母、數字和標點符號。我們可以給每個不同的字母分配一個唯一的數字——A是1,B是2,以此類推—這將是一個很好的數字表示方式。事實上,這正是實際所采用的方式。在實際的標準表示中,A~Z是65~90,a~z是97~122,數字0~9是48~57,而其他字符,如標點符號則采用其他值表示。這種表示稱為ASCII,即美國信息交換標準代碼(American Standard Code for Information Interchange),是于1963年發布的標準。
圖2.6顯示了部分ASCII,我省略了前面四行,其中包含制表符、退格符和其他非打印字符。

圖2.6 ASCII字符及其數值
不同的地理或語言區域有不同的字符集標準,但世界或多或少都集中在一個稱為Unicode的標準上,Unicode為每種語言中的每個字符指定了一個唯一的數值。這是一個很大的集合,因為人類在他們創造的書寫系統方面一直具有無窮無盡的創造力,但很少系統化。Unicode有超過140000個字符,而且這個數字還在穩步上升??梢韵胂?,像中文這樣的亞洲字符集占Unicode的很大一部分,但絕不是全部。Unicode網站unicode.org有所有字符的圖表,它很迷人,值得去看看。
最低要求是:數字表示可以表示所有這些類型的信息,甚至任何可以轉換為數值的信息。因為它只是數字,所以它可以被數字計算機處理,正如我們將在第9章中看到的,它可以通過通用數字網絡——Internet,復制到任何其他計算機上。