拍摄智感高清算法在检测场景类别的基础上,对图像进行画质增强。
注意:iOS11以下机器,不支持除插帧外的画质模块算法。
IOS端模型依赖:vhdr.bundle
支持平台 | Android、iOS |
---|---|
支持输入格式 | RGBA8888、BGRA8888 |
内存占用 | <41M (测试设备OPPO R11) |
检测速度 | <25ms(测试设备OPPO R11) |
详细接口说明查看头文件:bef_ai_image_quality_enhancement_onekey_enhance.h
BEF_SDK_API bef_effect_result_t bef_ai_image_quality_enhancement_onekey_enchance_create(bef_image_quality_enhancement_handle* handle, const bef_ai_onekey_enhancement_config* config); // 版本V4.4.3新增算法参数结构体,版本4.4.3之前均无此结构体 typedef struct bef_ai_onekey_enhancement_algParamStream { int luminance_target_int0; int luminance_target_int1; float contrast_factor_float; float saturation_factor_float; float amount_float; float ratio_float; float noise_factor_float; float current_pixel_weight_float; int hdr_version_int; float luma_trigger_float; float over_trigger_float; float under_trigger_float; int asf_scene_mode_int; }bef_ai_onekey_enhancement_algParamStream; typedef struct bef_ai_onekey_enhancement_config { int width; // 输入宽 int height; // 输入高 const char* kernelBinPath; // 可读写的路径 bool disableHdr; //打开HDR bool oneKeyRecordHdrV2; //选择hdr v1,v2算法 bool asnycProcess; //算法异步执行开关 bool disableNightScene; //算法白天隔离夜晚 bool disableDayScene; //算法夜晚隔离白天 bool disableAsf; //打开锐化 bef_ai_lens_power_level level; //iOS端无需设置 bef_one_key_scene_strategy_mode sceneMode; // 目前 sceneMode 只支持 BEF_SCENE_MODE_MOBILE_RECORDE bef_ai_onekey_enhancement_algParamStream algParamStream; }bef_ai_onekey_enhancement_config;
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_image_quality_enhancement_handle* | 创建的智感高清算法句柄 |
config | bef_ai_onekey_enhancement_config* | 算法初始化时的配置参数 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
BEF_SDK_API bef_effect_result_t bef_ai_image_quality_enhancement_onekey_enchance_process(bef_image_quality_enhancement_handle handle, const bef_ai_onekey_process_config* config, const bef_ai_lens_data* input, bef_ai_lens_data *output); typedef struct bef_ai_onekey_process_config { bef_ai_onekey_detect_config detectConfig; int width; int height; bool isFirstFrame; int initDecayFrames; //动态场景切换用淡入淡出效果来过度(默认值30) bool isProtectFace; int faceNum; bef_ai_rect* faceList; bef_ai_onekey_enhancement_algParamStream algParamStream; // 版本V4.4.3新增算法参数结构体,版本4.4.3之前均无此结构体 }bef_ai_onekey_process_config; typedef union bef_ai_lens_data{ int texture[2]; // 如果是纹理,这里纹理的index, ios 的纹理目前只支持metal的纹理, android 需要oes 纹理,且纹理放在0 位置 void* buffer; // 如果是数据输入,iOS 传入pixelBuffer的指针 }bef_ai_lens_data;
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_image_quality_enhancement_handle | 智感高清算法句柄 |
config | const bef_ai_onekey_process_config* | 算法初始化时的配置参数 |
input | bef_ai_lens_data* | 智感高清算法输入 |
output | bef_ai_lens_data* | 智感高清算法输出 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
BEF_SDK_API bef_effect_result_t bef_ai_image_quality_enhancement_onekey_enchance_destroy(bef_image_quality_enhancement_handle handle);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_image_quality_enhancement_handle | 智感高清算法的句柄 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
// 离线license检测方式 BEF_SDK_API bef_effect_result_t bef_ai_image_quality_enhancement_onekey_enchance_check_license( bef_image_quality_enhancement_handle handle, const char* license_path); // 在线license检测方式 BEF_SDK_API bef_effect_result_t bef_ai_image_quality_enhancement_onekey_enchance_check_online_license( bef_image_quality_enhancement_handle handle, const char* license_path);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_image_quality_enhancement_handle | 智感高清算法句柄 |
licensePath | const char * | 授权文件字符串 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
接口说明
详细接口说明查看文件:com.bytedance.labcv.effectsdk.OneKeyEnhance.java
public int create( String licensePath, boolean onlineLicense, AlgParamStream algParamStream, // 版本V4.4.3新增算法参数结构体,版本4.4.3之前均无此结构体 InitConfig config)
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
licensePath | String | 授权文件绝对路径 |
onlineLicense | boolean | 授权类型 |
algParamStream | AlgParamStream | 算法额外参数 |
config | InitConfig | 初始化配置参数 |
注意
初始化的时候config参数中的mode只支持 SCENE_MODE_MOBILE_RECORDE
, 不然会报错。
返回值
成功返回BEF_RESULT_SUC,否则返回对应的错误码
备注
关于AlgParamStream和InitConfig可参考com.bytedance.labcv.effectsdk.OneKeyEnhance.java,并且其定义与C接口bef_ai_image_quality_enhancement_public_define保持一致。
public int process( int textureId, AlgParamStream algParamStream, // 版本V4.4.3新增算法参数结构体,版本4.4.3之前均无此结构体 ProcessConfig processConfig)
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
textureId | int | 输入纹理号 |
algParamStream | AlgParamStream | 算法额外参数 |
processConfig | ProcessConfig | 质感高清处理配置参数 |
备注
关于版本4.4.3开始新增的算法额外参数AlgParamStream
和所有版本均有的算法配置参数ProcessConfig
可参考com.bytedance.labcv.effectsdk.OneKeyEnhance.java(版本4.4.3后为com.effectsar.labcv.effectsdk.OneKeyEnhance.java),并且其定义与C接口bef_ai_image_quality_enhancement_public_define保持一致。
public void release()
答:建议首先查看以下tag输出Error类型的日志:
bef_effect_ai 和SMASH_E_LOG 以及 EffectSDK
错误码请参考错误码表