相機工作原理

輕輕一按,你的相機就把光子轉換為了比特。于是一張相片就保存到了你的 iPhone 里。

讓我們假設一下你身處室外,環顧四周。三億里之外,太陽無時無刻不在發射光子。它們需要花上 8 分鐘之久才能到達我們舒適的星球。有一些光子撞擊到你周圍的物體,并反射到你眼睛的視網膜上,這會使你的大腦以這些物體為基準,創建一副圖像,我們將其稱之為視覺。

攝影要做的就是捕獲這幅圖像。攝影是在 200 年前被發明的,但在此之前的好幾千年里,人類已經通過繪畫的方式來捕捉他們所看到的東西了。

我們中的很多人其實每天都相機不離身:當今智能手機已經是最常用的相機之一了。在數碼攝影的時代之前,攝影通常是記錄在紙上或者膠卷上的。而今天,攝影將光轉換為比特信息。

這篇文章將帶你探索這一切是怎么發生的:智能手機的相機到底是如何工作的。

快門速度,感光度 (ISO),光圈

在我們深入將光子轉換為 JPEG 文件之前,我們先來看看相片的一些基本概念。這些概念不僅在過去的膠卷攝影時有效,在今天也是同樣的。在不久之前,幾乎所有的攝影都是通過膠卷完成的。與今天使用數碼感光器不同,那時候成像依賴的是受光照影響的生化反應。但因為在拍攝相片中其他所有東西都遵循同樣的原則,所以對笨重的膠卷相機和膠卷攝影適用的規律一樣會在使用 iPhone 拍攝時適用。

進光量

拍攝一張相片的過程有時候被稱之為曝光。曝光也指單位面積上光的數量。為了相片亮度合適,光的數量也需要在一定的范圍內。如果我們沒有捕獲足夠的光,那么相片就會欠曝- 圖像被湮沒在圖像傳感器或者膠卷的固有噪聲中。如果我們捕獲的光太多,圖像就會過曝- 圖片傳感器/膠卷所接受的光過于飽和,無法區分不同的光的數量,這意味著幾乎所有區域看上去曝光程度都是一樣的。

當拍攝照片時,我們必須將相機調整到光線的量既不太高也不太低。下面是同一個場景中欠曝和過曝的樣本,右手邊的顯示了使用 Pixelmator 調整了曝光后的情況。這個例子說明了要是一張照片過度地過曝或者欠曝的話,是沒有辦法進行修復的:

未調整已調整

在欠曝圖像中,即使我們嘗試將它調亮,圖像的暗部依然被 “卡” 在黑色,我們沒有辦法讓圖像中的筆確實擁有不同的顏色。過曝圖像中也有大部分區域被卡在白色或者灰色:編織帶和硬幣細節已經完全丟失了。

曝光檔數

有三個要素可以影響曝光的進光量:快門速度,光圈和感光度 (ISO)。我們稍后會仔細談談它們。

在攝影中,通過調整這三者中任意一個來讓進光量翻倍或者減半,就叫做改變了 “一檔” 曝光。每一檔曝光對于這三者 (快門速度,光圈和曝光度) 來說對應的是不同的數字變化。但如果我們將快門速度調整一檔,我們需要通過調整 ISO 或者光圈一檔來進行補償,才能獲取同樣的進光量。我們之后會馬上提及一些細節。

有趣的是所有這三者 (快門速度,光圈和 ISO) 也會在曝光上影響其他要素。這三個參數有著無數種組合來達到同樣進光量的結果,我們來仔細研究下:

快門速度

當我們捕捉圖片時,圖像傳感器捕捉一段時間的光線。這段時間被叫做快門速度,因為它表示了快門打開和關閉的快慢。

比如 1/50 秒的快門速度會讓圖像傳感器進行 1/50 秒 (= 0.02 秒或者 20ms) 光線捕捉。如果我們將快門速度改變至 1/25s (40ms) 時,圖像傳感器將捕捉兩倍時間長度的光,也就是兩倍數量的光子,或者說兩倍的進光量。

對于快門速度來說,一檔表示將快門速度加倍或者減半。從 1/50 秒到 1/25 秒調整了一檔。

