ISP之LSC

                                                            ISP之LSC

1.1. 基本概念

1.1.1. What is Shading & Why Shading Correct?

鏡頭陰影(Shading)分爲亮度陰影(Lens Shading)和色彩陰影(Color Shading),簡單來說它們都是由鏡頭的光學特性所導致的圖像的亮度和色彩不均勻的現象。其中,Lens Shading是由於Sensor邊緣接受到的光線比sensor中心弱,從而造成了中心亮四周暗的現象(有的文檔也稱這種現象爲“漸暈”)。Color Shading是由於入射光中不同波長的光的折射率不同,導致入射光中不同波長的光落在感光器件的不同位置上,造成圖像的色彩不均勻的現象。Color Shading一般與鏡頭和sensor的CRA不匹配相關。

1.1.2. 影響因素:linearization

一般來說畫面局部偏色還可能與linearization相關,評估sensor時應關注sensor線性化的特性,部分DSP處理中也會在ISP pipeline的開始加入sensor linearization的矯正。

1.1.3. 影響因素:OB

部分國產sensor的性能較差,畫面邊緣的OB可能和中心不同(高溫下尤其明顯),如果OB僅整體扣除一個數值,反映到最終圖像效果上可能會造成lens shading或者color shading。

1.1.4. 影響因素:AWB

AWB並不會造成color shading,但是AWB會放大color shading的影響。

1.1.5. 影響因素:lens和sensor

Shading的根本影響因素是lens和sensor,物料選型時應注意sensor、lens的CRA匹配,sensor靶面大小與lens匹配。

1.2. 算法設計

1.2.1. ISP pipeline

Shading一般在OB和DPC的後面。額外注意,如果3A的統計數據在shading之後獲取,那麼shanding會影響3A的統計數據。

1.2.2. 矯正方法

Shading的矯正方法目前主流有兩種:一種是同心圓法,一種網格法。

同心圓法的流程爲:

1. 找到RGB三通道的圓心(一般選擇爲同一個點)

2. 以同心圓的形狀將畫面的中心和畫面的邊緣的三通道乘以不同的增益

具體如下圖所示,一般來說考慮shading漸變的曲率從中心到邊緣逐漸增大,所以等增益曲線中心稀疏,邊緣密集。一般來說lens shading的增益最好不要超過2倍,因爲會引入噪聲。

下圖爲mesh shading的矯正方法,同一個方格中的增益一致,mesh的分佈也是中心稀疏四角密集。

最後總結一下:同心圓矯正方法的優點是計算量小,缺點是鏡頭若裝配時稍有不對稱則矯正失敗;網格矯正方法的優點是能夠應對各種shanding情況,缺點是運算量大。

1.2.3. 聯動方式

Lens shading可不做聯動

Color shading可在三種色溫下進行差值

1.3. 調試方法

拍攝不同色溫的DNP,然後與目標值比較進行校正。

1.4. 測試方法

1.4.1. 客觀測試

1.4.1.1. 測試設備

平板光源(DNP),最好包含三個色溫(3000K\5000K\7500K)

如果沒有平板光源,拍攝白紙或者白牆也可以,但是測試精度會差。本人實測,即使是DNP均勻度也只有95%-98%,燈牆內壁的均勻度大約爲90%-95%。最不濟可以自行製作平板光源,需要非常注意隨着使用壽命增加光線不均勻的問題。

1.4.1.2. 測試標準

看各自喜好,有的手機廠商要求lens shading在80%以上,行車記錄儀或者安防攝像頭可適當降低。特別需要注意,如果鏡頭本身比較差,原始的lens shading爲30%,切記不可強行提升過多,因爲矯正shading的本質是增加圖像邊緣部分的增益,這樣低照度下會帶來非常大的噪聲。

有的手機廠商要求color shading的比值在0.9-1.1之間(一般來說R/B的color shading會偏差最大,但不可只測R/B),有的不要求。

1.4.2. 主觀測試

1. 拍攝灰牆或者白牆,觀察四角發暗的情況

2. 觀察圖像四角的偏色情況

3. 觀察圖像四周的跳動噪聲

 

 

FPGA ISP LensShading

關於LensShading 形成的原因, 參考資料衆多,這裏重點講解FPGA上如何實現Mesh LensShading。

首先,給出FPGA實現的系統框圖:

在算法設計時,對圖像採用分塊的方式,每個塊中包含一定數目的像素點,實際需要根據處理的分辨率來設計塊的大小,這個需要在資源和效果兩方面需要考慮:採用較小的塊均衡後效果會比較細膩,但是佔用大量偏上存儲資源保存係數;採用較大的塊均衡後效果可能比較粗糙,但是對偏上存儲資源要求低。
根據輸入像素點,分別在行方向和列方向計數,確定當前像素點所在的行塊、列塊的係數,拼接形成地址,用於索引係數LUT。同時,行計數、列計數在每個塊內會有一個局部的座標,用於索引行權重、列權重。所以FPGA會用到3張查找表,用於計算當前像素點的均衡係數。

如果所示,在對黃色的pixel進行均衡時,知道塊索引以後,可以得到當前像素點用於均衡的四個係數(保存於係數LUT),Weight coe1/2/3/4。同時知道黃色pixel在矩陣中相對位置,則可以根據雙線性插值原理,計算pixel對應的權重。

最後則可以完成對pixel的均衡。
理論上mesh的方式要優於radius的方式,sensor畢竟是矩形。另外,海思芯片的ISP也是推薦採用mesh shading的方式。
 

轉載自https://zhuanlan.zhihu.com/p/92164882

https://blog.csdn.net/wuyanbei24/article/details/104563633

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章