天天看點

ISP—圖像調試實習生(第14天)

ISP—YUV Sharpen調試

實習的第13天,由于傍晚事請太多,沒有來得及去寫部落格,就簡單叙說吧,昨天把新拿到一個海思3516EV300晶片,用到的是Sony的sensor,然後把RAW圖抓取,黑電平校準、AWB以及CCM重新複習了一邊,操作的具體流程請看前幾期部落格。今天主要是對于YUV Sharpen這塊的參數進行介紹,以及調試當中存在的一些問題。

檢視目前時刻,sensor的感光度ISO,在越黑的情況下,ISO的感光度越大,在明亮的情況下,ISO的感光度較小。

ISP—圖像調試實習生(第14天)

Sharpen 子產品用于增 強 圖像的 清晰 度,可以 實作 對圖像的 帶 方 向 的 邊緣 和 無 方 向 的細節紋理 的單 獨 銳化 增 強 ,而 且 , 通 過調節所要增 強 的 頻 段 ,可以 實作多種清晰 度 風 格 的 增 強效果 。此 外 , 還 能 控 制 銳化後 的圖像的 overshoot ( 白邊白點 )和 undershoot ( 黑 邊黑點 )。增 強 圖像的 清晰 度的同時,不可 避免 的會增 強噪 聲, 通 過調節 sharpen 子產品 的相關參數, 也 可以 抑 制 噪 聲的增 強。

ISP—圖像調試實習生(第14天)

上圖為YUV Sharpen子產品的系統框圖

參數介紹

ISP—圖像調試實習生(第14天)

SkinUmin:膚 色 區域範圍 矩 形 窗 的 左 下 角 的最小 坐 标的 U 值

SkinVmin:膚色區域範圍矩形窗的左下角的最小坐标的 V 值

重點:

EdgeFiltStr:邊緣濾波強度調試參數:實作圖像銳化邊緣的範圍 和邊緣平滑強度的控制。該值越大,判為邊緣的區 域越多、也越寬,EdgeStr 起作用的圖像邊緣就越 多,而且,該值越大,沿着邊緣方向的平滑濾波強 度也越大,邊緣就越平滑。反之,判為邊緣的區域越少、也越窄,EdgeStr 起作用的圖像區域越少,邊緣平滑就越弱。

EdgeFiltMaxC:邊緣濾波強度範圍的調試參數:該值越大,邊緣濾波的最大強度也最大,u8EdgeFiltStr 的可調試範圍也越大;一般建議該值大小控制 30 以内。取值範圍:[0, 47];建議值 18。

TextureFreq:圖像的無方向細節紋理的增強頻段控制。設定圖像的細節紋理增強的頻率。該值越大,細節紋理的增強就越偏向于高頻增強,細節紋理就越細碎。反之,該值越小,細節紋理就越粗越圓潤。u16TextureFreq 對應于強度參數 u16TextureStr。u16TextureFreq 越大,圖像的細節紋 理就越細碎,該值過大,會導緻圖像的細節紋理過于細碎而不自然,甚至感覺模糊。

EdgeFreq:圖像的帶方向的邊緣的增強頻段控制。設定圖像邊緣增強的頻率。該值越大,邊緣的增強就越偏向于高頻增強,圖像的邊緣就越纖薄越窄。反之,該值越小,邊緣就越粗越圓潤。u16EdgeFreq 對應于強度參數 u16EdgeStr。u16EdgeFreq 越大,圖像的邊緣就越纖薄越窄,該值過大,會導緻圖像的邊緣過于纖薄而出現虛邊現象。

OverShoot:設定圖像的 overshoot(銳化後的白邊白點)的強度。該值越小,銳化後的白邊白點越弱,清晰度也會下降。該值過小,圖像會呈油畫效果。

UnderShoot:設定圖像的 undershoot(銳化後的黑邊黑點)的強度。 該值越小,銳化後的黑邊黑點越弱,清晰度也會下降。該值過小,圖像會呈油畫效果。

