自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 问答 (1)
  • 收藏
  • 关注

原创 蓝牙和音频速率

低速:125kbit/1Mbit/2Mbit 每秒,125k不满足,其余满足。mp3音频,采样率44100,16bit位深,即每秒采样44100次,每次采集16bit,低速:1~3Mbit/s(满足);高速:24Mbit/s(满足),高速:48Mbit/s(满足),

2024-11-24 15:48:16 579

原创 C++面试问题

6答:没有区别,都是返回string字符串的实际字符数,最开始只有length(),是匹配C语言的,后来有了STL,又有了size(),匹配容器,容器都用size。同样插入一个元素,普通map性能比unordered_map要差,因为map插入元素后还要实现红黑树的自平衡,unordered_map没有这个过程。(刷leetcode遇到,普通map也可以通过,官方题解用了unordered_map)。8答:map内部是红黑树实现(一种自平衡二叉查找表),unordered_map 内部是哈希表实现。

2024-11-24 15:47:00 144

原创 MNN NC4HW4

524288=512*512*2]156, [..89]158, [..90]158, [..91]158, [..92]159, [..93]160, [..94]157, [..95]156, [..96]159, 这是第三channel,82, 141, 156, 0, 0, 0, 0, 0, 84, 143, 158, 五个零, 84,143,158, 五个零, 84,143,158, 五个零... ...float *outDat = (即input Tensor host内容)

2024-11-24 15:44:03 173

原创 YUV422

U(Cb = Color blue)表示色度分量:B-Y,图像蓝色部分去掉亮度,反映了RGB输入信号。A260-1680 项目所用摄像头模组,输出的yuv422,是先存所有的y,然后uv交叉存储。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。(3)yuv420: 每上下各2个共4个y配一个u和一个v;点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。(a)yuv交叉存储,y总在最前,后面先u后v;(c)先存y,再单存u,最后单存v;(d)先存y,再单存v,最后单存u;

2024-11-23 18:17:23 268

原创 Read Bin And OpenCV Draw

【代码】Read Bin And OpenCV Draw。

2024-11-23 17:40:31 128

原创 NHWC to NCHW

值得注意的就是MNN.Tensor传入的图片是(3,256,256)的,但inputVar传入的是(1,3,256,256),需要用numpy增加多一个维度。pytorch用的是NCHW格式,MNN则会通过copyFrom把NCHW转化成NC4HW4,可想而知特征图也都是NC4HW4的了,所以要提取特征图的话需要先把格式转化回来。《MNN框架下的特征图格式问题》 : https://blog.youkuaiyun.com/weixin_43840139/article/details/109814869 ,

2024-11-23 17:22:05 173

原创 Linux 安装 opencv

Gitpkg-configcd build或者看哪个能用用哪个,make -j7。

2024-11-23 17:04:49 235

原创 Win10 Edge浏览器修复重装

2.找到“HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge”。(没有Edge就新建项,命名为“Edge”)。3.新建“DWORD(32位)值”,将值名改为 RendererCodeIntegrityEnabled,双击值名称,将数值数据项改为 0(默认值0)。Microsoft Edge浏览器 打开网页报“兼容性问题”,只有点开右上角三个点然后点“设置”后,才能固定显示这个错误。Win10 Edge浏览器突然就坏了,啥网页也打不开。

2024-11-23 17:01:46 531

原创 CEVA 学习

3、Ceva float指令有 1 cycle 开根号,求导数的指令vfpinv,vfpsqrt,vfpsqrti。Ceva的这个编译器,license每年2500美刀,永久版是10000美刀,Ceva的仿真器,3000美刀。6、条件判断影响并行,可以先做一个循环把有效数据提取出来,再做一个循环真正处理数据。1、Ceva并行L/S指令,vpld,vpst,一次可以加载8个数据,远比Neon,SSE强大,可以跨距超大加载,还支持自定义索引。8个数据的索引可以是(2,3,5,7,9,10,11,13)

2024-11-23 16:37:41 287

原创 浮点数-十六进制转换

