Google Camera的 HDR+演算法有多厲害?

有很多手機用了Google Camera之後拍照提升立竿見影。


多圖預警

感謝 @凍檸茶茶 邀請 (●"?"●)

HDR+ 有多厲害,當然是超厲害啦~!

官方集錦 Photos and Videos from Pixel 2 (404 Not Found 注意)

文中部分配圖:

https://photos.app.goo.gl/Ht0KGsYff7X46nMu2

(同樣是 404 Not Found 注意,我不清楚在網頁上放大是什麼質量,但可以在菜單中點擊下載原圖)

可以直觀地看到,Pixel 2 的 IMX362 CMOS 在 HDR+ 的加持下,照片的動態範圍更強,高光過渡更好、暗部噪點更少,各種條件下都能保留很好的細節。另外,HDR+ 還能一定程度的去抖動、優化膚色。


由於 HDR+ 基於多幀堆棧,拍攝時需要花費 n 倍快門的時間,為了能夠抓拍,谷歌提供了零快門時滯( zero shutter lag, ZSL )的HDR+ 突發模式 ( 在現在的谷歌相機里稱為 HDR+ on,默認開啟 ),其原理是相機取景時後台就已經開始預拍,按下快門時取出這些照片進行處理,此模式下無論是否合焦都會立即拍攝,快門速度也會比較保守(最低 1/10 sec )。而完整模式 ( HDR+ enhanced ) 則是按下快門後,完成對焦過程(無論成功與否)才開始拍攝。在 Pixel 2 上,此模式的最低快門速度是 1/5 sec

Google HDR+ 完整管線

如果要說缺點的話,照片在高感下的噪點不均勻,不太好看。這應該是 RAW 轉換為 JPEG 時的問題,以及一些色調映射上的小瑕疵。還有,拍解析度一般的顯示器的的時候有可能會出現奇怪的網格(在畫面中是完美的方形,應該也是堆棧過程中的問題)。可以期待谷歌后期改進。


此前,經過不同開發者的努力,谷歌相機已經能夠安裝在部分其他品牌機型上使用 HDR+ ^{[2]} ,並且拯救了不少機型原本糟糕的畫質。但也有效果不明顯,甚至變得更加糟糕的(比如 LG G5)。原因是谷歌只為自家機型做了優化配置,其他機型或多或少都會有瑕疵,無法發揮全部實力。來自烏克蘭的開發者 B-S-G 率先在自己的移植版中加入了 HDR+ RAW 輸出,經過在 Pixel 2 上的測試,帶來了不少驚喜。

Google Camera B-S-G Mod settings


以下是 Pixel 2 的實際體驗,如未作說明,圖片均為 RAW 拍攝並後期出圖,調整可能有曝光、曲線與白平衡。

感謝評論區 @曦瓜 同學的提醒,我應該分享一份原圖。另外,Waiting for Google is never fun. 對於暗光拍攝,大家可以嘗試提高堆棧張數:將移植版相機設置里的 HDR+ parameters ( 或舊版的 Buffers size ) 調為更高級別。

嘟嘟嚕~

首先,HDR+ JPEG 直出的效果已經非常好了,Pixel 2 在 DxOMark Mobile Photo 拿了99分(丟分在噪點與偽像。模擬虛化的實現不屬於 HDR+ 的範疇),動態範圍等等都是最優秀的。但使用 HDR+ RAW 後才發現,它原本更加優秀!

與直出 JPEG 相比,HDR+ RAW 還能提供更高的動態範圍,同時噪點更少且十分均勻,是 Lossless JPEG Compressed DNG 格式,在 Pixel 2 的 12MP 每張約 10MB,不會佔用過多空間。

在 JPEG 下過曝的高光,可以再期待一下 RAW 的表現,基本都能拉回來一檔。

