跳转至

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 获取超分和渲染运行信息

metal超分接口

函数名字 输入参数 输出参数 返回值 函数功能 函数说明
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通道数据