尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
C  SV--数据类型对应关系及内存映射
1. C SV 数据类型数据映射和在C侧输入输出c侧输入需要const修饰输出需要指针赋值无符号类型数组和向量动态数组一律用 svOpenArrayHandleC语言定义使用C标准的函数定义方式如下#include stdio.h#include stdint.h#include stdlib.h#include svdpi.hvoid c_model_calc_dither(const svOpenArrayHandle index_k,const svOpenArrayHandle imon_data,const uint16_t width,const uint16_t height,svOpenArrayHandle calc_dither_data){FILE* dither_log fopen(./log/dither_pro.log, a); int pix_total width * height; int col_cnt 0; int row_cnt 0; int pix_addr 0; uint8_t* index_tmp; uint16_t* imon_data_tmp; index_tmp (uint8_t*)malloc(9 * sizeof(uint8_t)); imon_data_tmp (uint16_t*)malloc(pix_total * sizeof(uint16_t)); uint32_t* mult_index_data; mult_index_data (uint32_t*)malloc(pix_total * sizeof(uint32_t)); if (index_tmp NULL || imon_data_tmp NULL || mult_index_data NULL) { printf([DITHER_C_MODEL] malloc failed!\n); return; } int i; for(i0; i9; i){ index_tmp[i] *((uint8_t*)svGetArrElemPtr1(index_k,i)); } for(pix_addr 0; pix_addr pix_total; pix_addr){ imon_data_tmp[pix_addr] *((uint16_t*)svGetArrElemPtr1(imon_data, pix_addr)); } fprintf(dither_log, index_tmp[0]: %d, index_tmp[1]: %d, index_tmp[2]: %d\n, index_tmp[0], index_tmp[1], index_tmp[2]); fprintf(dither_log, index_tmp[3]: %d, index_tmp[4]: %d, index_tmp[5]: %d\n, index_tmp[3], index_tmp[4], index_tmp[5]); fprintf(dither_log, index_tmp[6]: %d, index_tmp[7]: %d, index_tmp[8]: %d\n, index_tmp[6], index_tmp[7], index_tmp[8]); for (row_cnt 0; row_cnt height; row_cnt) { for (col_cnt 0; col_cnt width; col_cnt) { int addr row_cnt * width col_cnt; if (row_cnt 0 || row_cnt height - 1) { mult_index_data[addr] imon_data_tmp[addr]; } else { fprintf(dither_log, row_cnt: %d, col_cnt: %d\n, row_cnt, col_cnt, a); if (col_cnt 0) { mult_index_data[addr] (index_tmp[1] * imon_data_tmp[(row_cnt - 1)*width] index_tmp[2] * imon_data_tmp[(row_cnt - 1)*width 1] index_tmp[4] * imon_data_tmp[row_cnt * width] index_tmp[5] * imon_data_tmp[row_cnt * width 1] index_tmp[7] * imon_data_tmp[(row_cnt 1)*width] index_tmp[8] * imon_data_tmp[(row_cnt 1)*width 1]) 4 0x0FFF; fprintf(dither_log, idata[1]: %d, idata[2]: %d\n, imon_data_tmp[(row_cnt - 1)*width], imon_data_tmp[(row_cnt - 1)*width 1], a); fprintf(dither_log, idata[4]: %d, idata[5]: %d\n, imon_data_tmp[(row_cnt)*width], imon_data_tmp[(row_cnt)*width 1], a); fprintf(dither_log, idata[7]: %d, idata[8]: %d\n, imon_data_tmp[(row_cnt 1)*width], imon_data_tmp[(row_cnt 1)*width 1], a); } else if (col_cnt width - 1) { mult_index_data[addr] (index_tmp[0] * imon_data_tmp[(row_cnt - 1)*width col_cnt - 1] index_tmp[1] * imon_data_tmp[(row_cnt - 1)*width col_cnt] index_tmp[3] * imon_data_tmp[row_cnt * width - 1 col_cnt] index_tmp[4] * imon_data_tmp[row_cnt * width col_cnt] index_tmp[6] * imon_data_tmp[(row_cnt 1)*width - 1 col_cnt] index_tmp[7] * imon_data_tmp[(row_cnt 1)*width col_cnt]) 4 0x0FFF; fprintf(dither_log, idata[0]: %d, idata[1]: %d\n, imon_data_tmp[(row_cnt - 1)*width col_cnt -1], imon_data_tmp[(row_cnt - 1)*width col_cnt], a); fprintf(dither_log, idata[3]: %d, idata[4]: %d\n, imon_data_tmp[(row_cnt)*width col_cnt -1], imon_data_tmp[(row_cnt)*width col_cnt], a); fprintf(dither_log, idata[6]: %d, idata[7]: %d\n, imon_data_tmp[(row_cnt 1)*width col_cnt -1], imon_data_tmp[(row_cnt 1)*width col_cnt], a); } else { mult_index_data[addr] (index_tmp[0] * imon_data_tmp[(row_cnt - 1)*width - 1 col_cnt] index_tmp[1] * imon_data_tmp[(row_cnt - 1)*width col_cnt] index_tmp[2] * imon_data_tmp[(row_cnt - 1)*width col_cnt 1] index_tmp[3] * imon_data_tmp[row_cnt * width - 1 col_cnt] index_tmp[4] * imon_data_tmp[row_cnt * width col_cnt] index_tmp[5] * imon_data_tmp[row_cnt * width col_cnt 1] index_tmp[6] * imon_data_tmp[(row_cnt 1)*width - 1 col_cnt] index_tmp[7] * imon_data_tmp[(row_cnt 1)*width col_cnt] index_tmp[8] * imon_data_tmp[(row_cnt 1)*width col_cnt 1]) 4 0x0FFF; fprintf(dither_log, idata[0]: %d, idata[1]: %d, idata[2]: %d\n, imon_data_tmp[(row_cnt - 1)*width - 1 col_cnt], imon_data_tmp[(row_cnt - 1)*width col_cnt], imon_data_tmp[(row_cnt - 1)*width col_cnt 1], a); fprintf(dither_log, idata[3]: %d, idata[4]: %d, idata[5]: %d\n, imon_data_tmp[row_cnt * width - 1 col_cnt], imon_data_tmp[row_cnt * width col_cnt], imon_data_tmp[row_cnt * width col_cnt 1], a); fprintf(dither_log, idata[6]: %d, idata[7]: %d, idata[8]: %d\n, imon_data_tmp[(row_cnt 1)*width - 1 col_cnt], imon_data_tmp[(row_cnt 1)*width col_cnt], imon_data_tmp[(row_cnt 1)*width col_cnt 1], a); } } } } for(pix_addr 0; pix_addr pix_total; pix_addr) { *((uint32_t*)svGetArrElemPtr1(calc_dither_data, pix_addr)) mult_index_data[pix_addr]; } free(index_tmp); free(imon_data_tmp); free(mult_index_data); }2. C代码流程导入标准库文件定义函数名和函数输入输出变量地址空间申请传递给指针
RELATED