經過 RawDigger 查看,Pixel 2 的 HDR+ RAW 的數據範圍是 0~16368 ,也就是 log_2(16369)≈14  bit ,並且無跳值(關聯閱讀:索尼相機的raw是有損的,究竟和無損的raw 差多少?),其他手機的 RAW 多數為 10 bit^{[1]} ,於是調整餘地就非常大了。儘管沒有嚴謹測試,但它至少有 13 EV 的動態範圍,拉曝光的時候,會給你一種全畫幅 RAW 的錯覺……

以下是一個大光比場景:

HDR+ RAW -4 EV / +3 EV 效果對比

HDR+ RAW 直方圖 (13.9 bit)

JPEG 直出效果

(這張照片的 JPEG 與 RAW 的快門速度不一樣,以各自的EXIF為準了)

同樣場景下,多數演算法不夠好的手機的效果已經是一片慘白或死黑了。

HDR+ RAW 調整後效果

經過了調整,還能獲得更好的效果。


早上擼貓

中午擼貓

下午擼貓(JPEG 直出)

晚上擼貓(輕微降噪)

優秀的手機拍照,是能夠從早到晚高清擼貓的~

無論何時都能夠提供驚人的銳度,特別是晚上,極其優秀的表現(注意這張的曝光參數)。

作為對比,請來了退休在家的LG G5:

LG G5 RAW / Google Pixel 2 HDR+ RAW 效果對比 (1:1裁剪 無調整)

LG G5 RAW 直方圖 (9.8 bit)

Google Pixel 2 HDR+ RAW 直方圖 (12.5 bit)

沒有多幀演算法的 LG G5 慘敗。噪點非常多,16MP 沒有帶來更多的細節,遠景近景區分已經不明顯,黑位偏移,幾乎丟失了天空的顏色。

城市夜景

在城市夜景的通常亮度下,快門速度還非常充裕,不用擔心出片問題。

更加黑暗的環境,噪點開始變得明顯(上傳的圖片本身還有 JPEG 壓縮過多造成的偽像)。

HDR+ RAW 完整模式的最高曝光值為 1/5 sec  ISO4800 ,可能需要通過對畫面暗部對焦同時手動調整曝光補償才能達到(此時對焦本身可能不太容易)。

HDR+ RAW 下 Pixel 2 的極限水平

即使在這種曝光下,HDR+ RAW 也能提供不錯的細節,噪點是比較容易後期抹去的,而此時的 JPEG 直出效果就不盡如人意了。


補上一些日景:

表現動態範圍的一張 (JPEG 直出效果)

自從加入 HDR+ 大法,我帶相機出門的次數更少了……


其實 Pixel 2 的視頻錄像和閃光燈質量也非常好,不過不是問題的討論範圍,正文里就沒有提相關部分。現有的 HDR+ 在高光與暗部交界處的光環( ringing )略明顯,據朋友說比曾經的版本更明顯。Google 真正厲害的地方是把堆棧的過程高效地實現了(如果你的機型支持 Adobe Photoshop Lightroom Mobile 的 HDR 拍攝,可以去感受一下從按下快門到成圖的時間相比之下有多漫長)。

另外,Google HDR+ 並不依賴於Pixel Visual Core。在 Pixel 2 的 Android 8.1 上,它能使其他 app 拍照(例如 QQ 內置的拍照)也有 HDR+ 突發模式的效果,處理速度還快了很多。總之大家不用擔心以後沒有移植版用~

補充:

Adobe 已經為 Pixel 2 系列做好了 Camera RAW Profile,包括 Camera Profile 和 Lens Profile,可以用於色彩與鏡頭畸變校正。但官方版本僅適用於使用 Camera2 API 拍攝的單幀 RAW,並不能適用於 mod 拍攝的 HDR+ RAW(其實 Lens Profile 可以,但需要每次手動選擇鏡頭),我已經做好了修改,以及一個添加了配置文件的 Lightroom Mobile 數據包,非 root 用戶需要需要配合 AppCloner(付費app)導入應用數據。挖坑睡覺,改天來填~

參考:

[1] raw .DNG from Huawei P10 Plus, Kodak Ektra, Lumia 950 XL. And: Google Snapseed!

文中關於其他機型的 RAW 位深,使用了這裡的文件作為參考。這三款都是 10 bit

[2] Google Camera Port with HDR+, 60fps video and slow motion

這裡收集了不同開發者的 Google Camera mod,大家可以下載適合自己的版本。


瀉藥,一直沒有過來回答的原因是……Pixel 2 XL 到手這麼點時間還沒把它脾氣摸清楚,年末忙的一塌糊塗根本沒機會拍照。

HDR+ 的基本原理在翼格小寶貝的回答內已經解釋的相當清晰了,一句話解釋就是拍一打照片(Burst),然後把各張的雜訊平均掉,包括讀出雜訊和散粒雜訊都可以相當程度的降低,理論上無法逾越的界限就是感測器本身的 fixed-pattern 雜訊。演算法本身的原理其實天文攝影中用了很久了,真正厲害的地方是在於整個 software-defined 的管線在 Nexus 6 上都能順溜的跑,而且是從開始拍攝最開始就著手為畫質優化了。由於數碼感測器的原理,clip 掉的高光是怎麼都救不回來的,所以測光階段,HDR+ 就會直接讀 RAW 來計算曝光值,跟一般的中央重點、分區測光等都不同,它是直接用整張 RAW 的數據來計算,通過 ETTR 來防止高光溢出。於此同時,它也密切的監視著手震,在手按下快門的一瞬間後會等手穩定再開始拍攝,拍攝那一打照片期間依然會根據機身的抖動放棄並重拍模糊的張。通過完整的一套拍攝管線來從採集階段之初就保障曝光的健全,HDR+ 才能正確合併結果並 tone map 出好看的結果。

整套管線由於對硬體的依賴並不強,最基礎的版本基本上只需要支持 Neon 就能運行,所以才能被 port 得遍地開花。不過由於第三方設備缺少對應的 profile 適配(例如 noise model 校準不對等)等,還無法達到最佳的效果,比如會被塗抹得一塌糊塗、畫面某些部分有詭異的偏色等等。目前可以代表這個管線最佳效果的設備應該是 Pixel 2 系列了。Pixel 2 堆棧後的數據質量好到內置的 tone mapping 已經開始拖後腿了,如果想要發揮該設備的潛力,推薦使用第三方修改版的 Google Camera,改高連拍張數的同時啟用 HDR+ RAW+JPEG,這個 RAW 是貨真價實的堆棧 14 bit。

最佳效果有多好呢?我拿出了我這裡有的三款設備在都輸出 DNG 的情況下對比了一下,處理軟體均為 Lightroom Classic CC 7.1。

Pixel 2 XL, 1/5s ISO 4800, f/1.8

Pixel XL, 1/5s ISO 4800, f/2.0

Galaxy S7 Edge, 1/7s ISO 1430, f/1.7

關於作為對比的 Galaxy S7 Edge 為什麼是 1/7s,因為第三方軟體拍 RAW 快門速度已經放不慢了。至於選擇 ISO 1430 的原因,這裡是出於高光檔位的考慮,請看下圖

方便對比較低的數值,這邊Y軸設成了對數坐標系。可以看到實際上 Pixel 2 XL 在這個 ISO rating 下 clip 的像素已經比 S7 Edge 少了不少了,真的要一樣的話 S7 Edge 的 ISO 還得降降。出圖的時候通過 Lightroom 拉成了類似的亮度,說實話不同 Exposure Index (或者說 EV0 定義不同)的設備在比較 RAW 數據的時候 ISO 是沒有任何意義的,它一般只代表 jpeg 直出的亮度,設備內部對應的增益完全不同。

顏色不同?對,顏色不同,暗部偏色導致的。Pixel XL 初代的高感輝光已經導致整張圖都有點偏色了,S7 Edge 也歪,只有 Pixel 2 XL 毫無壓力……