iPhone 6 的快門速度可以在 1/8000 秒到 1/2 秒之間調整。我們可以通過改變快門速度來調整進光量,但這也會影響圖像的清晰度。如果我們在拍照時相機和場景是完全靜止的,我們可以使用任意長的曝光時間 (快門速度),但是更多情況并非如此。我們身邊的東西都一直在移動,特別是對于 iPhone 來說,相機本身也一直在移動。

當物體移動的足夠快的時候,它在整個曝光時間里便不會只停留在某一個點,這會導致圖片模糊。一般來說我們希望畫面清晰、不模糊,因此我們通常希望快門速度在 1/100 秒或者更快/更短。對于高速運動的物體的攝影,我們可能還需要選擇一個更快的快門速度。但是我們也可以有意地選擇一個長的快門速度來讓物體模糊,以強調其運動感。這種情況下最好把相機固定在三腳架或者類似的東西上,這樣可以確保場景中固定的物體仍然保持清晰。

感光度 (ISO)

ISO 值也被稱作膠卷速度。在數碼攝影中,它被用來衡量圖像傳感器對光的靈敏程度,以及因此帶來的曝光噪音。實際上的細節非常復雜,Wikipedia 會給你一個更詳細的解釋。

iPhone 6 可以將相機在 ISO 32 至 ISO 1600 之間調整 ISO 值。一檔對應翻倍或者減半 ISO 值。每次我們將 ISO 加倍 (比如從 ISO 100 到 ISO 200),我們就只需要一半的進光量。我們為此是要付出的代價的,那就是相片的噪點將會變多。

在 ISO 32 時,iPhone 傳感器得到的圖片將會有最少的噪點,但是同時也需要最多的光。在 ISO 1600 時,iPhone 圖像傳感器就只需要 1/50 (2%) 的進光量,但是圖片會有更多的噪點。

這里有用三腳架架上 iPhone 6 后同樣場景的兩個樣本、這些圖片是從整幅相片中裁取的一小部分。左邊的使用的是 ISO 32 和 1/3 秒曝光。右邊的是 ISO 1600 和 1/180 秒曝光。捕獲的進光量基本是一致的,但是左邊的噪點要比右邊的少。但是如果沒有三腳架的話,我們是無法使用 1/3 秒的曝光時間來拍出銳利的相片的。

ISO 32ISO 1600

光圈

最后,相機 (更確切地說是相機的鏡頭) 的光圈是用來衡量到達圖像感應器的光所通過的通孔的大小的。光圈值以F 比例 (焦比)來進行標定,比如 ?/5.6,其中 5.6 表示鏡頭焦距與光圈 (也就是通孔) 的有效直徑的比例。

可能 F 比例會讓人有點迷惑。F 比例所對應的一檔指的是當前值與根號 2 (√? ? 1.4) 相乘或者相除。在 ?/4 時,我們所得到的光的量是 ?/2.8 時的一半。

當使用 iPhone 相機時,事情就變得簡單很多了,因為 iPhone 6 的光圈值是固定的,具體來說是 ?/2.2。

除了影響進光量,光圈還會對景深造成影響。這和對焦有關系。相機中的光學系統會將與相機一定距離范圍內的物體渲染清晰。當我們改變光圈時,這個距離范圍將變寬或者變窄。我們可以用這個特性來達到一些很好的效果 (譯者注:比如人像的背景虛化等)。但很遺憾的是,我們不能調整 iPhone 的光圈大小。

結合起來

在 iPhone 上,我們能調節的只有 ISO 和快門速度。因此我們需要在噪點 (由 ISO 影響) 以及動態模糊/銳利之間進行權衡,同時保證相同檔次的曝光。

這也解釋了為什么晚上拍出來的照片看起來要比白天拍出來的差:在晚上光線要少得多,為了仍然有一個可接受的快門速度,自動曝光系統將調高 ISO,也許會被調到相機允許的最大值。要是即使這樣還是不能達到足夠的進光,自動曝光還會降低快門速度。這樣的組合就造成了畫面上更多的噪點,以及圖像模糊。

有些iOS app可以讓你手動調整曝光。其中一種選擇是去調整EV (exposure value) 值(也就是曝光值)。這種方式還是會使用相機的自動曝光邏輯,但是你可以調整你想要的曝光程度。-1 的 EV 值將會通過自動曝光邏輯讓圖片欠曝一檔。自動曝光邏輯仍然會自動地選擇 ISO 和快門速度的組合 (因為在 iPhone 相機上光圈是固定的)。