所以网站是阅读顺序: 0x3ea45a1c, 由左到右是 高字节-->低字节,VS是存储顺序: 由左到右 是 低字节-->高字节。

2024-11-23 16:36:02 2409

原创 Linux程序变量名往往很短

变量名短还有个好处,就是函数调用不用写成2行,这样gdb调试只需要一个n(next)就执行完函数,否则有几行就得几个n,最后一个n才执行函数。难怪很多linux程序中的变量名都很短,如果变量名很长,那就只能动鼠标复制了。变量名短的情况下,可以直接手敲。因为要用gdb调试啊,

2024-11-23 16:34:02 101

原创 English01

CEVA-XM4 包含由40个 256bits vector register组成的VRF,一对vector register可组成512bit累加器,v0-v31共32个可用作通用向量寄存器(general-purpose vector register), v24-v39共16个可用作累加器,意味着,v24-v31既可用作通用向量寄存器也可用作累加器。Post Shift : 对应的是Pre Shift,前者是先操作后移位,后者是先移位后操作。concurrent : 并发的。

2024-11-22 12:44:26 312

原创 CEVA 判断列数不是16整数倍

【代码】CEVA 判断列数不是16整数倍。

2024-11-22 12:36:32 118

原创 IO效率 计算效率

理论计算时间 / max(理论IO时间,理论计算时间) = 理论计算效率峰值。理论IO时间 / max(理论IO时间,理论计算时间) = 理论IO效率峰值。理论计算量theory_ops / 算力= 理论计算时间,理论IO时间 / 总硬件耗时 = IO效率。理论计算时间 / 总硬件耗时 = 计算效率。理论数据量 / 带宽 = 理论IO时间,

2024-11-21 21:57:58 115

原创 C++ 智能指针转普通指针

(2) 智能指针在函数内部定义后,使用 .get() 依然能获得nullptr,但用普通指针同样在函数内部定义后,默认是0xcccccccc,需要手动赋初值为0.ceva环境不支持智能指针,需将 std::shared_ptr 这些智能指针转为普通指针,但是有些注意地方,(1) 智能指针支持以抽象类作为模板创建指针,但是普通指针不可以,比如。需要把普通Tensor*指针转为 shared_ptr 智能指针,是不行的,编译报错,说不能用抽象类定义指针变量,只能改为。

2024-11-21 21:24:05 386

原创 C++ 虚函数 纯虚函数

纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。看到深度骨架代码在类里定义了一个virtual虚函数,同时又实现了这个虚函数,且这个类没有子类,虚函数不是子类继承用的吗?定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数.定义一个函数为虚函数,不代表函数为不被实现的函数。定义一个函数为纯虚函数,才代表函数没有被实现。

2024-11-21 21:11:34 144

原创 C++ shared_ptr 智能指针

并且,由于该类型智能指针在实现上采用的是引用计数机制,即便有一个 shared_ptr 指针放弃了堆内存的“使用权”(引用计数减 1),也不会影响其他指向同一堆内存的 shared_ptr 指针(只有引用计数为 0 时,堆内存才会被自动释放)。内存管理机制,C++11 新标准在废弃 auto_ptr 的同时,增添了 unique_ptr、shared_ptr 以及 weak_ptr 这 3 个智能指针来实现堆内存的自动回收。//或者 std::shared_ptr p5 = std::move(p4);

2024-11-21 21:04:03 584

原创 C++ =delete

C++11中,当我们定义一个类的成员函数时,如果后面使用"=delete"去修饰,那么就表示这个函数被定义为deleted,也就意味着这个成员函数不能再被调用,否则就会出错.原因就是Son子类没有自己的构造函数,引用了父类的构造函数,但父类构造函数带=delete不能被调用,导致报错。错误(活动) E1790 无法引用 "MNN::Son" 的默认构造函数 -- 它是已删除的函数。创建Son类实例就会报错,

2024-11-16 11:51:57 162

原创 C++ auto

/不可以,编译器根据第一个子表达式已经推导出 auto 为 int 类型,99.5是double,与int冲突。注意:使用 auto 类型推导的变量必须马上初始,因为 auto 在 C++11 中只是“占位符”,并非如 int 一样的真正的类型声明。//推导为int,注意:右边的表达式是一个引用类型时,auto 会把引用抛弃,直接推导出它的原始类型。//推导auto为int, 整数默认推导为int。

