昨天的攝影留下的待辦是取得 Hao 等人論文的 Table II 與 Table III,今天拿到了,結果推翻昨天兩句話。PDF 的表格是點陣圖,文字抽取只有標題,我把第 9、10 頁渲染成圖片逐格讀,再把 Table III 的 24 列乘 11 欄全部轉成數字,用論文自己的定義 10·log10(平均 MSE) 重算每一欄的平均,十一欄全部與原表差不到 0.01 dB,所以轉錄可信。第一,昨天寫「論文沒有測補色圖樣」不對:圖 7 與圖 8 的 2×2 與 4×4 新圖樣,十六格裡有十四格是青、黃、洋紅的半透明混色,只是每格透光量總和仍然被釘在 1。第二,「CFA4b 平均最高」成立,但領先 HWpA 的幅度是 0.034 dB,逐張配對 13 勝 11 負,拿掉第 4 或第 15 張影像排名就會翻;論文說 Condat 低於新圖樣,對 CFA4a 簡單平均版只差 0.02 dB,而且逐張是 Condat 贏 13 張、輸 10 張。第三,Table II 的範數 P3 指標在六類圖樣上與無雜訊畫質呈正相關,不是負相關,所以 Table III 完全沒有檢驗 P3;而 Condat 論文的有雜訊表顯示,三種設計裡範數最小的 Bayer 在 σ=10 與 σ=20 都是最差的。
📖 學
一、Table II 的原樣,以及我能重現的部分
Table II 列五個量:亮度與色度載波的最小距離、色度之間的最小距離、重複色度的個數(同一個色度在頻譜中出現幾次)、解多工矩陣 的 2 範數與 Frobenius 範數。照原表抄錄,最後加一列我算的 。
| Bayer | Sony | 斜條紋 | HWpA | Condat | CFA4a/4b | |
|---|---|---|---|---|---|---|
| 亮度–色度最小距離 | 0.5π | 0.5π | 0.471π | 0.559π | 0.601π | 0.559π |
| 色度–色度最小距離 | 0.5π | 0.5π | 0.471π | 0.25π | 0.333π | 0.25π |
| 重複色度個數 | 2 | 1 | 1 | 2 | 1 | 4 |
| 2.828 | 2 | 1.732 | 4.899 | 3 | 5.657 | |
| 3.742 | 3.303 | 3 | 6.708 | 4.583 | 6.782 | |
| (我算) | 14.0 | 10.9 | 9.0 | 45.0 | 21.0 | 46.0 |
論文第 5 節 B 小節給了 CFA4a 與 CFA4b 的多工矩陣(式 23):,,各列依序是亮度、兩個色度,各欄依序是三個原色。取反矩陣 ,兩者的 都是 5.657、 都是 6.782,與 Table II 逐位吻合。Bayer 的 論文沒有印出來,我用 (亮度加兩組色度)算出 2.828 與 3.742,同樣吻合,所以我推論 Table II 的 Bayer 用的就是這個矩陣;這是由數字吻合得到的推論,不是論文明寫。
反矩陣有一個直接可讀的結構:三個圖樣的亮度那一欄能量完全一樣,都是 3.000(Bayer、CFA4a、CFA4b 的 第一欄是 (1,1,1))。所以 的差全部來自色度欄:Bayer 是 8 加 3 等於 11,CFA4 是 32 加 11 等於 43,總和 14 對 46。這正是昨天「P3 範數最小不等於雜訊放大最小」的具體內容:光量預算固定為 1 時,亮度雜訊放大在三種圖樣上完全相同,差異只在色度,而色度在實際流程裡會被低通。
順帶一個細節:論文第 5 節 A 小節的 2×2 設計範例,式 (21) 的 (第三列第一個符號因換行在抽取文字裡讀不清,但符號不影響範數)算出 ,即 ,比 Bayer 的 14 大得多,亮度欄能量也是 12。這個範例的最佳化是在「色度頻率位置 (0, 0.5) 設為零」這個先選好的頻率結構之內做的;Bayer 的結構不同(同一個色度重複兩次),所以「最佳」只對該結構成立。這個 2×2 圖樣沒有進入 Table III 的實驗。
二、圖 7 與圖 8:「補色」其實就在裡面
昨天我寫「約束加總為 1 排除了每格總透光量為 2 的補色 Bayer,論文也沒有測補色」。圖 7 與圖 8 的格子顏色推翻了後半句。先驗證 2×2:式 (17) 至 (19) 的約束是三個原色圖樣加總為全 1 矩陣,式 (18) 的三個等式與式 (19) 的非負不等式,取式 (20) 的最佳解頂點 (0,−1)、(−1,0)、(1/2,1/2),解 、、 得 。代回式 (17),三個原色圖樣為 是 [[1,0],[.5,.5]]、 是 [[0,.5],[.5,0]]、 是 [[0,.5],[0,.5]],逐格相加四格都是 1,圖樣即式 (22):[[$C_3$, ($C_1{+}C_2$)/2],[($C_1{+}C_3$)/2, ($C_2{+}C_3$)/2]]。圖 7(a) 令 ,印出來是 B、Y / M、C,與式 (22) 一格對一格相符:黃是 (R+G)/2、洋紅是 (R+B)/2、青是 (G+B)/2。
再驗證 4×4。圖 8(a) 的 CFA4a 十六格逐格數:R 一格、G 一格、青四格、黃六格、洋紅四格。若這些字母像圖 7 一樣代表混色,各原色的平均透光率是:R 為 (1 + 6×0.5 + 4×0.5)/16 = 6/16,G 為 (1 + 4×0.5 + 6×0.5)/16 = 6/16,B 為 (4×0.5 + 4×0.5)/16 = 4/16,即 3/8、3/8、2/8,與 的亮度列 (3, 3, 2)/8 完全相同,因為亮度列正是各原色圖樣的直流分量。CFA4b(B 一格、G 一格、黃四格、青六格、洋紅四格)同樣算出 2/8、3/8、3/8,對上 的亮度列。兩個吻合足以讓我確認圖中的青黃洋紅是半透明混色,不是三原色之外的另一組濾片。
所以準確的說法是:Hao 的新圖樣在色相上幾乎全是補色圖樣,但每格總透光量被正規化為 1。一格「青」是 (0, 1/2, 1/2),只有真正青色濾片(綠加藍各接近 1,總量約 2)的一半光。論文給的理由是「讓每個像素的動態範圍相同」(第 3 頁與第 5 頁原文:to ensure the same dynamic range of the sensed image at each pixel),不是光量預算,也沒有一句談雜訊。圖 1 的說明只寫 (m) 與 (n),即 Hirakawa 與 Wolfe 的圖樣和 Condat 的圖樣,是「原色的非平凡混合」。我在 14 頁文字抽取中搜尋 normal、scal、transmi、noise,沒有任何一句交代怎麼把總透光量 1.5 的這兩種濾片放進加總為 1 的框架;公式在抽取中全部遺失,所以這個否定結論只針對正文文字,昨天的待辦第一項因此仍是「未確認」,但答案縮小為「得看技術報告」。
三、Table III 重算:平均值、勝負與排名的穩固程度
Hao 的平均是 10·log10(24 張平均 MSE);Condat 論文的 Mean 列則是 24 個 dB 值的算術平均(我用他的 Table I 重算:五欄依序 39.637、39.582、39.018、40.360、40.106,與原表四捨五入一致)。兩種平均差很多:同一張 Table III,Bayer 自適應版是 38.66(MSE 平均)對 39.47(算術平均)。昨天我寫「兩篇數字不能互比」,原因之一就是這個,今天可以明說:Hao 的 Bayer 38.66 與 Condat 的 Bayer 39.64 是不同平均、不同演算法、不同裁邊(Condat 忽略邊緣 10 像素寬;Hao 的正文文字我搜尋 border、crop 沒找到裁邊說明)的數字。
| 欄位 | MSE 平均(原表) | 算術平均(我算) |
|---|---|---|
| Bayer naive / Adapt | 37.35 / 38.66 | 38.26 / 39.47 |
| Sony、斜條紋 | 36.99、36.99 | 37.78、37.86 |
| HWpA naive / Adapt | 39.35 / 39.38 | 40.08 / 40.12 |
| Condat | 38.93 | 39.80 |
| CFA4a naive / Adapt | 38.95 / 39.23 | 39.72 / 40.01 |
| CFA4b naive / Adapt | 39.25 / 39.42 | 40.04 / 40.21 |
兩種平均下排名大致一致,但 Condat 與 CFA4a naive 對調:MSE 平均 38.926 對 38.947(新圖樣贏 0.02 dB),算術平均 39.80 對 39.72(Condat 贏 0.08 dB)。逐張配對(數字為「前者減後者」的逐張 dB 差,t 值為配對差的平均除以標準誤;24 張不是隨機樣本,t 值只當粗略指標):
| 比較 | 勝 / 負 | 平均差 dB | 標準誤 | t |
|---|---|---|---|---|
| CFA4b Adapt 對 Bayer Adapt | 19 / 5 | +0.74 | 0.16 | 4.52 |
| HWpA Adapt 對 Bayer Adapt | 19 / 5 | +0.64 | 0.18 | 3.59 |
| CFA4b naive 對 Bayer Adapt | 17 / 7 | +0.57 | 0.17 | 3.34 |
| Condat 對 Bayer Adapt | 20 / 4 | +0.33 | 0.13 | 2.53 |
| CFA4a naive 對 Bayer Adapt | 15 / 9 | +0.25 | 0.13 | 1.98 |
| CFA4b Adapt 對 HWpA Adapt | 13 / 11 | +0.09 | 0.11 | 0.89 |
| CFA4a naive 對 Condat | 10 / 13(另 1 張平手) | −0.08 | 0.09 | −0.87 |
論文說 CFA4a 與 CFA4b 的簡單平均版「在平均與多數影像上勝過 Bayer-Adapt」:CFA4b naive 17 勝 7 負成立,CFA4a naive 15 勝 9 負成立但證據薄(t 約 2)。「CFA4b 最高」:與 HWpA Adapt 的差是 0.034 dB(MSE 平均)或 0.09 dB(逐張平均),在標準誤 0.11 之內;留一法檢查,拿掉第 4 或第 15 張影像,CFA4b 與 HWpA 的順序就翻轉。Condat 對 CFA4a naive 拿掉第 5、13 或 17 張,順序也翻轉。24 張裡最高分的欄位分布是 HWpA Adapt 8 張、CFA4b Adapt 6 張、Condat 6 張、CFA4a Adapt 3 張、CFA4b naive 1 張,沒有任何設計通吃。MSE 平均還有另一個性質:Bayer Adapt 的總 MSE 有 10.5% 來自第 24 張、9.8% 來自第 13 張、9.4% 來自第 8 張,前三張占 29.7%,低分影像主導了這個平均。
四、P3 範數與畫質:兩張表都沒有支持它
P3 說解多工矩陣範數越小越好,動機是減少誤差放大。把 Table II 的範數與 Table III 的畫質並排:六種圖樣取最佳演算法版本的 MSE 平均 CPSNR,Bayer 38.66、Sony 36.99、斜條紋 36.99、HWpA 39.38、Condat 38.93、CFA4b 39.42。把 與它做 Spearman 等級相關(Sony 與斜條紋視為平手),結果是 +0.99,正相關:範數越大畫質越好,斜條紋與 Sony 範數最小(9.0、10.9)畫質最差,新圖樣範數最大(46.0)畫質最高。這不代表大範數有益,論文自己也警告範數會隨圖樣週期與色度個數增加,不可直接比;它只代表在無雜訊的 CPSNR 下,範數量到的是「色度數量」而不是畫質。等級相關在樣本數只有 6 的情況下只能當描述,不能當證明。
同樣的檢查套到 P1 的另一半,色度之間的最小距離(越大越好):等級相關是 −0.85,贏家 CFA4 與 HWpA 都是 0.25π、最小,輸家 Bayer 與 Sony 是 0.5π。亮度–色度距離的相關是 +0.76,重複色度個數是 +0.78。換句話說,Table III 能支持的只有 P2(重複色度,配合自適應加權)與 P1 的「離開亮度」那一半;論文自己的解釋也是這樣:Bayer 自適應比 naive 多 1.31 dB(38.66 減 37.35),HWpA 只多 0.03 dB(39.38 減 39.35)。
五、Condat 的有雜訊表,對照昨天的預測
昨天用光量預算把雜訊帳寫成:讀出雜訊極限下,色度保留 1/9 頻寬時,各設計相對 Bayer 的雜訊功率比,Hirakawa 是 0.673(低 1.72 dB)、Condat 是 0.594(低 2.26 dB)。今天可以拿真資料對:Condat 論文 Table II 是 24 張 Kodak 影像加高斯雜訊後,聯合去馬賽克與去雜訊(BM3D 去亮度雜訊)的 CPSNR,我用表內逐列數字重算 Mean 列,與原表一致。
| 加雜訊標準差 | Bayer | Hirakawa | Condat | Hirakawa 減 Bayer | Condat 減 Bayer | Condat 減 Hirakawa |
|---|---|---|---|---|---|---|
| σ=10 | 32.63 | 33.99 | 34.15 | +1.36 | +1.52 | +0.16 |
| σ=20 | 29.63 | 30.77 | 30.98 | +1.14 | +1.35 | +0.21 |
σ=10 時 Hirakawa 與 Condat 在 24 張上都全勝 Bayer(最小差 0.51、0.79 dB,最大 2.33、2.42 dB),Condat 對 Hirakawa 贏 23 張;σ=20 時 Condat 對 Hirakawa 24 張全贏。方向與順序和昨天的預測一致(Condat 勝 Hirakawa 勝 Bayer),幅度比預測小 0.4 至 0.9 dB(預測 1.72 與 2.26,實測 1.36 與 1.52 於 σ=10;1.14 與 1.35 於 σ=20)。我不能把這個差距歸給模型誤差:實測流程含 BM3D,亮度雜訊被削掉一大塊,而我的模型是不去雜訊的線性放大,兩者本來就不是同一個量。能說的只有:光量預算加色度低通這個定性結構,預測對了方向與順序。反過來,P3 的範數順序(Bayer 14 最小,Condat 21,HWpA 45)與實測相反,只有 Condat 優於 HWpA 這一對是對的。
還有一條曲線:Condat 減 Hirakawa 在無雜訊是 −0.25 dB(Table I,Condat 40.11、Hirakawa 40.36),σ=4 是 +0.02(正文給 37.60 對 37.58),σ=10 是 +0.16,σ=20 是 +0.21。線性內插,翻轉點約在 σ=3.7(粗略估計:σ=0 與 σ=4 兩點取自不同流程,前者沒有去雜訊步驟)。這個 σ 的意義:在 0–255 範圍內雜訊 σ=4 對應單獨雜訊的 PSNR 為 20·log10(255/4)=36.1 dB,σ=10 為 28.1 dB,σ=20 為 22.1 dB;Condat 圖樣無雜訊的均方根去馬賽克誤差,由 Table I 24 張 MSE 平均算出約 2.7 灰階(39.4 dB)。也就是說,雜訊強度與去馬賽克自身誤差同一量級的時候,排名開始翻轉。這是量級對照,不是推導。
六、更正與仍未解決
- 昨天「補色 Bayer 在散粒雜訊主導時多 1.76 dB」只在色度完全不低通成立,昨天已改;今天再補一條:Hao 的新圖樣本身就是色相補色、透光量 1 的設計,和昨天算的 L=2 補色 Bayer 不是同一個東西,光量預算帳不可混用。
- Lu 與 Vetterli 2009 年的 SPIE 論文(Proc. SPIE 7250,Digital Photography V,725009)我只取得摘要:把 CFA 取樣視為編碼、去馬賽克視為最佳解碼,找資訊損失最小的 CFA;摘要沒有提雜訊。全文沒取得,所以「有沒有把雜訊納入最佳化」仍未確認。
- Hao 把 HWpA 與 Condat 放進加總為 1 的框架時有沒有重新縮放,正文沒寫。若它們是以 1.5 縮成 1 後算範數(未確認), 會縮小為 1/1.5, 縮為 1/2.25:HWpA 由 45.0 變 20.0、Condat 由 21.0 變 9.33,Condat 才會低於 Bayer 的 14。這只是條件式的算術。
🧠 記
表格比正文誠實,但排名要連同平均定義與逐張勝負一起記。 Hao 的 CPSNR 是 10·log10(平均 MSE),Condat 是 dB 的算術平均,同一張表差 0.8 dB;CFA4b 領先 HWpA 0.034 dB,逐張 13 勝 11 負,拿掉一張影像就翻轉。
Hao 的新圖樣是補色相、總透光量 1 的設計。 CFA4a 十六格裡只有一格純 R、一格純 G,其餘 14 格是 C、Y、M 的半透明混色,平均透光率驗算為 3/8、3/8、2/8。
P3 的範數在六種圖樣上與無雜訊畫質正相關(+0.99),在 Condat 的有雜訊表裡也與贏家相反(Bayer 範數最小卻最差)。 範數量到的主要是色度數量;亮度那一欄在 Bayer 與 CFA4 都是 3。
有雜訊時 Condat 優於 Hirakawa,無雜訊時相反。 差距由 −0.25 dB(無雜訊)變成 +0.02(σ=4)、+0.16(σ=10)、+0.21(σ=20);翻轉點約 σ=3.7。
✍️ 實踐
用 numpy 重現 Table II,再改一個參數看光量預算怎麼進範數。 這個練習 15 分鐘做完,需要 Python 與 numpy。
- 建三個矩陣,算反矩陣與範數:
import numpy as np
T4a = np.array([[3,3,2],[1,-1,0],[1,1,-2]]) / 8
Tby = np.array([[1,2,1],[1,0,-1],[-1,2,-1]]) / 4
for T in (T4a, Tby):
D = np.linalg.inv(T)
print(np.linalg.norm(D, 2), np.linalg.norm(D, 'fro'), (D**2).sum(0))預期:CFA4a 印出 5.657、6.782 與欄能量 3、32、11;Bayer 印出 2.828、3.742 與欄能量 3、8、3。
- 把
T乘上 2(模擬每格總透光量從 1 變 2),再印一次,確認範數除以 2、 除以 4。這就是昨天 的來源。 - 驗算圖 8(a):數字母(R 1、G 1、C 4、Y 6、M 4),用混色等於半半的規則算三原色平均透光率,預期 6/16、6/16、4/16。
先預測再算:步驟 2 之後,CFA4a 的 應該是 11.5(46 除以 4);若不是,先檢查 T 有沒有整個乘上去,而不是只乘第一列。
明天的待辦: 取得 Hao 等人的技術報告 RR-08-03(Li、Hao、Lin,《Color filter arrays: A design methodology》,Queen Mary,2008 年 5 月,Condat 論文的參考文獻 17 號列出),核對 HWpA 與 Condat 圖樣進入加總為 1 框架時有沒有重新縮放;並檢查 Condat 的 Matlab 程式(作者首頁提供)能否在 σ=0 到 10 之間跑出翻轉點,與今天內插的 3.7 對照。
🔗 延伸學習
- A Geometric Method for Optimal Design of Color Filter Arrays(Hao、Li、Lin、Dubois,全文 PDF) — 今天的主要來源:Table II、Table III、圖 7 與圖 8、式 (17) 至 (23) 都在第 8 至 10 頁;表格是點陣圖,需要看圖。
- A New Color Filter Array With Optimal Properties for Noiseless and Noisy Color Image Acquisition(Condat 預印本) — 第 7 至 9 頁的 Table I(無雜訊)與 Table II(σ=10 與 20)是第五節對照的資料,附帶有 σ=4 的平手結果。
- Optimal color filter array design: quantitative conditions and an efficient search procedure(Lu、Vetterli,SPIE 7250) — 今天只取得摘要頁的內容,全文未取得。
💬 問 AI
我讀了 Hao、Li、Lin、Dubois 2011 年 IEEE TIP 20(3):709–722 的 CFA 設計論文與 Condat 2011 年 IEEE TIP 的 CFA 論文,有以下發現與推論,請嚴格分成三類並逐條標示:「論文或文獻明確寫的」、「你查證到的(附出處)」、「你自己的推論」;查不到就直接說查不到,不要補。
我讀到的:(1)Hao 論文的 CFA4a、CFA4b 是 4×4 圖樣,多工矩陣 T_CFA4a = [3 3 2; 1 -1 0; 1 1 -2]/8,T_CFA4b = [2 3 3; 0 -1 1; -2 1 1]/8;反矩陣的 2 範數 5.657、Frobenius 範數 6.782,與 Table II 吻合;(2)Table III 平均 CPSNR 是 10·log10(平均 MSE),CFA4b Adapt 39.42、HWpA Adapt 39.38,逐張配對 13 勝 11 負;(3)Condat 論文 Table II 在 σ=10 時 Bayer 32.63、Hirakawa 33.99、Condat 34.15(算術平均,聯合去馬賽克與 BM3D 去雜訊)。
我的推論:圖 8 的 C、Y、M 格是原色的半半混色(每格透光量總和為 1),理由是平均透光率驗算為 3/8、3/8、2/8,與 T 的亮度列吻合;P3 的範數越小越好,但在六種圖樣上與無雜訊畫質的等級相關為 +0.99。
請回答:
1. 圖 8 的字母代表混色(每格總透光量 1),而不是真正的 C、M、Y 濾片(總量約 2),這個讀法對嗎?論文或作者的技術報告 RR-08-03 有沒有明說?
2. Hao 把 Hirakawa 與 Wolfe 的 HWpA 與 Condat 圖樣放進「加總為 1」框架時有沒有重新縮放?若縮放,Table II 的範數(HWpA 6.708、Condat 4.583)是縮放前還是縮放後?
3. 有沒有同行審查文獻直接檢驗解多工矩陣範數與有雜訊畫質的關係?
4. Condat 無雜訊時略輸 Hirakawa、有雜訊時反超,翻轉點約 σ=3.7 的內插估計,合理嗎?它是否與去雜訊流程有關?
每一點請說明你的把握程度。