ShootSupStr:圖像銳化後的 overshoot 和 undershoot 的抑制強度。用于在保證清晰度不明顯下降的前提下,抑制銳化後的圖像的 overshoot 和 undershoot 的寬度和幅度。該值越大,銳化後的圖像的 overshoot 和 undershoot的寬度越窄、強度越小。該值變大,理論上不會影響圖像的清晰度,隻是黑白邊變窄以後,會減弱人眼的銳度感受。該參數需要和 ShootSupAdj 配合使用。

ShootSupAdj:圖像銳化後的 overshoot 和 undershoot 的抑制強度的調節。該參數配合 ShootSupStr 使用,用于調節ShootSupStr 作用的區域範圍。該值越小,則越多的紋理區域的 shoot 會被 ShootSupStr 抑制;該值越大,則隻有很強的邊緣的 shoot 會被 ShootSupStr 抑制,紋理區域的 shoot 不會被抑制。

DetailCtrl:圖像的細節紋理區的 shoot 強度的控制。用于控制圖像的細節紋理區域的 shoot 強度,shoot 越大,細節紋理區的清晰度越高。取值範圍:[0, 0xFF]。該值等于 128,則圖像的細節紋理區域的 shoot 強度和大邊緣的 shoot 強度一緻, 都分别等于 u8OverShoot 和 u8UnderShoot。該值大于 128,則圖像的細節紋理的 shoot 強度大于大邊緣,大邊緣的 shoot 強度分别等于 u8OverShoot 和u8UnderShoot。該值小于 128,則圖像的細節紋理的shoot 強度小于大邊緣,大邊緣的 shoot 強度分别等于 u8OverShoot 和 u8UnderShoot。

DetailCtrlThr:圖像的細節紋理區的 shoot 強度的控制門檻值。該值配合 DetailCtrl 使用,用于區分 DetailCtrl 所控制shoot 的紋理區和邊緣,也即紋理區和邊緣的區分門檻值。小于該值的區域為紋理區,該紋理區域的 shoot會被 DetailCtrl 單獨控制,而大于該門檻值的邊緣區域的 shoot 依然等于 u8OverShoot 和 u8UnderShoot。取值範圍:[0, 0xFF],建議值 160。

RGain:深紅色區域的銳化增益控制。該值越大,則深紅色區域的銳化強度越大。取值範圍:[0, 31];建議值 28。

GGain:綠色區域的銳化增益控制。該值越大,則綠色區域的銳化強度越大。取值範圍:[0, 255];建議值 32。

BGain:深藍色區域的銳化增益控制。該值越大,則深藍色區域的銳化強度越大。取值範圍:[0, 31];建議值 28。

SkinGain:膚色區域的銳化增益控制。該值越大,則膚色區域的銳化強度越大。取值範圍:[0, 31];建議值 23。

MaxSharpGain:圖像銳化的最大增益限制值。該值越大,圖像的銳化幅度越大,反之,銳化幅度越小。适當的調小該參數,可以減少圖像的過銳化,可以減少圖像銳化後的黑白點。取值範圍:[0, 0x7FF],建議值 160。

WeakDetailGain:對弱紋理單獨進行銳化的增益控制。該值等于 0,圖像弱紋理和圖像其他區域的銳化程度相當,該值越大,圖像弱紋理的銳化程度越大,當該參數過大,可能帶來白邊加重甚至虛邊的副作用。取值範圍:[0, 127],建議值 0。

TextureFreq VS EdgeFreq

TextureFreq :主要影響的是圖像中的細節問題,是無方向的。

EdgeFreq:影響的是圖像的邊緣部分,是具有一定方向性的。

TextureFreq 越大,會導緻圖像中出現大量的噪聲,但是影響圖像的邊緣部分較小。

ISP—圖像調試實習生(第14天)

EdgeFreq越大,在圖像中會出現波紋現象

ISP—圖像調試實習生(第14天)