另一種選擇是使用快門優先(通常被標記為 S 或 Tv)。這讓我們能都直接設置想要的快門速度,然后自動曝光將自動地調整 ISO 來達到合適的曝光。

最后,我們可以完全手動控制曝光 (通常用 M 來表示),這種情況下我們需要自己調節快門速度和 ISO。當這么做的時候,我們通常會為了方便先自動曝光一張,然后使用自動曝光的參數來作為調節的起始點。

那些允許你調整光圈的相機還有一種模式叫做光圈優先(通常標記為 A 或者 Av)。這種模式和快門優先在概念上是對應的,我們手動控制光圈,然后讓自動曝光邏輯去選擇快門速度 (以及 ISO 值,除非它是固定的)。

有一些好辦法可以讓你獲取到好的自動曝光。iOS 的自動曝光邏輯將會檢查圖像的全部部分,然后去猜測你想要拍攝和曝光的主體是什么。如果畫面的一部分特別亮,其他地方又特別暗的話,相機是不能把所有東西都曝光得很好的。所以在這種情況下自動曝光必須選擇一些東西作為主體,比如人的面部。內建的 iOS 相機 app 也允許你通過點擊畫面來提示自動曝光系統某個部分比較重要,應該被良好曝光,這會導致自動曝光進行調整。相機 app 還能讓你通過在屏幕上上下滑動來調整曝光值。但是如果你想要直接去設置快門速度和/或 ISO 的話,你就需要用另外的 app 了。

對焦

相機只能將離相機一定距離范圍內的物體渲染清晰。在這個范圍內的物體就是被聚焦的,而如果太近或者太遠而導致模糊的,它們就是失焦的。

包括 iPhone 在內的大多數的相機都有自動對焦 (AF),相機會猜測圖片的哪個部分需要被聚焦,并依此來調節焦距。iOS 內建的相機 app 允許用戶點擊某處來進行對焦 - 有些 app 甚至可以讓用戶手動調節焦距。

光學組件

相機鏡頭是由一系列光學組件構成的,它們負責引導和聚集光束。對相機焦距的調整,其實是通過物理移動這些鏡頭組件來完成的。

模塊化相機 - 比如單反- 可以讓你在不同的鏡頭間切換。即使是像 iPhone 這樣固定鏡頭的相機,你也可以通過在內建鏡頭前方再加裝額外鏡頭來調整相機的光學部分。

鏡頭系統最重要的指標是它的焦距- 主要是它的放大倍率和視野角度。一個廣角鏡頭的放大倍率比較低,因此可以讓相機捕捉更大的區域。而長焦鏡頭,特別是遠攝鏡頭的視角就窄得多,由于它的放大倍數很大,它只能獲取廣角鏡頭中的一小部分區域。

鏡頭也影響圖像的其他部分。它可能會將一些你不想要的變形或者顏色失真引入到拍攝的圖片中,比如色差就是一個典型的例子。

光滿四溢

現在我們知道一些基礎知識了,那么相機實際上是如何捕捉圖像的呢?

在你的 iPhone 相機里面,有一個圖像傳感器。這個部分就相當于我們眼睛里的視網膜。圖像傳感器可以將光或者光子轉換為電信號。

圖像傳感器是由海量的獨個的像素傳感器串起來的巨大矩形區域。我們可以將每個像素傳感器想象成一個裝電荷的桶。當光子撞擊到像素傳感器的光二極管時,它們將在這個像素的桶中緩慢地積攢電荷。最后,每個像素都會有它自己的一小桶電子。這些電荷的數量是依賴于光子數量的 - 或者說是決定于打到這個特定的點上的光的強度。

因為我們有一個像素傳感器的二維陣列,我們現在就擁有能夠反應出所有這些位置的光的強度的一組二維電荷陣列了。在 iPhone 6 上,我們有八百萬個這樣的微小的像素傳感器,以及它們所對應的電荷桶。

現在,我們需要明白兩件事情:第一,我們需要有重置這些電荷的能力;其次,一旦像素傳感器曝光了,我們需要能夠讀出這些電荷的數量。重置這件事情可以全局地對所有像素一起進行。但是對這樣的八百萬個小電荷,我們傾向于單獨處理,以將它們轉換為伏特量級的量,以方便讀取。