2024-11-16 11:50:17 212

原创 C++01

在C/C++中,宽字符类型wchar_t 它和我们熟悉的char类型是一样的,只不过,涉及宽字符的相关库函数,都要用宽字符类型的库函数来处理,一般有w作为前缀。比如,’赵‘这个字,用2个字节来表示,同样,‘A’也用两个字节来表示,这样虽然浪费了一部分内存空间(因为原来一个字节能表示的字符,现在都需要两个字节),但是,解析的时候会方便多了。这样下来,如果存储一个带有中英文的字符,会比较麻烦,因为,你需要额外的一个数组,来表示上面的字符数组的每个元素,所占用的字节,这样才能正常解析。如此一来,简直太麻烦了。

2024-11-16 11:49:46 665

原创 C++ && 传参 引用 右值引用

函数形参用双与号 && 修饰,表示形参为右值引用,传入实参必须是右值。单与号 & 修饰是"左值引用", 双与号 && 修饰是“右值引用”。经常在MNN源码看到&&, 这个双与号什么意思?MNN里Session类的构造函数是。

2024-11-16 11:48:18 174

原创 C++ && 引用 右值引用

经常在MNN源码看到&&, 这个双与号什么意思?MNN里Session类的构造函数是。

2024-11-16 11:45:56 115

原创 C C++ 宏 do while(0)

二、 多行语句的宏,用 do{,} while(0) 包含起来,这样不易造成性能负担,也可防止展开时出错。一、 表达式宏能少用就少用,可以用 inline 函数代替, 表达式宏的表达式两边最好加括号().这里第一条我以前就知道,第二条在CEVA-CV代码见过,同事说也是网上看到的没做深究。

2024-11-16 11:44:36 156

原创 Anaconda01

pip install opencv-contrib-python==3.4.1.15 安装opencv扩展,版本要与opencv一致,opencv 3.4.2 后有些算法申请了专利工具包无法看到源码,所以安装3.4.1.15版本。cd Scripts 多个版本python必须进入想要版本的Scripts目录才能用pip,安装Anaconda,然后运行Anaconda PowerShell Prompt,"python" 查看是否打印python版本信息验证安装Anaconda安装成功,

2024-11-16 11:41:56 166

原创 数据上溢和数据下溢

数据下溢:数据最小分辨率低于fp16/bf16能表示的最小分辨率,导致梯度等参数明明有更新时,因为fp16/bf16分辨率不够细导致参数并无变化。用fp32+fp16 或者 fp32+bf16 混合精度训练模型时,会出现数据上溢和下溢。数据上溢:数据范围超过fp16/bf16表示范围。单精度浮点数fp32,半精度浮点数fp16,

2024-11-16 11:38:50 192

原创 C++实践

产生警告 C6283: <变量> 是使用数组 new []分配的,但随标量删除一起删除。此缺陷可能会导致泄漏、内存损坏,并且当运算符被重写时,会崩溃。

2024-11-16 11:37:10 210

原创 浮点二进制互转

浮点<-->二进制互转:

2024-11-16 11:35:33 152

原创 0xbeef 0xdeadbeef

Dog food”指的就是就是Cisco在IPv6上“eating its own dog food”(也即用自家的设备)的做法。Hexspeak的转写规则为:数字“0”表示字母“O”,“1”表示“I”或“L”,“5”表示“S”,“7”表示“T”,“6”、“9”则各自表示“G”与“g”,其它的数字则可利用。0xBAADF00D(“bad food”)在微软的LocalAlloc(LMEM_FIXED)函数中使用,用以在已启用调试堆的情况下,标识未初始化的分配堆内存。

2024-11-16 11:20:54 709

原创 windows远程桌面链接启动命令

Win+R ---- "mstsc"。

2024-11-16 11:14:26 107

原创 notepad++ 双击高亮|多格式标记

