話說二戰的時候,美國轟炸機每次執行任務,除了滿載著威力強大的炸彈以外,還常常要裝配一台電腦,飛機飛行方向和投彈的拋物線的計算都離不開這台機器。可是世界上第一台電子電腦在二戰結束後才發明,轟炸機上當時攜帶著的“電腦”其實就是個裝有一大堆齒輪的大箱子,這台笨重的箱子計算能力還遠遠比不上今天的手裡拿著的casio計算機,用起來也就比算盤好一些吧。這些機械電腦設計者最為擔心的問題是裡面的一大堆齒輪零件哪天不高興掉下來一兩個,整台機器或許就玩不轉了,飛機迷失航向,炸彈誤扔到自己的陣地上就要出大麻煩了。在轟炸機飛來飛去的時候,不斷的晃動會不會讓機器失靈成了很多人心頭的憂慮。可這傢伙真上了飛機,人們卻意外發現它們不僅沒有出問題,計算的結果反而比在地面用的時候更準確,令人疑惑不解,難道這些機器對於過山車的感覺情有獨鐘?人們知道了機器的這個“怪毛病”之後,乾脆在地面的機器裡安裝上了震動器,讓它們一邊輕輕晃,一邊工作,體驗一下地面飛行的感覺,它們不僅不會進入夢鄉,還會工作得更好。
這些電腦究竟為什麼會喜歡坐灰機而不暈呢?經過研究發現,在精度上,這些機械玩意肯定沒法跟現在的電腦比,計算不可能算到小數點之後很多位,常常要四捨五入。舉個例子,假設電腦在完成一個任務的時候,一個參數先後被乘了五次,這個參數的精確值是5.4,但是電腦只能用整數,5.4隻好每次都被四捨五入成了5,正確的結果應該是5.4*5.4*5.4*5.4*5.4=4591.65,可是計算的結果只有5*5*5*5*5=3125,兩者有不小的誤差,因為每次四捨五入之後的值都比正確的值“矮了一小截”,幾次誤差疊加在一起就變得越來越大。機器在晃動的時候,會再額外產生一些的小誤差,但並不會雪上加霜,5.4可能被晃成5.5,5.6,四捨五入就是6了,當然也可能被晃成5.3,5.2。雖然晃動的誤差完全是隨機的,但是5.4還是更接近於5,所以最後變成5的可能性更大,假設五次裡5.4三次變成成了5,兩次被化成了6,這樣計算的結果是5*5*5*6*6=4500,比起3125精確了好多。當然“晃動”一定要輕微,不能太厲害,如果5.4最後變成了10就完全不靠譜了。
在這些機器裡,通過加一些隨機晃動的小誤差,化解掉電腦四捨五入時候大的誤差,這一招稱為dithering(抖動)技術,是一個“以毒攻毒”的絕妙主意。
雖然機械電腦在幾年後就被淘汰了,可是dithering技術卻一直被沿用著,近日各種數位產品上顯示的圖片,視頻,聲音也時不時需要“抖動”一下。
很多人小時候一定玩過這樣的遊戲,用硬紙板製作一個小圓盤,小圓盤上交替塗上紅色和黃色,然後把小圓盤中間穿上一根小支柱,讓小圓盤像陀螺一樣快速旋轉,你會看到什嗎?沒錯,小圓盤既不是紅色,也不會黃色,而是紅黃兩色快速“輪班”在你的眼前閃過,被“調成”了中間的橙色。
如果一段視頻播放的時候可以顯示的顏色有限,比如只能顯示紅色和黃色,不能顯示橙色(當然今天一定不會有那麼落後的裝置了,不過幾百種、幾千種顏色還是可能有不夠用的時候),視頻畫面裡橙色部分只能像5.4被四捨五入成5一樣,看更接近哪一個,或者被算成紅色,或者被算成黃色。視頻每秒鐘要快速播放24張畫面,眼睛反應不過來,覺著看到的是連續的映像。我們也可以加一些”抖動“,讓畫面的顏色紅色和黃色交替出現,該顯示黃色時候也閃兩下紅色,該顯示紅色的時候也閃兩下黃色,每次隨機的發生。如果我們想展示“深橙色”,就讓畫面顯示紅色的機率大一點,每秒平均多顯示一些次,如果想展示淺橙色,就讓畫面顯示黃色的機率大一點,以這樣的方式“調色”。像小圓盤一樣,這樣快速變換畫面的dithering就可以欺騙住你的眼睛,“無中生有”創造出畫面中本來沒有的深橙色、橙色、淺橙色各種額外色彩。
一段視頻裡可以調出新的顏色,那麼一張靜止的圖片又怎麼辦呢?dithering同樣可以發揮作用。首先拿黑白圖片來說,這是一張正常的黑白照片,裡面有黑色,有白色,也有各種深淺不同的灰色元素。
現在如果只給你兩種畫筆,純黑色和純白色,沒有灰色的畫筆。你還能畫出這幅圖的效果嗎?如果只是把圖片裡比較淺的灰色將就著用白色表示,把圖片裡比較深的灰色“四捨五入”成黑色,圖片就會不幸變成下面的樣子:
效果慘不忍睹。
再看一下下面這張圖片
貌似ok呀!裡面顏色深淺可變,咋看起來不只有黑白兩種顏色。可是仔細一看,裡面並沒有灰色的元素,和上一幅圖完全一樣,只有黑點和白點。
相比於第二幅圖,我們在第三幅圖裡進行了dithering,在黑色的地區加了一些白點,在白色的地區加了一些黑點,黑點比例比較多的地區可以表示深灰色,白點比較多的地區可以表示淺灰色,我們神奇的變了個魔術,只用黑點白點就可以畫出深淺變化的圖片。
下面還有一張品質更好的dithering圖片,中間的那一個Lena小姐圖裡其實只有白色和黑色,沒有任何中間的顏色,不論你相不相信。
看完了黑白、灰階的照片,我們再來看一下彩色的照片
這裡有六張圖片,最左上方的那張圖片是神馬顏色的?紅色和藍色。最右下角的那張圖片是神馬顏色的?紫色。錯了!最右下角的那一張圖片也只有紅色和藍色,這六張圖片裡紅色小方格和藍色小方格依次變小,到最後很小的時候,紅色和藍色都會消失,相當於我們把紅色和藍色小點”勾兌“成了紫色,在動態視頻裡,通過不同時間點顯示不同顏色,dithering可以在你的眼前變出不存在的顏色;在靜態圖片裡,dithering則是在不同的位置灑下密密麻麻不同顏色的小點來讓你產生顏色錯覺。
在下面三張圖裡,第一張圖是正常的圖片,在第二張圖裡,可以用的顏色數量大大減少,這隻貓成了“大花臉”,圖片變得模糊。在第三張圖裡我們用了dithering技術,雖然顏色的種類和第二張一樣多,但是看起來卻舒服了好多。
dithering除了可以在映像中欺騙你的眼睛以外,在聲音中也可以欺騙你的耳朵。如果一段音樂每個時間點的幅度都被四捨五入處理,原來的音樂裡就會摻雜進其他頻率的雜音,影響效果。如果我們讓各個時間點的幅度加上一點小的誤差,這種四捨五入產生的雜音就會被削弱和平均化,表面上降低聲音品質的方法反而讓聲音效果更好。
-----------------打造高品質的文章 更多關注 把酒泯恩仇---------------
為了打造高品質的文章,請 推薦 一下吧。。。。謝謝了,請關注我後續的文章,會更精彩哦
請關注sina微博:http://weibo.com/baiyang26
把酒泯恩仇官方部落格:http://www.ibaiyang.org 【推薦用google reader訂閱】
把酒泯恩仇官方豆瓣:http://www.douban.com/people/baiyang26/
如果您想轉載本部落格,請註明出處
如果您對本文有意見或者建議,歡迎留言