數碼相機通常會去移動一行中的像素:圖像傳感器首先讀取一行中第一個電荷桶中的電荷,然后所有的桶將它們中存放的電荷轉移給相鄰的前一個桶。這樣第一個電荷桶現在就保存了本來在第二個桶中的電荷,并準備好了再次被讀取。重復這樣的步驟,所有像素的值都將被讀入到傳感器的行中。

正在被讀取的桶,或者說像素傳感器中的值將會被一個模數轉換器(ADC) 轉換為數字信號。ADC 的輸出是一個對應每個像素傳感器所接收到的進光量的數字。最終,這些值被傳遞到一個數字圖像處理器中進行處理。對于數字圖像處理的過程,我們稍后再談。

像素尺寸,錙銖必較

知道了這些,我們就明白為什么幾百萬或者上千萬像素中的幾百上千這個數字并不影響圖片質量了。或者說,真正對圖片質量有重大影響的是每個像素的尺寸。這些像素傳感器非常小,以 iPhone 6 為例,每個像素傳感器邊長為 1.5 μm (微米)。而在一個介于消費級和專業級之間的單反相機上,它們的邊長有 9 μm 之大。

隨著尺寸增加,有兩件事會發生。首先,像素越大,撞擊它的光就越多,所生成的電荷也就越多。我們擁有的電荷越多,也就意味著讀出時的噪聲越小。想象一下你在鄰著一條繁華的街道的屋子里聽音樂吧,如果你使用的是手機的內置的揚聲器的話,你基本上不可能聽得到什么。但是如果你搬來一套大型環繞聲音響,那么街上的噪音就都消失了。像素中的電荷和圖像傳感器的噪點也是同樣。像素越大越好,9 μm 的圖像像素將比 1.5 μm 的像素多收集 36 倍的光子。

第二點是更大的像素意味著濺射 (bleed) 的影響變小。和 CPU 或者 RAM 一樣,圖像傳感器也是一個硅基半導體部件。形象來說,光打在傳感器上的時候就像水潑在被冰住的玻璃上一樣,它會濺射到鄰近的像素中去。隨著像素變小,濺射到鄰近像素中的光就會變多:實際打到了鄰近像素中的光越多地濺射到當前像素的話,它的值所受到的影響也就越大。

快門

膠卷相機使用快門來控制曝光,這是處在膠卷前方的一個非常靈敏的機械部件:在曝光時它將會被打開,然后在快門速度所指定的時間之后關上。大一些的數碼相機仍然是使用機械快門,但是像智能手機和其他小的數碼相機使用的是電子快門。

包括 iOS 設備在內的許多小型設備使用的是回轉快門 (rolling shutter)。它會一行一行地讀取圖片數據。因為每一行其實不是在同一時間讀取的,所以會導致有時候場景中高速移動的物體變形得很奇怪。有些例子其實還蠻有趣的

顏色

現在我們知道 iPhone 是如何測量光打在每個像素上的多少了。但是通過這個我們僅只會得到一張黑白照片。彩色照片還需要額外的技術。在我們深入之前,我們先來看看顏色是什么。我們會稍微偏點題,來看看所謂顏色學的一些皮毛知識、

深綠色的森林的顏色是深綠色的,淺黃色的自行車是淺黃色的,這似乎是天經地義的。但是這種被叫做”顏色“的東西到底是什么的。在計算機領域,我們也許可以回答說某種顏色就是特定量的紅,綠和藍的組合。但是在現實中,要比這復雜得多。

有些人 (CIE) 試圖給顏色一個定義,但是最終卻只能終結在像這樣晦澀和讓人迷惑的詞句之中:

顏色是一種由有色或無色內容進行任意組合而構成的視覺感知的屬性。這種屬性可以被色彩名字描述,例如黃色,橙色,棕色,紅色,粉紅色,綠色,藍色,紫色之類;或者被無色名字描述,例如白色,灰色,黑色之類,并被像是深,淡,亮,暗這樣的名字或是組合進行修飾。

注意:感知到的顏色依賴于顏色的視覺刺激的光譜分布,這種分布包括尺寸,形狀,結構以及視覺刺激本身周圍的環境,以及觀察者視覺系統的適應性狀態。另外進行觀察的個人的普世經驗以及類似場景也會對感知造成影響。

他們通過使用顏色自身來循環定義顏色,雖然被他們叫做了色彩,但這其實只不過是顏色的另一種叫法而已。

視覺感知