1、双击高亮颜色设置:设置——语言格式设置——Global style——样式——Smart Hightlighting2、打开双击高亮功能:设置——首选项——高亮——勾选“启用智能高亮”3、使用不同格式标记多个对象3.1 使用格式1——5进行标记 : ctrl+1→5(default)3.2 清除格式:搜索——清除颜色标记——分别选择清除格式1-5修...

2024-11-16 11:10:05 1014 1

原创 extern c详细用法

xtern "C"的用法解析2012-03-20 23:29 by Rollen Holt, 88007 阅读, 16 评论, 收藏, 编辑1.引言  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”)...

2024-11-16 11:09:48 753 1

原创 .json文件

第三种类型是映射mapping,也就是一个名/值name/value,即数据有一个名称,还有一个与之相对应的值,这又称作散列hash或字典dictionary,比如“蓉城:成都”。可见,json非常易学易用,所以,在短短几年中,她就取代了xml,成为了互联网上最受欢迎的数据交换格式。第二种类型是序列sequence,也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组array,或者列表list,比如“成都,重庆”。JSON采用完全独立于语言的文本格式,但也使用了类似于C语言家族的习惯。

2024-11-16 10:42:43 224

原创 bootloader作用

其实bootloader主要的必须的作用只有一个:就是把操作系统映像文件拷贝到RAM中去,然后跳转到它的入口处去执行。当然,为了实现这个功能(以及其它附加功能),我们必须对硬件做一些必要的初始化,这个也是必须的(废话!)。除了这个必须的,现在的bootloader还常常会加入以下功能:1.将操作系统映像文件写入FLASH/硬盘等:读取过来的操作系统文件,除了可以拷贝到RAM中直接运行...

2020-01-29 09:34:26 683

原创 自己出题

long a=-25;unsigned long b = (unsigned long)a;a=(long)b;printf("%d",a);的输出结果?答: -25long a=-25;unsigned short b = (unsigned short)a;a=(long)b;printf("%d",a);的打印输出结果?输出结果: 655...

2020-01-29 09:33:12 258

原创 面试问题

陶瓷电容与钽电容区别Dcdc ldo区别阻抗匹配单片机开发感想代码量底层板框图。任务调度是怎样进行的。他们做多核架构的平台,自己裁剪linux。...

2020-01-29 09:32:27 176

原创 vs code 插件|中文|跳转|折叠

1、无脑安装一直下一步。2、最左侧extension是装插件的地方——搜索框分别搜索——c/c++,c++ Intellisense,Guides ,ARM进行安装。前两个在拖入一个c文件时会自动提示安装。3、跳转:ctrl+左击————到definition。ctrl+Alt+左击————新窗口打开定义。Alt+← ————返回上一处,Alt+→是到下一处。...

2020-01-29 09:31:01 2808

原创 优化

1 改完a1段要看后面的a2段有没有使用a1中改动的寄存器2 根据左移的正负数对循环进行分情况拆分3 可以用连续的ldr代替循环中

2020-01-29 09:30:01 162

原创 C语言的符号重载

static 在函数内部:表示该变量的值在各个调用间一直保持延续性。在函数外部:表示本函数只对本文件可见。extern用于函数定义:表示全局可见(属于冗余的)。用于变量:表示它在其他地方定义。void用于函数返回值:表示不返回任何值。用于函数指针:表示通用指针类型。位于参数列表:表示没有参数。*乘法运算符;用于指针;声明中表示...

2020-01-29 09:28:16 179

原创 汇编前变址、后变址、回写

前变址: ldr r0,[r1,#4] ;[r1+4] →r0前变址回写:ldr r0,[r1,#4]! ;r1+4→r1,[r1]→r0后变址回写:ldr r0,[r1],#4 ;[r1]→r0,r1+4→r1...

2020-01-29 09:27:30 1152

原创 vld1 vld2

Vld1.s32 {q0,q1},[r0]Q0: 0x00000004000000030000000200000001Q1: 0x00000008000000070000000600000005vld2.s32 {q0,q1},[r0]Q0: 0x00000007000000050000000300000001Q1: 0x00000008000000060000000...

2020-01-29 09:26:28 508

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除