調試步驟

  auto 檔時, Sharpen 的所有參數 都 會 跟 ISO 聯 動 , 也即 ISO 變化 , Sharpen 各參數的強 度 也 會 随 之改 變 。 Sharpen 在 auto 檔的參數 都 根據 ISO 分了 16 檔, 兩 檔 ISO 之 間的 Sharpen 強 度是 線 性 插 值計算 得到。 ISO 越 大 ,圖像的 噪 聲 越 大 ,圖像的細節 紋理 越 不

清晰 ,對圖像增 強 就 會增 強噪 聲, 也 更容 易 産 生黑白點 的 shoot ( 沖 激噪 聲)。是以, 不同的 ISO 場景 下, sharpen 的各個調試參數 設定 都 會有 差别 。

  1. 調試圖像的整體銳度:通過調節 TextureStr 和 EdgeStr 來設定圖像整體的銳度。 TextureStr 決定了圖像的無方向細節紋理區域的銳度,增大 TextureStr 能夠增強無方向的細節紋理的清晰度,比如提高草地毛發等細節紋理的清晰度。EdgeStr 決定了圖像的帶方向的邊緣的銳度。
  2. 調節細節紋理區域的細碎度風格:調節 TextureFreq 可以調節圖像的無方向細節紋理的細碎度風格。TextureFreq 越大,圖像的細節紋理就越細碎,否則細節紋理就越粗越圓潤,但是 TextureFreq 過大,圖像的細節紋理會過于細碎而不自然,圖像的細節紋理過 于細 碎 會 給 人 眼 造 成圖像模 糊 的 感 覺 。同時, TextureFreq 調 大後 ,圖像的 清晰 度 也 會 提 高 。
  3. 調試邊緣的纖細圓潤風格: 調節 EdgeFreq 可以調節圖像的 帶 方 向 的 邊緣 和細節的 纖薄 或 者 圓潤 的 風 格 。 EdgeFreq 越 大 ,圖像的 邊緣 就越 銳利 越纖薄 、 邊緣 的過 渡 更加細 窄 ,分 辨 率線 數 也 更 高 更 清晰 。 EdgeFreq 越 小,圖像的 邊緣 就越粗越圓潤 。 但 是 E 過 大 ,圖像的 邊緣 會因為過于 纖薄 而 出現 虛 邊現 象 ,圖像會不自 然 。
  4. 控制銳化後圖像的整體的shoot強度: 通 過調節 OverShoot 可以 控 制 銳化後 的圖像整體 的 邊緣 的 白邊 和細節 紋理 區的 白點噪 聲的 大 小。 通 過調節 UnderShoot 可以 控 制 銳化後 的圖像整體的 邊緣 的 黑邊 和細節 紋理 區的 黑點噪 聲的 大 小。 減 小 OverShoot 可以 減 弱 銳化後 的圖像的 白邊 和 白點噪 聲, 減 小 UnderShoot 可以 減 弱 銳化後 的圖像的 黑邊 和 黑 點噪 聲。 但 是, 減 小 OverShoot 和 UnderShoot ,圖像的 銳 度 也 會 減 弱 , OverShoot 和 UnderShoot 的 值 過小,會導 緻 圖像 出現 油畫 效果 。
  5. 銳度不明顯下降的情況下跟據局部特征抑制邊緣的黑白點: 增 大 ShootSupStr 并合 理 的調節 ShootSupAdj ,可以在圖像 清晰 度不明 顯 下 降 的 情況 下,使 銳化後 的圖像 邊緣 的 黑邊白 邊 的 強 度( 幅 度) 減 弱 、 寬 度 變 窄 。調 大 ShootSupStr 可以 收窄 邊緣 的 黑白邊 的 寬 度, 此時,為了 避免 細節 紋理 區的 shoot 被 ShootSupStr 抑 制而 影響 細節 紋理 區的 清晰 度, 應 當 适 當 調 大 ShootSupAdj 。 ShootSupAdj 設定較 小時, 草 地 毛 發等細節 紋理 的 shoot 也 會 被 ShootSupStr 抑 制而導 緻 細節 紋理 的 清晰 度 被減 弱 ,此時可以調 大 ShootSupAdj 來 避免草 地 毛 發等細節 紋理 的 清晰 度的 損 失 ,一 般 ShootSupAdj 大 于 6 就 可以 避免草 地 毛 發等細節 紋理 的 清晰 度的 損 失 , ShootSupAdj 越 大 ,對 邊緣 的 黑白邊 的 抑 制 強 度 也 越 大 。 ShootSupStr 和 ShootSupAdj 太 大 ,會導 緻 圖像 邊緣 的 shoot 都 被 抑 制, 從 而明 顯 地 降低 圖像的 銳 度。 視訊 模式下,保 留 一定的 黑邊白邊 可以提升圖像的 清晰 度,因 為 黑白邊 的 存 在能 讓 人 眼感 覺 銳 度更 高 ,是以, 視訊 模式下, ShootSupStr 不 需 要 設 的 太 大 , ShootSupAdj 應 該設定 一個中 間值 。 當 ShootSupStr 等于 0 時, 該功 能關 閉 ,調 節 ShootSupAdj 無效 。
  6. 細節紋理區和大邊緣shoot的單獨調試: 在圖像的整體 清晰 度和 shoot 都 調到合适 後 ,可以調節 DetailCtrl 和 DetailCtrThr 來 單 獨 調節細節 紋理 區和 大邊緣 的 shoot 強度。 一 般情況 下,建議 DetailCtrl 設 為128 。
  7. 邊緣銳化後的平滑度調節: 通 過調節 EdgeFiltStr 可以調節圖像 銳化後 的 邊緣 的 平滑度。EdgeFiltStr 比 較 小時,圖像的 邊緣 都 會更 多 的 被當 成 無 方 向紋理 增 強 ,主要是TextureStr 起 作用, EdgeStr 參數 基 本不 起 作用, 邊緣較銳 、同時 鋸齒 和 邊緣噪 聲 會比 較大。 EdgeFiltStr 比 較大 時,圖像的 邊緣 會更 多 的 被 判斷 成為有方 向 的 邊緣來 增 強 ,此 時,圖像的 邊緣 的 銳化 主要 就 是 EdgeStr 起 作用,圖像的 邊緣 就 會 越 平滑 , 邊緣噪聲 就越 小。 EdgeFiltStr 越 大 , 邊緣 越 平滑 , 邊緣 過 渡 帶也 相對 越 寬 。
  8. 對弱紋理單獨進行銳化的增益控制: 圖像的 弱 紋理 和 噪 聲 很難 區分,可以 通 過調節WeakDetailGain 來 單 獨 調節圖像 弱 紋理 的 銳化 程度。 該值 等于 0 ,圖像 弱 紋理 和圖像其 他區域的 銳化 程度相 當 , 該值 越 大 ,圖像 弱 紋理 的 銳化 程度 越 大 , 當該 參數過 大 ,可 能 帶來白邊 加 重甚 至 虛 邊 的 副 作用
  9. 單獨調節高飽和顔色區域和膚色區域的銳度 根據 深 紅 色 區域、深 藍 色 區域、 綠 色 區域和人 臉皮膚 區域的 噪 聲 大 小 來 單 獨 調節 RGain 、 Ggain 、 BGain 和 SkinGain ,以 讓 深 紅 色 區域、深 藍 色 區域、 綠 色 區域和人 臉皮膚 區域的 噪 聲和細節 輪廓 達 到最 佳 的 平 衡效果 。其中,由 SkinUmin , SkinVmin , SkinUmax 和 SkinVmax 這 4 個 坐 标所 圈 定的 矩 形 窗 範圍 即 為 膚 色 區域的範圍,可以 根據實 際 的圖像的 膚 色 範圍, 重 新 設定 SkinUmin , SkinVmin , SkinUmax 和 SkinVmax 這 4 個 值 , 從 而 重 新定義 膚 色 範圍。  

繼續閱讀