[閒聊] Halcyon,自己開發GPU加速的超快看RAW軟體

作者: jhangyu (jhangyu)   2026-09-13 21:17:07
由於市面上一直沒有好用,專門用來快速過片的看RAW軟體
很久以前買的Fastpicture Viewer,現在作者已經完全失蹤無法啟用
macOS買過幾套,Photo Mechanic最接近,速度夠快但UI難用,價格也很貴
而且對沒有內嵌全尺寸jpg的RAW就沒轍
剩下所有App都是用LibRaw那套緩慢的CPU解碼,讀圖超慢,切一張要等2~4秒
而且解出來的顏色超怪超灰
無奈之下年初只好決定自動開始動手「詠唱」一個出來
先從解碼kernel開始改造:
把LibRAW和Adobe DNG SDK後端的去馬賽克和光學校正的耗計算資源的步驟用halide重寫
以同時支援macOS的Metal,和Windows/Android/Linux支援的Vulkan
經過多次試錯後目前已經成功將沒有預覽內嵌的Sony ARW檔案解碼時間壓在73ms
然後再把kernel串進用Flutter寫的App UI
畫UI、定義資料流向、改記憶體調度策略,讓解碼過程儘可能沒有瓶頸
目前已經成功實現可以1秒解碼27-33張RAW檔 (檔案要放SSD,要不然讀取速度會變成瓶頸)
可以逼近某些軟體純讀JPG的顯示速度了!
App的長相如下:
https://bit.ly/3V8c0EQ
目前做的功能主要是快速篩選:
快速鍵可以按x標記要刪除的照片; 或是按s標記要特別複製的照片
然後可以按左下角的Action
將剛剛標記的照片"刪除"(Recycle模式是移動到".trash"資料夾)
或是移動到其他位置,或是匯出成其他尺寸和格式
https://bit.ly/4h1UEAP
同時也有快速EXIF批次重新命名的功能:
https://bit.ly/4xW7Hv0
也可以切換佈景主題:
https://bit.ly/3T7x9yr
最後是要特別注意的效能設定的地方:
由於解RAW真的很吃記憶體
一個RAW解壓後48mb-> 展開成RGB三層*3 -> 一個解碼槽基本上需要 48*(1+3) = 192mb
所以目前App預設平行解碼數為2 預估解碼時所需峰值記憶體為800m~1G
解碼完會自動吐回
https://bit.ly/46nJTUF
如果記憶體夠,想要更快的解碼速度可以自己改成4或是8
不過可能尖峰會用到4~5G記憶體就是,要特別小心
主要功能大致就是這樣,把挑片的核心功能做到最快
希望能幫到一些常常需要過片挑片的攝影師們~
如果想要閱讀其他細節可以看這裡:
https://github.com/jhangyu/halcyon/blob/main/README.zh-TW.md
我就不在這邊多廢話了
下載的話可以直接從Release這邊下載最新版
https://github.com/jhangyu/halcyon/releases
同時支援Windows/macOS(x64+arm)/Linux
(因為沒有買Apple開發者簽名, 使用macOS的大大要記得去隱私那邊設定強制打開)
未來有打算再增加編譯Windows Arm和Linux的Arm架構
至於手機端的話...是有設計UI了
但...應該沒什麼人會用手機挑RAW吧?
之前測試Android即使有用GPU解碼一張似乎也要500ms(半秒)
可能之後有機會有需求再做吧~
希望大家可以試用看看!
我會繼續想想怎麼最佳化記憶體的~
作者: sapporo1075 (阿榮)   2026-09-13 22:33:00
Apple M2 Max 顯示未預期的結束,無法使用。
作者: Jokering5566 (揪客56)   2026-09-14 02:32:00
厲害,明天來試試,raw 的預覽真的好慢,你這個有解決痛點
作者: n61208 (Kershaw)   2026-09-14 05:03:00
快速看RAW我都用免費開源的Honeyview
作者: keepgoingKH (Go Go power laser~)   2026-09-14 10:14:00
好厲害!先推
作者: victoryuy (Victor)   2026-09-14 10:48:00
我也是用honeyview 感謝開發新程式
作者: jhangyu (jhangyu)   2026-09-14 11:22:00
Honey之前好像對無內嵌jpg raw沒轍?還是他後來改了?
作者: n61208 (Kershaw)   2026-09-14 12:03:00
他有出2.0版本 但不確定有沒有無jpg raw預覽
作者: user1120 (使用者)   2026-09-14 17:53:00
作者: Taichun318 (淡藍色的雙魚)   2026-09-14 22:58:00
作者: helixc (@_2;)   2026-09-14 23:35:00
翡翠 有鳥就給讚
作者: a2316574 (Dewa)   2026-09-15 01:18:00
honeyview已經停止開發了,開發商現在推的是免費/買斷並行的BandiView
作者: CGary (下雨天也挺浪漫的)   2026-09-15 02:28:00
多謝 輕量的軟體對我這種不希望app很肥的人很友善
作者: andy199113 (Andy)   2026-09-15 02:30:00
太猛了吧 厲害
作者: diablohinet   2026-09-15 08:38:00
買斷了BandiView 但開HEIF還是感覺有點慢 不知道是不是因為我電腦太爛的關係
作者: jhangyu (jhangyu)   2026-09-15 10:32:00
HoneyView我自己試還是CPU解碼 速度不快如果不滿意軟體外殼的可以自己Fork後接我的ceyx解碼核心專案介面參數都是完整的FFI另外我有把目前所有常見的圖片解碼器都包進去了HEIF, WebP, AVIF, JPEG XL全部都能解
作者: steward68   2026-09-15 12:49:00
太神啦~快速看Raw的軟體 Adobe Bridge可以算嗎?
作者: jhangyu (jhangyu)   2026-09-15 14:44:00
Bridge應該和快速扯不上邊XD切照片都要一秒多
作者: n61208 (Kershaw)   2026-09-15 16:23:00
Bandiview呢?
作者: Ryder011186 (Ryder Weng)   2026-09-16 09:19:00
試了一下,Nikon的高效率壓縮RAW檔還是沒辦法正常解碼查看(D750&Z6III),不過還是感謝神人大大願意花時間開發這個工具來造福大家~
作者: s88388 (今天的熱情很清涼)   2026-09-16 12:45:00
M1 max 用 bridge 比較快
作者: yoyohu   2026-09-17 06:00:00
我win10 無法使用 nef arw都顯示無法讀取不支援
作者: a2316574 (Dewa)   2026-09-17 17:05:00
Nikon以前官網有提供NEF Codec解碼器,安裝後就可以預覽,但不知道為什麼後來移除掉了。我這邊有以前下載的備份,用mega 上傳,需要請自用https://reurl.cc/MWW58X補充一下,我的環境是Z8+Bandiview付費版,高壓縮raw,可正常使用
作者: jhangyu (jhangyu)   2026-09-18 18:31:00
不能解的話我看一下codec,我移植進去如果有NEF sample檔案可以提供測試就更好了
作者: Derp (Heisenderp)   2026-09-18 21:27:00
跪爛
作者: sachen0325 (inDream.tw )   2026-09-20 12:38:00
太優秀了
作者: n61208 (Kershaw)   2026-09-21 10:07:00
不曉得為什麼,一樣是同一台相機的RAF檔有點能開啟有的不能開啟另外星標的檔案該怎麼匯出呢?
作者: jhangyu (jhangyu)   2026-09-21 12:15:00
有不能開啟的檔案嗎?我試試匯出是在左下角的設定按鈕那邊按Move或是Export喔另外Nikon HE/HE*解碼我做好了之後會和一個減少記憶體用量的解碼策略一起釋出
作者: n61208 (Kershaw)   2026-09-21 23:33:00
對 然後也有一個資料夾只能顯示一張照片的狀況https://i.verb.tw/tKGvXtUw.jpg
作者: jhangyu (jhangyu)   2026-09-22 07:29:00
可以分享開不了的RAF檔案給我嗎?讓我複製一下bug是怎麼觸發的
作者: n61208 (Kershaw)   2026-09-22 13:14:00
私訊過去了
作者: yoyohu   2026-09-22 23:19:00
要去哪裡生error log呢 然後win def還說heif.dll有Trojan:Win32/Bearfoos.A!ml 我要允許他執行嗎v1.0.11 win10依舊無法讀取各家的raw 只能讀jpg DNG.hif照片也無法讀 folder那邊完全看不到東西

Links booklink

Contact Us: admin [ a t ] ucptt.com