切换版块
×
基础软件平台
PyTorch开发
TensorFlow开发
编解码及SDK开发
BANG语言与计算库
开发工具链
MagicMind开发
软件栈百科
云平台集成
硬件产品专区
大模型专区
MLU200系列AI加速产品
MLU370系列AI加速卡
经验方案交流区
经验案例与实践分享
开发者服务
开发者活动
公告与版务
高校支持
《智能计算系统》
签到
版块
社区
文档
SDK下载
370系列
200系列
开发平台
官网首页
注册
登录
全部版块
基础软件平台
硬件产品专区
经验方案交流区
开发者服务
高校支持
发布新帖
登录/注册
LV.1
lozenyin
128
积分
12
赞
17
帖子
64
回复
0
收藏
TA的动态
TA的帖子
TA的回复
报错CNRT error, code=632036(Failure on memory copy.)
我的回复:#1xuxd回复您好,根据描述,1. 确认单独运行 cncv sample的代码是否正常;2. 检查 拷贝地址和内存分配是否正确。展开你好,第一点已确定官方demo可运行无报错。本人参照例程demo,官方demo图像输入是Mat转cncvImage结构体。本人是把解码后的图像数据cncodecFrame结构体转成cncvImage结构体。//cncodecFrame to cncvImage //【源数据】 srcImg.width=srcframe.width; srcImg.height=srcframe.height; srcImg.stride[0]=srcframe.stride[0]; srcImg.stride[1]=srcframe.stride[1]; srcImg.planeNum=srcframe.planeNum; srcImg.colorSpace=(cncvColorSpace)(srcframe.colorSpace); srcImg.pixelFmt=(cncvPixelFormat)(srcframe.pixelFmt); srcImg.roi = {0,0,0,0}; srcImg.depth=CNCV_DEPTH_8U; srcImg.plane[0].size=srcframe.height * srcframe.stride[0]; srcImg.plane[1].size=(srcframe.height/2)*srcframe.stride[1]; srcImg.plane[0].addr=malloc(srcImg.plane[0].size); srcImg.plane[1].addr=malloc(srcImg.plane[1].size); cpuAddr_0=malloc(srcImg.plane[0].size); cpuAddr_1=malloc(srcImg.plane[1].size); cncodecMap(&cpuAddr_0,srcframe.plane[0].addr,srcframe.plane[0].size);//映射设备端地址到主机中 cncodecMap(&cpuAddr_1,srcframe.plane[1].addr,srcframe.plane[1].size); CNRT_CHECK(cnrtMemcpy(srcImg.plane[0].addr,cpuAddr_0,srcImg.plane[0].size,CNRT_MEM_TRANS_DIR_HOST2HOST));//将映射到主机的图像拷贝到cncvImage变量中 CNRT_CHECK(cnrtMemcpy(srcImg.plane[1].addr,cpuAddr_1,srcImg.plane[1].size,CNRT_MEM_TRANS_DIR_HOST2HOST)); printf(">>>获取原图像\\n\\r");这样复制是否正确呢?
0
使用CNCV库的数据输入问题
我的回复:找到问题所在了在创建cncvImage结构体变量是需要malloc生成指针给到plane.size,然后在拷贝数据过去才对。而不是直接拷贝。但是这样出来的图像显示错乱了,看来还需要一些纠正才行。
1
cncv例程demo交叉编译
我的回复:解决方法:使用【export LD_LIBRARY_PATH=】引用库路径,就可以运行了
0
cncv例程demo交叉编译
我的回复:#1xuxd回复您好,与运行环境有关,请将编译时的依赖库打包放到设备上,将此路径export到环境变量再试一下。找到解决方法了,使用【export LD_LIBRARY_PATH=】引用库路径就好了,就可以运行了
0
cncv例程demo交叉编译
我的回复:#1xuxd回复您好,与运行环境有关,请将编译时的依赖库打包放到设备上,将此路径export到环境变量再试一下。依赖库打包上传到设备了,添加到环境变量后运行还是会报错
0
使用CNCV库的数据输入问题
我的回复:#5aaayyy回复先跑cncv自带sample把贴出来的代码修改部分放到sample里面,是否正确我一般这样,大概这样,能找到问题。展开在编译官方的sample了,遇到了些问题【https://forum.cambricon.com/index.php?m=content&c=index&a=show&catid=47&id=2040】交叉编译后可执行文件放进mlu220的设备中运行没有连接上库。但是库的路径已经声明的了。请问一下这个要怎么处理才能连接上?要把库文件拷贝到/usr/lib64路径下嘛?
1
使用CNCV库的数据输入问题
我的回复:#1niceshot回复你好,请参考cncv自带sample,目录 /usr/local/neuware/samples/cncv/resize_convert_sample展开我已经参考了,还是没能找到问题所在
1
cncodecFrame的图像数据可视化
我的回复:问题已解决//测试函数,保存cncodecFrame图像数据到文件中 void dumpSurfaceData(FILE *file, cncodecFrame *frame) { unsigned int i; unsigned int j; unsigned int planW; unsigned int planLen; unsigned int planeH; cnrtRet_t rtRet; for (i = 0; i < frame->planeNum; ++i) { planW = calc_plane_width(frame->pixelFmt, frame->width, i); planLen = calc_plane_length(frame->pixelFmt, frame->stride[i], frame->height, i); planeH = calc_plane_height(frame->pixelFmt, frame->height, i); if (frame->stride[i] == planW) { // LOG_INFO("frame->stride[i] %u planw %u\\n", frame->stride[i], planW); void *cpuAddr; rtRet = (cnrtRet_t)cncodecMap(&cpuAddr, frame->plane[i].addr, frame->plane[i].size); if (rtRet != CNRT_RET_SUCCESS) { LOG_ERROR("call cncodecMap faild\\n"); return; } rtRet = (cnrtRet_t)cncodecInvalidateCache(cpuAddr, frame->plane[i].size); if (rtRet != CNRT_RET_SUCCESS) { LOG_ERROR("call cncodecInvalidateCache faild\\n"); return; } fwrite(cpuAddr, sizeof(char), planLen, file); rtRet = (cnrtRet_t)cncodecUnmap(cpuAddr, frame->plane[i].size); if (rtRet != CNRT_RET_SUCCESS) { LOG_ERROR("call cncodecUnmap faild\\n"); return; } } else { void *tmp_buffer1 = malloc(planLen); char *tmp_buffer2 = (char *)malloc(planW * planeH); cnrtMemcpy(tmp_buffer1, (void *)frame->plane[i].addr, planLen, CNRT_MEM_TRANS_DIR_DEV2HOST); for (j = 0; j < planeH; ++j) { memcpy(tmp_buffer2 + j * planW, tmp_buffer1 + j * frame->stride[i], planW); } fwrite(tmp_buffer2, sizeof(char), planW * planeH, file); free(tmp_buffer1); free(tmp_buffer2); } } }
1
cncodecFrame的图像数据可视化
我的回复:#6aaayyy回复[图片]main.zip这有一个参考文件,把回调里面的cncv去掉,需要ffmpeg库支持好的,我参考一下,谢谢~
1
cncodecFrame的图像数据可视化
我的回复:#3niceshot回复你好,可以参考:rtsp相关的解析代码,https://github.com/Cambricon/CNStream/tree/master/modules/source/src/data_handler_rtsp.cpp大体流程,通过 ffmpeg的接口,对rtsp码流解析,将码流数据放到内存缓冲区,循环读取该内存缓冲区的数据feed给codec进行解码,后续就是解码流程。展开我现在就是这样子操作的,但是我该如何将解码出来的图像(cncodecFrame)保存出来给人看呢?我还没有找到可用的办法。
1
上一页
1
2
3
4
5
下一页
Github
开发平台
文档中心
新手必读
官方微信
版权所有 © 2025 寒武纪 Cambricon.com 备案/许可证号:
京ICP备17003415号-1
关闭