Iphone 里的HDR 照片如何玩?是不是只能在相冊里看HDR效果?
Iphone從12開始,加入了local HDR,拍攝的照片可以顯示出真HDR效果,而非以前那種模擬的HDR效果,其他手機(jī)廠商,如oppo,小米,華為,三星等也陸續(xù)推出類似的功能,2023年 google I/O 大會(huì)也宣布安卓14將帶來了Ultra HDR照片,但這些目前都只能在本地相冊看到實(shí)際效果,就算想分享也無法通過任何平臺(tái)分享,而且目前也沒有任何網(wǎng)絡(luò)瀏覽器支持該類型的圖片顯示。那是否能向之前系列分享過的文章來實(shí)現(xiàn)轉(zhuǎn)換成avif等格式分享呢?答案是可以的。
真HDR圖片制作之raw文件在photoshop制作HDR圖片
真HDR圖片制作系列之非RAW格式如何在photoshop制作HDR圖片
首先,這種格式的HDR圖片采用的是一種HDR Gain Map的方式,一張圖片里包含兩層圖片,通過分離可以得到兩張PNG,一張是顏色正常的SDR圖片,一張是黑白的增益圖。
利用黑白層作為亮度增益層,在支持的相冊里讀取的時(shí)候采用調(diào)取適配的gamma值,從而實(shí)現(xiàn)線性的亮度增益,達(dá)到亮部提升的效果。粗略的看,黑白圖層頗有類似蒙版的效果。既然可以分離,就可以合成,并利用編碼成其他格式。如之前提到的exr或者avif等格式,來達(dá)到與其他軟件交互甚至分享的目的。
第一部是分離圖片,借用mac系統(tǒng)舉例,這些工具在win或者linux系統(tǒng)也是存在的,需要安裝幾個(gè)依賴庫。
Python 3.9 or later
libheif v1.10 or later
NumPy
OpenImageI
Mac系統(tǒng)里采用“終端”來實(shí)現(xiàn)
假設(shè)圖片名稱是IMG0000.heic,只需要在圖片所在路徑里,運(yùn)行:“heif-convert --with-aux --no-colons IMG_0000.heic IMG_0000.png”

就可以得到兩張png文件:

IMG_0000.png 主畫面

IMG_0000-urn_com_apple_photo_2020_aux_hdrgainmap.png HDR增益圖層
分離出文件以后可以選擇合成其他HDR圖片文件,常見的還是使用EXR和avif。
EXR屬無壓縮文件,mac上配合XDR屏幕是可以直接預(yù)覽HDR效果,也可以進(jìn)其他圖形圖像軟件作為交互使用。但如果是要在網(wǎng)絡(luò)上分享,目前最理想的還是使用avif格式。無論哪種方式,還是要從
https://github.com/m13253/heif-hdrgainmap-decode?下載另外三個(gè)python工具。(如無法訪問,可以在網(wǎng)盤下載:https://pan.baidu.com/s/1SmSQ2fIa1QeWdH435nHvRg?pwd=6666?提取碼: 6666 ,包含了所用命令文件與及測試圖片)
heif-hdrgainmap-decode-scrgb.py?基于SRGB線性
heif-hdrgainmap-decode-y4m.py?基于BT.2100
heif-hdrgainmap-decode-aces.py?基于aces
用以合成EXR或者y4m格式
一般用戶如果不需要進(jìn)入調(diào)色軟件使用aces,基本上使用的多的就是前兩個(gè)命令。
同樣是將下載的命令與圖片放置于同一個(gè)目錄下,以第一個(gè)命令為例,在終端運(yùn)行
./heif-hdrgainmap-decode-scrgb.py IMG_0000.heic IMG_0000-urn_com_apple_photo_2020_aux_hdrgainmap.png IMG_0000.exr

這里導(dǎo)入的文件不是分離的兩張png,而是原始的heic與其中一張HDR增益的黑白圖片,并合成成EXR文件,合成的文件就是帶HDR的32bit的exr文件。合成的exr文件可以導(dǎo)入photoshop,在輸出32bit的tiff文件。由于photoshop只支持在ACR里導(dǎo)出avif,可以在ACR里開啟支持導(dǎo)入tiff文件,再將tiff文件導(dǎo)入后輸出avif。
如果采用的是第二個(gè)命令,合成的文件格式為y4m文件,Y4M 是 YUV4MPEG 格式,里面是未壓縮的 YCbCr 數(shù)據(jù),而不是 RGB 數(shù)據(jù)。可以使用以下命令合成y4m。
./heif-hdrgainmap-decode-y4m.py IMG_0000.heic IMG_0000-urn_com_apple_photo_2020_aux_hdrgainmap.png IMG_0000.y4m

同時(shí),可以直接使用以下命令把 Y4M 編碼成 AVIF 圖片:
avifenc --cicp 9/16/9 --min 1 --max 12 IMG_0000.y4m IMG_0000.avif

但是,這個(gè)程序輸出的 Y4M 是 12-bit 色彩,很多 AVIF 看圖軟件只能解碼 8-bit 或 10-bit 的圖片。 如果你遇到了這樣的情況,可以使用 FFmpeg 來把 12-bit Y4M 轉(zhuǎn)換為 10-bit Y4M:
ffmpeg -i IMG_0000.y4m -pix_fmt yuv444p10le -strict -1 IMG_0000-10bit.y4m

然后再用 avifenc 來編碼成 AVIF:
avifenc --cicp 9/16/9 --min 1 --max 12 IMG_0000-10bit.y4m IMG_0000.avif?

就可以得到一張10bit的avif圖片。
推薦可以使用ADOBE的一款HDR 圖片查看器來瀏覽檢測圖片:Gain Map Demo app
下載傳送門:
https://helpx.adobe.com/camera-raw/using/gain-map.html
有HDR環(huán)境的(HDR顯示設(shè)備+支持的HDR Avif的網(wǎng)絡(luò)瀏覽器 如:桌面版chrome)可以在http://home.hdr-nga.top:8881/articles/2023/05/18/1684412044914.html?
看到轉(zhuǎn)換后的HDR avif效果。
如果沒有可以在這里看視頻演示效果:
微博:
https://video.weibo.com/show?fid=1034:4902844818718811video.weibo.com/show?fid=1034:4902844818718811
視頻號(hào):HDR-NGA
這就是目前階段,把HDR Gain Map的圖片轉(zhuǎn)成通用格式的一個(gè)簡單流程,過程稍微有些折騰,希望后續(xù)有更成熟,更直觀的圖形化軟件實(shí)現(xiàn)這些轉(zhuǎn)換編碼過程。AVIF本身是一個(gè)擴(kuò)展性很強(qiáng)的格式,還可以支持做HDR動(dòng)圖,又或者帶透明通道的HDR圖片,如:
https://laichi.cc/article/avif-viewing-test#f9fe746a849141c6b7a6da4bc286de3elaichi.cc/article/avif-viewing-test#f9fe746a849141c6b7a6da4bc286de3e
有興趣一起交流探討相關(guān)HDR圖片視頻制作,HDR影音終端經(jīng)驗(yàn)資源交流,沉浸聲終端使用交流等問題可以添加我進(jìn)群,一起學(xué)習(xí)探討!
