生活随笔
收集整理的這篇文章主要介紹了
海思Hi3516A(5)3D降噪
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 概述
3D降噪算法是將前后兩幀的圖像進行對比處理,找出噪點位置,然后對其增益控制。3D數字降噪功能能夠降低弱信號圖像的噪波干擾。
2. 函數接口
HI_S32 HI_MPI_VPSS_SetGrpParam(VPSS_GRP VpssGrp, VPSS_GRP_PARAM_S*pstVpssParam);
| 參數名稱 | 描述 | 輸入/輸出 |
| VpssGrp | VPSS GROUP號 | 輸入 |
| pstVpssParam | 高級屬性設置 | 輸入 |
?VPSS_GRP_PARAM_S結構體:
typedef?struct?hiVPSS_GRP_PARAM_S
{
HI_U32?u32Contrast;??????????????????//保留
HI_S32?s32GlobalStrength;????????????//3DNR降噪強度,[0.1408]
HI_S32?s32IeStrength;????????????????//圖像紋理增強,[-1,100]
HI_S32?s32YSFStrength;???????????????//亮度空域去噪強度,[-1,100]
HI_S32?s32YTFStrength;???????????????//亮度時域去噪強度,[-1,15]
HI_S32?s32CSFStrength;???????????????//色度空域去噪強度,[-1,255]
HI_S32?s32CTFStrength;???????????????//色域時域去噪強度,[-1,32]
HI_S32?s32MotionLimen;???????????????//運動閾值,表示NR強度,[-1,32]
}VPSS_GRP_PARAM_S;
空域降噪是對單幀進行采樣,降噪會犧牲更多的細節;時域降噪是對前后幀進行分析,盡量保留畫面細節,但是拍攝劇烈運動可能會有拖影。在實際應用中可根據不同的側重點(細節、運動、亮度、色度)來調整VPSS_GRP_PARAM_S結構體的成員變量。
3. PQTools設置界面
4. 代碼設計
在SDK包的mpp/tools目錄下編寫應用程序代碼,具體代碼如下:
/*?File?Name:?vpss_attr_3dnr.cAuthor:????shugen.yinDate:??????2017.2.10Function:??3DNR?settinglog:
*/#include?<stdio.h>
#include?<stdlib.h>
#include?<string.h>
#include?"hi_common.h"
#include?"hi_comm_video.h"
#include?"hi_comm_sys.h"
#include?"hi_comm_vo.h"
#include?"hi_comm_vi.h"
#include?"hi_comm_vpss.h"
#include?"hi_type.h"
#include?"mpi_vb.h"
#include?"mpi_sys.h"
#include?"mpi_vi.h"
#include?"mpi_vo.h"
#include?"mpi_vpss.h"#define?CHECK_RET(express,name)\do{\if?(HI_SUCCESS?!=?express)\{\printf("%s?failed?at?%s:?LINE:?%d?!?errno:%#x?\n",?\name,?__FUNCTION__,?__LINE__,?express);\return?HI_FAILURE;\}\}while(0)HI_S32?main()
{HI_S32?s32Ret=0;HI_U8?u8Index?=?0;VPSS_GRP?VpssGrp?=?0;VPSS_GRP_ATTR_S?stVpssGrpAttr?=?{0};VPSS_GRP_PARAM_S?stVpssGrpParam?=?{0};HI_S32?s32NrParam[4][8]?=?{ {0x0,?0x2f8,?0x0,?0x20,?0xc,?0x8,?0x6,?0x0},{0x0,?0x330,?0x0,?0x20,?0xc,?0x8,?0x6,?0x0},{0x0,?0x3ea,?0x0,?0x20,?0xc,?0x8,?0x6,?0x0},{0x0,?0x458,?0x0,?0x20,?0xc,?0xe,?0xc,?0x0}};s32Ret?=?HI_MPI_VPSS_GetGrpAttr(VpssGrp,?&stVpssGrpAttr);CHECK_RET(s32Ret,?"HI_MPI_VPSS_GetGrpAttr");s32Ret?=?HI_MPI_VPSS_GetGrpParam(VpssGrp,?&stVpssGrpParam);CHECK_RET(s32Ret,?"HI_MPI_VPSS_GetGrpParam");stVpssGrpAttr.bNrEn?=?1;stVpssGrpParam.u32Contrast?=?s32NrParam[u8Index][0];stVpssGrpParam.s32GlobalStrength?=?s32NrParam[u8Index][1];stVpssGrpParam.s32IeStrength?=?s32NrParam[u8Index][2];stVpssGrpParam.s32YSFStrength?=?s32NrParam[u8Index][3];stVpssGrpParam.s32YTFStrength?=?s32NrParam[u8Index][4];stVpssGrpParam.s32CSFStrength?=?s32NrParam[u8Index][5];stVpssGrpParam.s32CTFStrength?=?s32NrParam[u8Index][6];stVpssGrpParam.s32MotionLimen?=?s32NrParam[u8Index][7];s32Ret?=?HI_MPI_VPSS_SetGrpAttr(VpssGrp,?&stVpssGrpAttr);CHECK_RET(s32Ret,?"HI_MPI_VPSS_SetGrpAttr");s32Ret?=?HI_MPI_VPSS_SetGrpParam(VpssGrp,?&stVpssGrpParam);CHECK_RET(s32Ret,?"HI_MPI_VPSS_SetGrpParam");return?0;
}
5. 編譯運行
在mpp/tools目錄下執行make命令,生成vpss_attr_3dnr可執行程序,將此可執行程序復制到目標板卡中,執行./vpss_attr_3dnr,3DNR算法模塊開始工作。
6. 最終結果
在沒有運行vpss_attr_3dnr時,視頻顯示結果如下圖所示,畫面有明顯的弱噪聲。
運行vpss_attr_3dnr后,視頻顯示結果如下圖所示,弱噪聲得到明顯抑制。
轉載于:https://blog.51cto.com/shugenyin/1896821
總結
以上是生活随笔為你收集整理的海思Hi3516A(5)3D降噪的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。