Pixel 2 XL 的 HDR+ 同初代還有一個區別就是,零延遲快門模式(現在叫 HDR+ On,原完整管線改稱 HDR+ Enhanced)下依然是完整的測光管線,初代是完全依賴 ISP 的返回值的,會造成高光炸成一片。

Emmmm 然後我就開始好奇這玩意在極限情況下到底有多強,於是跑進了半夜一片漆黑的人民公園。

現場的肉眼亮度差不多是這個樣子的,可能還要暗一些?然後我對著 RAW 猛力拉了一氣:

Pixel 2 XL, 1/5s ISO 4538, f/1.8

HDR+ 直出JPEG

對比一下這張 HDR+ 直接機內直出的 jpeg,可以看到浪費了不少高光檔位,另外 RAW 在處理的時候也根據記憶調整了一下白平衡。在日間大光比場景下,HDR+ 直出的 tone mapping 容易弄出邊緣假亮,主要是因為原本 HDR+ 的演算法是為了性能優化的,這次 Pixel 2 系列用的參數比較激進,容易出問題,讓整張照片看起來非常不自然,而且高光依然是硬 clip,並沒有做高光混合,在一個及以上通道溢出的時候會出現色相偏移(皮膚高光焦黃、天空亮的地方變成青色等)。

Pixel 2 XL, 1/5s ISO 4800, f/1.8

看起來挺慘的……不過等一下

猛力拉低曝光一看,我靠……它到底保留了多少高光信息

以下是樣張時間:

又一張1/5s ISO 4800

來 放肆吸貓

我還真沒在白天拍到什麼好的樣張,再加上近期上海空氣質量一般……下次再更新吧

期待一下在不久的將來 Pixel Visual Core 被 Google Camera 用來加速的時候,先前對處理速度妥協的地方能有較大的提升吧,目前版本的 Google Camera 依然是 HVX 加速。

順便,求全景能上 HDR+ 和 optical flow 啊!!!


1.HDR+技術誕生於GOOGLE X實驗室,專精計算機圖形學的Marc Levoy教授帶領的團隊;

2.有別於傳統的HDR技術,HDR+採用了多張曝光時間相同,曝光程度不等的圖片進行合成;

3.有別於傳統的機內jepg堆棧技術,HDR+採用了採集RAW——堆棧——壓縮為jpeg的路徑,

先堆棧再壓縮,能明顯的提升圖像細節動態範圍;

4.由於上述原因,相比一般的HDR,HDR+需要更多的運算,不同於一般的利用ISP合成的HDR照片,HDR+更多的依靠高通處理器內的HexagonDSP以及CPU進行處理(pixel2使用定製的Pixel Visual Core);

5.HDR+技術一直在不停的更新與升級,所有在谷歌支持周期內的nexus/pixel設備都會獲得更新

參考來自於@Bruce Luo 的Nexus 6P 的相機向 Pixel 邁了一步這篇文章;

6.HDR+的展望

目前雙攝手機的兩個最大的用處就是低失真的變焦和模擬虛化;

模擬虛化Google已經通過dualpixel技術的cmos配合hdr+在單鏡頭的pixel2上實現了;

變焦的話,可以採用堆棧的方法提升解析力,達到不亞於雙攝相機長焦鏡頭的成片素質(對於某些手機來說,甚至能夠超越)。

也就是說,雙攝相機現在的這些功能,Google完全可以只用一顆攝像頭就實現。

7.圖集

pixel

pixle 晚九點

pixel:四倍變焦

以下對比圖來自google 2014 注意這是三年前的手機的水準

HDR+ on

HDR+ off

相關資料及來源:

HDR+

https://research.googleblog.com/2014/10/hdr-low-light-and-high-dynamic-range.html

單鏡頭人像模式

https://research.googleblog.com/2017/10/portrait-mode-on-pixel-2-and-pixel-2-xl.html


更新一下,評論區有個人一直在懟我關於堆棧提升解析力這事兒,我覺得我有必要放一下圖。

