XDM封装小结

2024-05-15 07:38
文章标签 封装 xdm 小结

本文主要是介绍XDM封装小结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

某个算法终于做出来了!然后就是XDM封装,app应用程序调用。虽然以前做过XDM封装,但是这次和以前的有些不同,小结一下吧。

    首先是编译成库文件。以前是在CCS下编译成.l64p的。这样还是比较麻烦的。现在的方法是在linux下编译成.a64p文件。编译的方法是找到TI提供的videnc_copy例程,videnc_copy_ti.h和videnc_copy_ti_priv.h都不用改(如果懒到不想改调用接口函数名称的话)。只把算法套在videnc_copy.c文件中即可。这个文件,也基本只改VIDENCCOPY_TI_initObj和VIDENCCOPY_TI_process函数。算法加进来很简单,注意不需要以前在CCS下编译.l64p时繁琐的TI头文件,算法只要在VC下可以运行即可。

    第二个修改的是内存分配。以前的内存分配方法是通过#gragma DATA_SECTION指定段,然后在codec engine server中指定段的地址,麻烦。其实还可以不指定段,直接定义全局变量,这样只要堆足够就可以啦。现在的方法是通过函数MEM_alloc(1,EXT_HEAP_SIZE,1)或者MEM_alloc(1,INT_HEAP_SIZE,1)来分配内存,类似于malloc函数。MEM_alloc是DSP/BIOS函数。——竟然还有DSP/BIOS?!

    三是注意刷CACHE。不刷不一定不对,刷了肯定对。函数是BCACHE_wbAll()和BCACHE_wbInvAll(),它们也是DSP/BIOS的API函数。

    四是小心VC和CCS下常用的标准C函数,如math.h里面的。不知道为啥它们跑到linux或者codec engine server里就不听话了。有个bug找了几天,才发现时cos()和sin()函数在linux的结果错了。不知道为啥。所以就不调用了,自己定义。比如sin()定义成:#define _sin(x) ((((((a6*(x) + a5)*(x) + a4)*(x) + a3)*(x) + a2)*(x) + a1)*(x) + a0)

    好。这个算法目前告一段落,机器视觉and分类器,我来了。

这篇关于XDM封装小结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/991212

相关文章

C#中checked关键字的使用小结

《C#中checked关键字的使用小结》本文主要介绍了C#中checked关键字的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录✅ 为什么需要checked? 问题:整数溢出是“静默China编程”的(默认)checked的三种用

C#中预处理器指令的使用小结

《C#中预处理器指令的使用小结》本文主要介绍了C#中预处理器指令的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 第 1 名:#if/#else/#elif/#endif✅用途:条件编译(绝对最常用!) 典型场景: 示例

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

C# Semaphore与SemaphoreSlim区别小结

《C#Semaphore与SemaphoreSlim区别小结》本文主要介绍了C#Semaphore与SemaphoreSlim区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、核心区别概览二、详细对比说明1.跨进程支持2.异步支持(关键区别!)3.性能差异4.API 差

C#中Trace.Assert的使用小结

《C#中Trace.Assert的使用小结》Trace.Assert是.NET中的运行时断言检查工具,用于验证代码中的关键条件,下面就来详细的介绍一下Trace.Assert的使用,具有一定的参考价值... 目录1、 什么是 Trace.Assert?1.1 最简单的比喻1.2 基本语法2、⚡ 工作原理3

C# IPAddress 和 IPEndPoint 类的使用小结

《C#IPAddress和IPEndPoint类的使用小结》本文主要介绍了C#IPAddress和IPEndPoint类的使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录一、核心作用网络编程基础类二、IPAddress 类详解三种初始化方式1. byte 数组初始化2. l

C++打印 vector的几种方法小结

《C++打印vector的几种方法小结》本文介绍了C++中遍历vector的几种方法,包括使用迭代器、auto关键字、typedef、计数器以及C++11引入的范围基础循环,具有一定的参考价值,感兴... 目录1. 使用迭代器2. 使用 auto (C++11) / typedef / type alias

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go 使用环境变量的实现小结

《Go使用环境变量的实现小结》作为软件开发人员,在项目中管理配置变量的重要性,本文主要介绍在Golang中处理环境变量的强大工具github.com/joho/godotenv包,利用这个包,你可以... 目录步js骤 1:安装步骤 2:制作 .env 文件步骤android 3:加载环境变量步骤 4:利用

Spring StateMachine 使用小结

《SpringStateMachine使用小结》SpringStateMachine是一个用于管理复杂状态流转的框架,本文就来介绍一下SpringStateMachine使用,具有一定的参考价值,... 目录一、基本概念二、核心组件三、引入依赖四、定义状态和事件五、配置状态机六、使用状态机七、添加动作和条件