智能客服
你问我答,随时在线为你解决问题
本插件提供C封装的接口函数库,可以通过“dlopen/dlsym/dlclose”命令进行API的加载、执行、卸载,将插件集成到游戏项目中。
在项目中需要两个头文件。
进行项目编译时,需要确保以下动态库文件正确链接到项目中。
libthirdpartyengine_plugin_offlineSupRes.so
在调用离线超分功能之前,务必调用函数CSetAssetsDir设置资源文件目录,将其设置为资源文件实际所在路径。
void CSetAssetsDir(const char* assetsPath)
调用以下API检查目录是否已经设置为正确值。
const char* CGetAssetsDir()
成对出现的初始化和反初始化API,分别用于任务开始前的环境准备和任务完成后的环境释放。
void CInitialize() void CUninitialize()
如果需要连续多次执行超分任务,建议初始化后让环境继续驻留,直到任务结束时再将其释放。
对于不同画面(格式、尺寸)输入、不同机型平台,超分能力的支持程度不同,建议在调用前进行查询,其接口如下。
void CQuerySuperSamplingPluginConfig(int inW, int inH, CGKit::PixelFormat inFormat, CGKit::PluginConfig &pluginConfig) void CQueryImageEnhancingPluginConfig(int inW, int inH, CGKit::PixelFormat inFormat, CGKit::PluginConfig &pluginConfig)
查询结果将存储在PluginConfig结构体中。PluginConfig结构体记录了超分输出的图像尺寸和格式,在后续的超分接口调用中,需要根据这些信息对BufferDescriptor结构体进行配置。
在离线超分插件命名中,SuperSampling表示AI超分能力,ImageEnhancing表示图像处理超分能力。
AI超分的同步调用接口请参见CSuperSamplingSyncExecute。执行超分功能成功时,接口将返回true值,输出图片保存在outBuffer->addr指向的内存区域。
bool CSuperSamplingSyncExecute(const CGKit::BufferDescriptor *inBuffer, const CGKit::BufferDescriptor *outBuffer, int timeOut)
outBuffer->addr需要根据查询结果进行正确的内存分配,否则会引起内存越界等问题,调用其他类似API接口也需要注意这一点。
图像处理能力提供了同步调用接口。
bool CImageEnhancingSyncExecute(const CGKit::BufferDescriptor *inBuffer, const CGKit::BufferDescriptor *outBuffer, float sharpenStrength, bool toneMapping, int timeOut)
关于参数说明请参见CImageEnhancingSyncExecute。执行超分功能成功时,接口将返回true值,输出图片保存在outBuffer->addr指向的内存区域。
AI超分与图像处理超分能力也提供异步调用API接口。
bool CSuperSamplingAsyncExecute(const CGKit::BufferDescriptor *inBuffer, const CGKit::BufferDescriptor *outBuffer, PluginCallback callback) bool CImageEnhancingAsyncExecute(const CGKit::BufferDescriptor *inBuffer, const CGKit::BufferDescriptor *outBuffer, float sharpenStrength, bool toneMapping, PluginCallback callback)
关于参数说明请参见CSuperSamplingAsyncExecute和CImageEnhancingAsyncExecute。当异步线程正常启动时,接口将返回true值。异步调用超分功能是否成功将传入定义的回调函数,回调函数定义如下。
typedef void (*PluginCallback)(bool success)
根据需要实现回调函数,以处理调用成功或调用失败的场景。异步调用需要一定的执行时间,请等待约2s~5s再尝试获取outBuffer的值。