兩張圖片全手機直出,沒使用腳架,雙手握持

送給精選的大佬,希望你能在發表友善度言論之前先思考一下,謝謝。

pixel xl 堆棧出圖

小米6 變焦雙攝

順便在電腦上放大一下

pixel xl

小米6

私以為孰強孰弱一目了然

exif及官網參數對照見下圖

順便欺負一下友商

我啥都不說你們自己看就好

都是3.9-4.2倍變焦

全自動模式

對比過氣老相機。

自己破相機拍的參考


本來是想出掉MIX2換=6玩玩的,後來裝了谷歌相機開啟新世界,就留下自用了…

谷歌相機拍照比較麻煩不適合抓拍


Pixel 2:恕我直言,捂上我的攝像頭讓我腦補,效果都比在座各位用攝像頭拍出來的強。


直接上圖

小米Max2 無防抖IMX386

小米自帶相機(夜景防抖模式):

Google HDR+ Enhanced:


看到這個

準備回去搶救一下我的MIX


古董Nexus5x用戶表示………

開了之後秒變夜視儀,就是個別情況下白平衡有點………綠?

噪點?不存在的,放大再放大都完全不存在

白天拍,天更藍了,寬容度簡直直逼人眼,照片十分耐看,特別大亮度反差的地方HDR儘管邊緣還是有些不自然,但是比多數廠商的演算法強得多,很耐看

處理速度不是很快,進入相冊之後會顯示正在處理什麼的,估計是808太老了提不動刀了………

現在日常就直接強制HDR+ on,處理稍慢幾秒也沒關係,效果值得這幾秒的等待

總之,有了HDR+之後單反就下崗吧(x


真的,不騙人,比我note8原裝的還要好

note8本來就是三星的拍照旗艦了

但裝了Google camera後

我覺得開啟了新世界的大門

暫時沒有很多對比圖,先上個2張

(有水印是note8自帶,沒有的是Google camera)

真·夜視儀

整個畫面明顯明亮了好多


和華為的npu一樣

谷歌的dpu是很厲害的

即使是同樣的sensor

優化後的效果差距很大(見索尼)


這樣說吧,我手裡的索尼xzp用自家演算法dxo得分85分,如果索尼開竅願意讓我用google的演算法的話,dxo得分加個10分不是什麼問題


答者很懶,只會上圖

下面系統自帶相機

下面Google HDR+

我的發言完畢~

#手動滑稽


通俗點就是你已經天下第一了,然後你又長生不老


只求教程。。小米note2找不到能用的谷歌相機。。。代碼已經加完了下一步怎麼做


我表示沒有感覺有任何厲害的地方。

可能是我習慣了吧……

Google Nexus 5 -&> Google Nexus 5X -&> Google Pixel 的用戶路過……


記得原來用Nexus 5的時候相機是屬於爛成一坨的水平


拯救了一片千元級渣畫質。

想要體驗的朋友可以去xda論壇找到自己機型可以用的Google相機。


Google的HDR+演算法硬體依賴於其DPU。沒有DPU支持的手機,提升有限。Google這DPU也擔負圖像識別AI的功能。高通也是走的這條路線。區別於華為和蘋果的獨立NPU路線。但是DPU做圖像識別AI其架構來自於寒武紀2014年的一篇論文。但寒武紀自家卻沒使用,而是選用了另外一種架構。有意思的決策。


推薦閱讀:

2012年的諾基亞808和2016年的三星S7哪個拍照效果更好?
推薦一些簡潔的適合男性的手機壁紙。謝謝?
諾基亞2017王者歸來,據說諾基亞的相機優化很好,請問有多好?
有什麼拍過特有感覺的手機攝影作品讓你很想分享一下?
如何評價華為mate10pro在dxo評分97,超越三星note8和iPhone 8plus?

TAG:谷歌Google | 手機攝影 | 小米手機 | 一加手機 | GooglePixel |