相关推荐

第7课:TensorFlow|TF自动梯度原理【反向传播底层逻辑、梯度计算、梯度裁剪实操】

第7课:TensorFlow|TF自动梯度原理【反向传播底层逻辑、梯度计算、梯度裁剪实操】

文章目录1. 课前导读1.1 本节课学习目标1.2 知识重难点1.3 学习前置条件1.4 学完可掌握能力1.5 行业应用场景2. 核心理论精讲2.1 反向传播与链式法则2.2 TensorFlow自动微分原理2.3 梯度计算进阶概念2.4 梯度爆炸与梯度消失2.5 梯度计算的最佳实践3. 环境搭建与工具配置4. 代码…

📅 2026/10/8 16:08:36
Excel筛选全攻略:从基础操作到Python自动化实战

Excel筛选全攻略:从基础操作到Python自动化实战

这次我们来看一个 Excel 筛选的实战教学。筛选是 Excel 数据处理中最基础、最高频的操作之一,但很多人只停留在“点一下筛选按钮”的层面,面对复杂条件、批量处理或筛选后操作时,效率就大打折扣。这篇文章不讲空泛概念,直接聚焦于…

📅 2026/10/8 11:53:42
OKBIYE全功能板块汇总[特殊字符]8大核心模块,承包你毕业论文全流程

OKBIYE全功能板块汇总[特殊字符]8大核心模块,承包你毕业论文全流程

写论文最省心的方式,不是到处找工具、找教程,而是一个平台覆盖所有刚需。 很多同学毕业季反复折腾,无非就是缺开题思路、缺合规初稿、过不了双检、不会排版、做不出图表、答辩没素材。OKBIYE深耕国内学术场景14年,针对本硕论文写…

📅 2026/11/7 13:48:45
MORE NEWS

更多资讯

📰

30天煤气特种作业证K23实操不挂科的内部消息,老电工都这么干

30天煤气特种作业证K23实操不挂科的内部消息,老电工都这么干 实操考试心里没底怕挂科?其实你不是一个人,我见过太多人在煤气特种作业证K23考试前紧张得睡不着觉,怕操作失误被扣分,甚至直接挂科。这事儿不是你一个人的痛,我从业这么多年,每年都…

📰

天津建筑电工证培训通过率揭秘:学历不高怕报不上名?别慌

天津建筑电工证培训通过率揭秘:学历不高怕报不上名?别慌 学历不高怕报不上名?天津建筑电工证培训真的能让你一锤定音?别急,咱们一步步来,先说清楚这个证书到底能不能考,怎么考,以及到底值不值得考。…

📰

在深圳哪里办理电工证怎么报名?怕考不过白交培训费?教你一招保过

在深圳哪里办理电工证怎么报名?怕考不过白交培训费?教你一招保过 怕考不过白交培训费?在深圳哪里办理电工证怎么报名?很多深圳的务工人员在准备电工证考试前,最大的顾虑就是“钱花了,证没拿到”,白白浪费时间和金钱。如果你也正面临这个问题,别急,本…

📰

唐山特种工考证官方回应:怕考不过白交培训费?别急,这篇全搞定

唐山特种工考证官方回应:怕考不过白交培训费?别急,这篇全搞定 怕考不过白交培训费?官方回应来了,唐山特种工考证其实不难,但前提是得选对机构、用对方法。很多学员因为盲目选择培训机构,结果钱花了、时间耗了,最后还是没拿到证。别急,下面这些问题,…

📰

唐山特种工考证过期了怎么复审?考前押题帮你搞定

唐山特种工考证过期了怎么复审?考前押题帮你搞定 证书过期了不知道怎么复审延期?你不是一个人在战斗,很多特种作业人员在证书到期后都陷入了焦虑。特别是像电工作业、焊接与热切割作业这些高风险岗位,一旦证书失效,不仅影响正常工作,还可能面临停工、罚…

📰

国网的电工证能干嘛怎么考

初次报考国网电工证怕报不上名?良心建议帮你理清真相 你是不是也这样?学历不高,担心自己连国网的电工证都报不上名,更别说考过了?说实话,我刚开始接触特种作业证的时候也是这么想的,觉得自己文化程度不够,肯定连报名资格都没有。但后来发现,…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