如果說要從上邊的定義里抽取一點什么的話,”顏色是一種視覺感知“ 這句話算比較重要。一個人必須要看到之后,才能說有顏色。顏色要是離開了我們的感知的話,也就不再存在了。你必須要看到光源,或者某些反射光的東西,才能說出這個東西的顏色。

牛頓首先發現了光是一組顏色譜。可見光包含了波長大致在 380 至 720 納米的一組波。但是我們在看不同波長的光的時候感覺是不一樣的。

人類的眼睛是擁有光子探測器的,其中一些被稱為視錐細胞。我們有三種不同類型的視錐:S,M 和 L。每一種類型對不同波長的光會做出不同的響應。這些視錐細胞有時候被稱為紅色,綠色和藍色的光感受器。其實這種說法有失偏頗,更精確的叫法應該是赤色,稍微不那么赤的赤色,以及青色。如圖所示,其實它們響應曲線有相當大一部分是重疊的:

像燈泡這樣的光源擁有著特定的光譜 - 也就是每個波長的光都有特定的強度。相對應的,一個物體,比如自行車的框架,會按照不同的強度來反射或者吸收特定波長的光。對每一種情況,我們可以將光源光譜和物體的反射光譜以及視錐的響應曲線相乘 (其實是沿波長做積分)。對每一個視錐細胞來說,這樣做會得到一個計算結果,S,M 和 L 視錐的三個光刺激值就是感知到的顏色。我們的大腦會將青色,赤色和弱赤色的視錐的值組合起來,形成對顏色的感知。事實上,顏色感知并不只依賴于這三個值的,還和空間和時間的信息有所關聯。

指定顏色

現在我們知道顏色是怎么形成的了,但是我們如何定義某個給定的顏色呢?我們要怎么描述某輛自行車上那種特定的紅色呢?

答案是,我們需要一種叫做色彩空間的東西來定義它。我們可以將色彩空間理解成一種度量單位。

當有人問 “大象能跑多快” 時,"18" 或者 "2.8" 這樣的答案是毫無意義的。我們需要一套度量單位來衡量它,比如 “18 千米每小時”。對于顏色來說也是一樣的。當我們問 “這輛自行車是什么顏色” 的時候,我們也需要一套類似的 “度量單位” 來表述我們的答案。這套度量單位就是色彩空間。

雖然細節很復雜,但是色彩空間的主要概念還是非常簡單的:如果我們用三個光源 - 一個紅色,一個綠色和一個藍色的光源 - 我們可以將它們以不同強度混合起來以得到各種顏色的光。舉個例子,要是我們想要匹配在我們的臺燈反射下的香蕉的顏色的話,我們最后得到的值會是 10 份紅光,8 份綠光和 4 份藍光.天空的顏色可能是 4,8 和 10。這些值精確地依賴于我們所挑選的光源 (也就是基本值),在這里是 4,8 和 10。要是我們挑選了另一組光源 (基準值),達到同樣的顏色結果時這個數字可能變為 11,9 和 2。我們所挑選的基準值其實就定義了我們的色彩空間。

當被問到 “這輛自行車是什么顏色” 時,我們可以說這是在某一組三個特定的基準值光源下,將它們的光強調整到 23%,45% 和 53% 所得到顏色。其他擁有同樣的一組基準光源的人就可以根據這個數字重新創建出這個顏色。

在現在計算機,包括 iOS 中,事實上所使用的默認色彩空間是sRGB色彩空間。它的三個基準值是通過ITU-R BT.709標準定義的。除了通過三個基準值之外,還有一些其他的不同方式來定義色彩空間,但其實最終它們的概念都是相同的。

值得指出的是,大部分的色彩空間只能對應可見顏色的一個子集。可以看看sRGB色彩空間的圖表:

馬鞍形的圖形區域代表了人眼可見的所有顏色。黑色三角形內的區域表示能被sRGB色彩空間表達的顏色。三個頂點是這個色彩空間的基準值 - 也就是只有其中一個基準光源全開的情況。三角形區域之外的顏色可以被人眼感知,但卻不能被 sRGB 色彩空間表達。還有一點需要特別說明的是:這張圖里在三角形之外的顏色看起來好像和三角形邊緣的顏色非常相似。這是因為這張圖片本身是用 sRGB 色彩空間來表示的,三角形外的真實的顏色在圖片文件中是顯示不出來的,因此只能回滾到和這個真實顏色最接近的能表達的顏色去。

