VSR SDK API指南
本文主要介绍芒果TV自研 AI超分 SDK的API.
枚举定义
枚举名字 |
含义 |
枚举值 |
VSRLogLevel |
日志等级 |
|
VsrLogVerbose |
输出所有所有的log |
0 |
VsrLogDebug |
输出所有高于debug级别的log |
1 |
VsrLogInfo |
输出所有高于info级别的log |
2 |
VsrLogWarn |
输出所有高于warnning级别的log |
3 |
VsrLogError |
输出所有高于error级别的log |
4 |
VsrLogNone |
无log输出 |
5 |
枚举名字 |
含义 |
枚举值 |
VSRResult |
接口返回值 |
|
VSR_UNKNOWN |
未知错误 |
-1 |
VSR_SUCCESS |
成功 |
0 |
VSR_INSIDE_ERROE |
内部错误 |
1 |
VSR_MODEL_LOADING |
模型加载中 |
2 |
VSR_PARAM_ERROE |
参数错误 |
3 |
VSR_DISABLE |
性能不足 |
4 |
VSR_NO_INIT_ERROR |
未初始化 |
5 |
VSR_INIT_DEVICE_ERROR |
deive初始化失败 |
6 |
VSR_ALLOC_MEMORY_ERROR |
内存或显存申请失败 |
7 |
VSR_INIT_MODEL_ERROR |
模型初始化失败 |
8 |
VSR_NPU_VERSION_LOW |
NPU版本过低 |
9 |
VSR_VK_VERSION_LOW |
vulkan版本过低 |
10 |
VSR_RENDER_NOT_INIT |
渲染模块未初始化 |
11 |
VSR_ENGINE_NOT_INIT |
超分模块未初始化 |
12 |
VSR_COMMPUTE_EXEC_ERROR |
计算模块出错 |
13 |
VSR_GRAPHICS_EXEC_ERROR |
渲染模块出错 |
14 |
VSR_MUTEX_INIT_ERROR |
mutex初始化失败 |
15 |
VSR_FILLE_DATA_ERROR |
数据填充失败 |
16 |
VSR_CREATE_IMAGE_ERROR |
image创建失败 |
17 |
VSR_CREATE_RENDER_ERROR |
render创建失败 |
18 |
VSR_CREATE_VSR_ENGINE_ERROR |
VSR引擎创建失败 |
19 |
VSR_CREATE_PIPELINE_ERROR |
pipeline创建失败 |
20 |
VSR_RESET_RENDER_WINDOW_ERROR |
reset渲染窗口失败 |
21 |
VSR_RENDER_WINDOW_INVALID |
渲染窗口无效 |
22 |
枚举名字 |
含义 |
枚举值 |
RenderFormat |
渲染格式 |
|
RENDER_FORMAT_UNDEFINED |
未定义格 |
0 |
RENDER_FORMAT_NV12 |
nv12格式 |
1 |
RENDER_FORMAT_NV21 |
nv21格式 |
2 |
RENDER_FORMAT_YUV_420 |
yuv420格式 |
3 |
结构体定义
结构体名字 |
含义 |
值类型 |
OBJParams |
obj创建参数 |
|
scale_type |
超分模型倍数版本参数:0为自动选择, 1为1.5倍模型,2为2.0倍模型 |
int |
precision_type |
超分模型精度版本参数:0为标准精度版本,1为高精度版本(当scale_type为0时,精度版本也会自动选择) |
int |
scale_value |
返回超分模块缩放倍数指数, 返回成功时有效 |
float |
runing_type |
模型运行环境:0为vulkan, 1为NPU,2为NPU到vulkan自动选择 |
int |
enable_lut |
是否开启色彩增强:0为关闭,1为开启,(其它值都为关闭,即非1都为关闭) |
int |
结构体名字 |
含义 |
值类型 |
RenderParams |
渲染创建参数 |
|
windows |
surface 渲染窗口对象 |
void* |
window_width |
渲染窗口的宽 |
int |
window_height |
渲染窗口的高 |
int |
image_width |
image_width |
int |
image_height |
image_height |
int |
结构体名字 |
含义 |
值类型 |
DisplayParams |
渲染参数 |
|
format |
显示图片的格式 |
RenderFormat |
width |
显示图片的宽 |
int |
height |
显示图片的高 |
int |
data |
显示图片的数据 |
ucahr*[] |
stride |
显示图片的stride |
int[] |
runing_vsr |
是否执行超分 1:执行,0:不执行 |
int |
runing_3dlut |
是否进行色彩增强 1:执行, 0:不执行 |
int |
通用接口
函数名字 |
输入参数 |
输出参数 |
返回值 |
函数功能 |
函数说明 |
ImgoVsr_GetVersion |
|
|
char* |
获取库版本号接口 |
|
ImgoVsr_SetLogCallback |
VSRLogCallback* |
|
void |
日志回调函数设置接口 |
应用调用一次 |
ImgoVsr_InitRuningEnvironment |
level |
info |
VSRResult |
初始化超分模块运行环境 |
全局函数初始化,应用调一次 |
ImgoVsr_ReleaseRuningEnvironment |
|
|
void |
释放超分模型运行环境资源 |
全局函数,退出应用调一次 |
ImgoVsr_CreateObject |
scale_type,precision_type |
scale_value,obj |
VSRResult |
创建超分对象 |
|
ImgoVsr_CreateObject_Ex |
params |
obj |
VSRResult |
创建超分对象 |
|
ImgoVsr_DestroyObject |
obj |
|
VSRResult |
删除超分对象 |
|
ImgoVsr_SetLimitValue |
obj,value |
|
VSRResult |
设计运行时触发disable的阈值 |
|
ImgoVsr_GetWidthAndHeight |
obj,src_w,src_h |
dst_w,dst_h |
VSRResult |
获取超分后图片的高宽 |
|
ImgoVsr_GetRuningInfo |
obj |
runinfo |
VSRResult |
获取超分运行信息 |
|
ImgoVsr_ExecuteY |
obj,src_y,src_h,src_stride |
dst_y,dst_stride |
VSRResult |
执行超分计算y通道数据 |
|
ImgoVsr_ExecuteNV12 |
obj,src_y,src_h,src_stride,src_uv,src_uv_stride |
dst_y,dst_stride,dst_uv |
VSRResult |
执行超分计算nv12通道数据 |
|
ImgoVsr_ExecuteYUV420 |
obj,src_y,src_h,src_stride,src_u,src_u_stride,src_v,src_v_stride |
dst_y,dst_stride,dst_u,dst_u_stride,dst_v,dst_v_stride |
VSRResult |
执行超分计算yuv420通道数据 |
|
vulkan渲染以超分接口
函数名字 |
输入参数 |
输出参数 |
返回值 |
函数功能 |
函数说明 |
ImgoRender_GetVersion |
|
|
char* |
获取库版本号接口 |
|
ImgoRender_SetLogCallback |
VSRLogCallback* |
|
void |
日志回调函数设置接口 |
应用调用一次 |
ImgoRender_InitializeEnvironment |
|
|
VSRResult |
初始化渲染环境环境 |
全局函数初始化,应用调一次 |
ImgoRender_ReleaseEnvironment |
|
|
void |
释放渲染环境资源 |
全局函数,退出应用调一次 |
ImgoRender_CreateRender |
params |
obj |
VSRResult |
创建渲染对象 |
|
ImgoRender_ResetRenderWindow |
obj,window |
|
VSRResult |
重置渲染对象的窗口 |
|
ImgoRender_DestroyObject |
obj |
|
VSRResult |
删除渲染对象 |
|
ImgoRender_CreateVSR |
obj,params |
|
VSRResult |
渲染对象创建超分执行实例 |
|
ImgoRender_SetLimitValue |
obj,value |
|
VSRResult |
设置超分执行时触发disable的阈值 |
|
ImgoRender_Display |
obj,params |
|
VSRResult |
显示图片 |
|
ImgoRender_GetRuningInfo |
obj |
vsrinfo,renderinfo |
VSRResult |
获取超分和渲染运行信息 |
|
函数名字 |
输入参数 |
输出参数 |
返回值 |
函数功能 |
函数说明 |
ImgoVsr_MtlGetVersion |
|
|
char* |
获取库版本号接口 |
|
ImgoVsr_MtlSetLogCallback |
VSRLogCallback* |
|
void |
日志回调函数设置接口 |
应用调用一次 |
ImgoVsr_MtlInitRuningEnvironment |
device,libary_path |
|
VSRResult |
初始化超分模块运行环境 |
全局函数初始化,应用调一次 |
ImgoVsr_MtlCheckReloadRuningEnvironment |
device,libary_path |
|
VSRResult |
check 超分模块运行环境 |
|
ImgoVsr_MtlReleaseRuningEnvironment |
|
|
void |
释放超分模型运行环境资源 |
全局函数,退出应用调一次 |
ImgoVsr_MtlCreateObject |
scale_type,precision_type |
|
obj |
创建超分对象 |
|
ImgoVsr_MtlDestroyObject |
obj |
|
VSRResult |
删除超分对象 |
|
ImgoVsr_MtlGetWidthAndHeight |
obj,src_w,src_h |
dst_w,dst_h |
VSRResult |
获取超分后图片的高宽 |
|
ImgoVsr_MtlGetRuningInfo |
obj |
runinfo |
VSRResult |
获取超分运行信息 |
|
ImgoVsr_MtlExecuteY |
obj,src_y,src_w, src_h |
dst_y |
VSRResult |
执行超分计算y通道数据 |
|
ImgoVsr_MtlExecuteNV12 |
obj,src_y,src_w, src_h,src_uv |
dst_y,dst_uv |
VSRResult |
执行超分计算nv12通道数据 |
|
ImgoVsr_MtlExecuteYUV420 |
obj,src_y,src_w, src_h,src_u,src_v |
dst_y,dst_u,dst_v |
VSRResult |
执行超分计算yuv420通道数据 |
|