如果問起身高的單位是什么,你自然會想到厘米或米;如果問起存儲在計(jì)算機(jī)中的信息的單位是什么,你能脫口而出還是有些猶豫?你會想到什么呢?
在當(dāng)今這個(gè)信息時(shí)代,我們使用手機(jī)、計(jì)算機(jī)等設(shè)備來記錄和存儲生活中的點(diǎn)點(diǎn)滴滴,于是有了文字、圖片、聲音、視頻等各種形式的信息。這些信息在手機(jī)或計(jì)算機(jī)中是如何存儲的呢?筆者將通過解密一封特殊的信來回答這一問題。
這封“見字如面”的信比較長,內(nèi)容也比較特殊,只有0和1。它會包含哪些信息呢?這就需要我們一起來解密這些0和1。
在信的第一行,有5段01串(僅由數(shù)字0和1組成的字符串),每段有8位0或1。計(jì)算機(jī)中的存儲單位是字節(jié),一個(gè)字節(jié)等于8個(gè)二進(jìn)制位。什么可以用一個(gè)字節(jié)來存儲呢?ASCII碼。對照圖3這張表,信的第一行那5段01串,就對應(yīng)著字符“Dear:”。
標(biāo)準(zhǔn)ASCII碼表中定義了大小寫英文字母、數(shù)字等字符在計(jì)算機(jī)中的編碼,是用一個(gè)字節(jié)來存儲的。表中的每個(gè)字符,除了二進(jìn)制數(shù),還有十進(jìn)制數(shù)、十六進(jìn)制數(shù)。這3種進(jìn)制數(shù)其實(shí)表示的是同一個(gè)數(shù)值,十進(jìn)制、十六進(jìn)制可以方便我們閱讀和理解。如小寫字母a,用十進(jìn)制表示是97,用十六進(jìn)制表示是61,用二進(jìn)制表示則是01100001。這3個(gè)進(jìn)制數(shù),可以使用計(jì)算機(jī)中自帶的計(jì)算器(圖4)來進(jìn)行轉(zhuǎn)換。
信的第二行,每段有16位0或1,正好對應(yīng)兩個(gè)字節(jié)的編碼存儲,會是漢字嗎?漢字會有類似的ASCII碼表嗎?
計(jì)算機(jī)“眼中”的漢字是0和1,我們眼中的漢字應(yīng)該是圖5這樣的。因?yàn)闈h字?jǐn)?shù)量眾多,所以編碼表被分為多個(gè)區(qū)域,要找一個(gè)漢字,得先找到區(qū)號,再看它在這個(gè)區(qū)中的哪個(gè)位置。例如“寶”字,它在編碼表中的區(qū)域編號是B1(區(qū)域編號位于表的左上角),在B1區(qū)的A行5列,所以“寶”字的編碼就是B1A5。這是十六進(jìn)制數(shù),存儲到計(jì)算機(jī)中,還要轉(zhuǎn)換成對應(yīng)的二進(jìn)制數(shù)。
對于信的第二行5段16位01串,你可以先用計(jì)算器轉(zhuǎn)換成十六進(jìn)制數(shù),然后對照圖5,找出對應(yīng)的5個(gè)漢字——“我是冰墩墩”。圖5只是漢字編碼表中的一小部分,如果某個(gè)字符在編碼表中沒有,則會出現(xiàn)亂碼。因此,就有了涵蓋世界上主要文字字符的全球共享編碼字符集Unicode。
圖6是計(jì)算機(jī)“眼中”的冰墩墩,將0替換成白色、1替換成黑色,就變成我們眼中的冰墩墩(圖7),這里的每個(gè)黑點(diǎn)或白點(diǎn)就是一個(gè)像素,對應(yīng)著0或1。圖7這張冰墩墩的寬度有100個(gè)像素點(diǎn),高度有50個(gè)像素點(diǎn),總共用了5 000個(gè)像素點(diǎn)。和圖8中36萬個(gè)像素點(diǎn)的冰墩墩對比一下可以發(fā)現(xiàn),要讓圖像更清晰,同樣尺寸下,像素點(diǎn)越多越好。現(xiàn)在手機(jī)廠商宣傳手機(jī)的拍照效果時(shí),一個(gè)重要的參數(shù)就是攝像頭的像素。
黑白冰墩墩圖中,每個(gè)像素點(diǎn)只用一位二進(jìn)制位記錄顏色,所以只有兩種顏色可選,如果每個(gè)像素點(diǎn)多用些二進(jìn)制位記錄,可選的顏色就多些。例如使用8位二進(jìn)制位進(jìn)行記錄,就有256種顏色(28=256)。除了黑白色,還有黑白之間的過渡色——灰色,圖9中的冰墩墩就是8位灰度圖。我們常見的是24位的真彩色,圖10就是24位真彩色的冰墩墩。
圖像中的每個(gè)像素點(diǎn)記錄顏色所用二進(jìn)制的位數(shù),稱為“圖像量化位數(shù)”,又稱“圖像深度”,圖10的量化位數(shù)就是24位。
一般情況下,圖像的大小跟圖像的分辨率以及圖像量化位數(shù)有關(guān),計(jì)算公式:位圖圖像文件大小=圖像分辨率×圖像量化位數(shù)÷8(單位為字節(jié))。
根據(jù)公式可以計(jì)算出,一個(gè)5 000萬像素、24位真彩色的圖片大小,大約為143MB(兆字節(jié))。因此,也不能片面追求高像素,它會占用很大的存儲空間。實(shí)際生活中,我們拍出的5 000萬像素照片只有幾十兆字節(jié),那是對照片進(jìn)行了壓縮。常見的圖片格式j(luò)pg,其實(shí)就是圖像壓縮技術(shù)標(biāo)準(zhǔn)的名稱。
那封特殊的信中有01編碼的文字、圖像,會有聲音的編碼嗎?
我們知道,聲音是一種波。冰墩墩圖像后面還有那么多的01數(shù)字串,選擇其中的一小部分,先轉(zhuǎn)換成熟悉的十進(jìn)制數(shù),在坐標(biāo)軸上標(biāo)記下來,連成線,曲線中添加的點(diǎn)越多,曲線就更細(xì)膩,更接近聲音的波形圖,如圖11所示。將全部的點(diǎn)添加好后,利用聲音處理軟件展示類似的波形,就可播放出聲音了,信中的聲音內(nèi)容是“交個(gè)朋友吧”。
對照剛才還原聲音波形的過程,反過來想,如何把聲音存儲到計(jì)算機(jī)中呢?
首先是采樣,把聲波按適當(dāng)?shù)臅r(shí)間間隔,得到各個(gè)時(shí)刻的樣本。從圖上可以看出,一定時(shí)間內(nèi),采的點(diǎn)越多,則描出的曲線和波形圖越接近。計(jì)算機(jī)使用采樣頻率來表示,常見的CD音質(zhì)的采樣頻率是44.1kHz(1秒采集44 100個(gè)樣本點(diǎn))。樣本點(diǎn)有了,接著就用數(shù)值來具體衡量這些點(diǎn),這個(gè)過程稱為“量化”。量化位數(shù)的多少,同樣決定了聲音的質(zhì)量(坐標(biāo)軸縱軸的動(dòng)態(tài)范圍)。如果就用1位二進(jìn)制來進(jìn)行量化,量化等級只有兩個(gè)。量化等級越多,表示范圍就越廣,就越能還原真實(shí)聲音的波形。最后,把量化后的值轉(zhuǎn)換成對應(yīng)的二進(jìn)制數(shù),這就是編碼。
總的來說,一個(gè)聲音存儲到計(jì)算機(jī)中,需要3個(gè)步驟:采樣、量化和編碼。采樣頻率越大、量化位數(shù)越多,越能接近真實(shí)的聲音,但是也帶來一個(gè)問題,就是文件也會變得越大,計(jì)算公式:聲音的大小=采樣頻率×量化位數(shù)×聲道數(shù)×?xí)r間÷8(單位為字節(jié))。真正存儲到計(jì)算機(jī)中時(shí),還需要對聲音進(jìn)行壓縮,常見的音頻文件MP3就是一種音頻壓縮技術(shù)。
在這封信里,還可以添加視頻的編碼,可以結(jié)合圖像和聲音的編碼來操作。當(dāng)然,實(shí)際的編碼要復(fù)雜得多。
(特約編輯:孫曉明)