當我們通過十六進制 (比如#dde834) 或者是 UIKit 的 API (比如UIColor(red:0.867, green:0.910, blue:0.204, alpha:1.000)) 選取顏色時,我們所表達的其實是 86.7% 的 sRGB 紅色基準值,91% 的 sRGB 綠色基準值以及 20.4% 的 sRGB 藍色基準值所混合的顏色。

RGB 色彩空間和 sRGB 相比有更大的全色域,也就是所能表達更多的可見顏色。CIELUV (也被叫做 CIELAB) 色彩空間就是一個基于 RGB 基準的色彩空間的例子。它也由三個組成部分:代表亮度的L,以及代表顏色對立維度uv(有時候也被叫做ab)。

更多信息請去看看 Wikipedia 上關于色彩空間的文章,另外嘗試用用 OS X 里的顏色實用工具也是熟悉色彩空間的好辦法。

白非白

還有一件事情讓顏色變得很復雜,那就是我們的大腦其實做了很多處理,來讓東西看上去是 “正常” 的 - 這種處理中很大一部分和白平衡有關。我們都知道白色和灰色是什么意思。但是當我們看到什么東西是灰色的時候,事實上在絕大多數情況下其實它并不真的是灰色。但是我們的大腦會 “指出” 在這個光照條件下,它就應該是灰色,所以我們認為我們看到了灰色。

從一幢白色的建筑物上反射出來的光在早上和晚上其實是大不相同的。但是我們的大腦指出建筑物的顏色并沒有從一種變換到另一種。這乍看上去很明顯,因為我們已經習慣了我們的大腦無時無刻不在處理這些事情。

我們的大腦有能力進行色彩調節 - 它通過調整每種視錐類型的靈敏程度來進行色彩平衡。另外,除了簡單的調整以外,我們的大腦還有一些非常復雜的機制。大腦是如何截取那些來自視錐,但又依賴于環境,時間和空間影響的信號的?Akiyoshi 關于視覺的頁面展示了一些證明大腦處理能力的令人精神錯亂的例子。但是當事情來到相片和顏色時,要記住的是相機只能簡單地記錄它所看到的東西,正因如此,有時候對我們來說,拍到的東西和它本身看起來的就有可能偏離很遠。

當我們使用相機拍照時,相機可沒我們的大腦那么聰明。但是相機也有一套自動的白平衡算法來嘗試找出場景中的中性顏色 (也就是灰系色)。之后相機的圖像傳感器將嘗試將相片中的所有顏色都按照這個結果來進行調整。有時候這很好使,但也有失敗的時候。失敗一般是因為奇怪的光照條件,比如場景的一部分被一種光源照亮,而另一部分被另一種光源照亮。

有了以上這些知識,我們就可以來看看我們的數碼相機是怎么看到這些顏色的了。

數碼顏色傳感器

像素傳感器自身并不會因為光的波長不同而有什么區別。但是如果在它們前面放一個顏色濾鏡的話,像素傳感器的響應曲線就會根據光的波長的不同而發生分離變化。

如果我們使用綠色,紅色以及藍色的顏色濾鏡,那么有些像素傳感器將只接收綠光,有些只接收紅光,而有些只接收藍光 (在現實中,它們將擁有和我們眼睛的視錐細胞相似的響應曲線)。當今的相機幾乎無一例外地使用了一種稱為拜爾濾鏡 (Bayer filter)的裝置。如果使用這種濾鏡的話,綠色的像素傳感器的數量將會是紅色或者藍色的兩倍。它看上去是這樣的:

現在數碼相機有顏色信息了,但是同時它也丟失了很多信息。我們只知道所有像素中的 1/4 的部分的紅色的值。藍色也類似。而對于綠色,我們知道 1/2 的像素的值。換句話說,66% 的數據丟失了。將所有像素的全部的顏色信息進行還原的過程叫做逆拜爾化 (debayering)。與之相伴的高級算法將將通過為已存在的信息進行插值,來得到一張全分辨率的彩色圖像。

即使是一個簡單的插值算法也可能要花上很多努力來得到,而隨著時間流逝,越來越多的逆拜爾化方法被開發出來解決這個問題。但是也存在一些問題問題,來舉例說明:大部分的逆拜爾化算法非常依賴綠色像素的流明數 (光強度)。這樣導致的結果是幾乎所有這些逆拜爾化算法在幾乎全紅色的區域表現不佳。這里截取了一張 iPhone 6 拍攝的照片:

注意相比起小冊子上的黑色文字來說,iPad 保護殼上寫的 “PRODUCT” 的大字中的 C 和 T 字母是非常不清楚的。這是由于圖像在 iPad 保護殼的部分缺少綠色信息而導致逆拜爾化的去噪部分無法得到準確信息,從而圖像模糊。

缺陷補償

除了重建顏色信息,相機里的圖像處理器還對圖像做了一系列的其他調整。

隨著圖像傳感器的像素數越來越多,某些像素中產生缺陷的可能性也越來越高。通常相機里都會有一系列的像素 (通常是整排) 是無法正常工作的。在對原始圖像數據進行處理的時候,圖像處理器將去修復那些死掉的像素。

圖像傳感器有一部分區域的像素的位置是在相機接收可見光的區域之外的。這些圖像傳感器的像素將永遠是黑色的。但是它們讀出的數據卻不是 0。利用這些像素,圖像處理器可以通過用包含實際圖片的那些像素的值減去它們,來調整圖像的明暗程度。通過這個方式,圖像處理器也可以補償大部分圖像傳感器 (和/或 ADC) 中的內在誤差。

文件格式

數碼相機的最后一步是將圖像數據寫入一個文件中。在大部分情況下,數碼相片被保存為 JPEG 格式。JEPG 壓縮會調整圖像數據以追求高的壓縮比。iPhone 6 所拍攝的一張圖片的像素數據大約為 23 MB (3.264 x 2.448 x 3 = 23.970.816),但是這樣一張圖片對應的 JPEG 文件通常只有 1.5 到 2.5 MB。通過閱讀話題 #3 的這篇文章來了解關于 JPEG 的更多信息。

有些數碼相機允許用戶存儲一種叫 RAW 格式的文件。相機的圖像處理器仍然會對從傳感器拿到的原始圖像數據做一些處理,但是這個文件所包含的數據將非常接近于真實的像素值。這么做的好處是我們可以在之后的時間點對它做逆拜爾化。

舉個例子,OS X 上的逆拜爾化比大部分單反相機上的要強力。與操作 JPEG 文件相比,對支持的相機的 RAW 文件進行操作,可以讓我們在不損失畫質的前提下做更多的調整。Core Image 中的 RAW 圖像處理將把用戶定義的各種調整作為逆拜爾化的一部分。相比起來,在操作 JPEG 圖像時,調整僅只是事后工作。

想了解更多細節的話,可以查看 OS X SDK 中的CoreImage/CIRAWFilter.h文件,以及WWDC 2014 session 514的 32:40 的部分。

結語

我們今天使用的數碼相機是數十年研究和工程的結晶。我們在這篇文章里勉強勾勒了它所使用到的科技的輪廓。通過這篇文章,我們希望你能夠更了解你的 (iPhone) 相機... 以及為 iOS 和 OSX 制作出更好的相片 app。


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,460評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,067評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,467評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,468評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,184評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,582評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,616評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,794評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,343評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,096評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,291評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,863評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,513評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,941評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,190評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,026評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,253評論 2 375

推薦閱讀更多精彩內容

  • 索尼黑卡RX100設置與后期詳解(歡迎指正與補充)一、拍照1、影像尺寸分20M、10M、5 M,這里不是指文件大小...
    justin_pan閱讀 1,532評論 1 5
  • 分四部分,看相關書籍,看相關影相,看優秀的照片,拍照片。把每天看過的書籍和影相和優秀照片里自己可以吸收的部分總結出...
    Eleanorgan閱讀 2,878評論 0 12
  • 前言 三流的攝影師比器材,二流的攝影師比技術,一流的攝影師比思想。 “照片從來不能解決問題,它總是在不斷的提出問題...
    Abnerzhao閱讀 4,450評論 2 16
  • 要學習拍照攝影,了解相機的相關技術參數、原理概念也是很必要的。下面以iPhone6為例說明其相機參數的含義,幫助大...
    陳游掠影閱讀 5,638評論 0 8
  • 你在月亮的尾, 不,是我在月亮的尾, 發出一道光, 照亮月尖上的你。 近在咫尺的尖和尾, 其實沒你想的那么遙不可及...
    鐵牟閱讀 643評論 6 3