佳能5D Mark III
專業玩攝影的朋友可能更傾向於使用相機的RAW格式,然後自己做後期處理,而不是直接拍攝JPEG格式的圖片。
什麼是RAW格式圖片
無論是專業的數碼相機還是手機的影像系統,Camera的處理流程都是類似的(關於手機的影像系統可參考之前的文章數字成像系統概述):
可以看到RAW格式的圖像是由相機感光元件接受的原始圖像數據組成,同時包含文件創建時的相機設置和圖像處理參數;
而JPEG格式的圖像是經過圖像處理(如白平衡,銳化,色調和對比度等)後的數據;
為什麼專業攝像愛好者偏愛於RAW格式的圖片?
除了RAW格式包含的未經處理的原始數據讓後期能有更大的操作空間(例如RAW格式文件比JPEG格式在高光和陰影區域能夠保留更多的細節,可以在後期將過爆和欠曝的照片拉回正常的曝光範圍)外,通常圖像軟件對RAW格式的任何後期調整都是「非破壞性的」,也就是說不會改變原始文件而是創建了一個新的JPEG或者TIFF格式的圖片副本。這樣的優勢可以讓後期製作無限次進行,直到滿意為止。
Android手機拍攝RAW圖
我們使用Android Camera2的API來拍攝RAW圖,關於Camera2的基礎可以參考Android Camera2詳解
1. 查詢是否支持RAW圖輸出
首先需要查詢Camera是否支持直接輸出RAW格式的圖片,如果沒有找到任何一顆攝像頭,就需要換一台測試設備了(現在國內的頭部手機廠商的中高端機型基本都是支持的)
2. 配置RAW圖的輸出尺寸
通過ImageFormat.RAW_SENSOR格式從StreamConfigurationMap中查詢支持的size列表並選擇合適的size
3.配置輸出Raw的Surafce
4.拍照並保存
在拍攝JPEG圖片的時候,我們只需要在拿到JPEG數據然後進行保存即可。但是在拍攝RAW圖的場景下,拿到原始數據後,還需要保存本次拍照所設置的參數配置信息,並且打包到一個文件中去。
不同專業數碼相機廠商的攝像機設置RAW格式後所拍攝的圖像文件的後綴名並不一定就是xx.RAW。
各家相機廠商會採用不同的編碼方式來記錄RAW數據,所以後綴名也不會相同,如下圖片都是RAW格式的圖片,可以看到格式種類繁多:
過多的RAW格式導致圖像處理軟件兼容性工作極具挑戰性,對軟件開發者和攝影師都不友好,為了解決這些衝突,Adobe公司在2004年推出了統一的RAW文件格式DNG(Digital Negative)。DNG的推出受到了不少軟件製造商的支持,比如Extensis,Canto,iView等,不少著名的相機製造商,如Leica,三星等也都推出了直接支持DNG的相機。
不過由於該DNG的標準還由Adobe掌控,而不是一個中立的行業標準,導致它的支持覆蓋率並不高。
奧林巴斯單反相機部的產品經理John Knaur說:「目前,我們還沒有看到這種格式成為一種跨平台的事實標準,它還只是Adobe 控制的一種圖片格式」 (來自參考資料2)
當然,Android SDK中已經提供了能將原始Camera數據和拍照的配置參數直接封裝為DNG文件的工具類DngCreator,我們直接用它來保存RAW圖即可
使用RedMi K30拍攝RAW圖,在手機相冊中查看,可以看到具有RAW的標識:
Demo圖
將DNG圖片導出到電腦,使用Photoshop Camera Raw打開,然後自己後期處理即可
註:
1. 文章演示代碼均來自Google官方例子,可github進行搜索或加我好友獲取;
2. 文章部分圖片來自於網絡,侵權請聯繫進行刪除~;
參考
1.【從零開始玩單反 相機參數之RAW格式詳解】
http://dcdv.zol.com.cn/259/2596442.html
2.【DNG百度詞條】
https://baike.baidu.com/item/.DNG格式/1797443?fr=aladdin
3.【到底什麼是RAW格式文件】
https://fotomen.cn/2018/06/28/what-raw/
技術交流,歡迎加我微信:ezglumes ,拉你入技術交流群。
推薦閱讀:
音視頻面試基礎題
OpenGL ES 學習資源分享
一文讀懂 YUV 的採樣與格式
OpenGL 之 GPUImage 源碼分析
推薦幾個堪稱教科書級別的 Android 音視頻入門項目
覺得不錯,點個在看唄~
