海思3559
文章平均质量分 86
快跑bug来啦
这个作者很懒,什么都没留下…
展开
-
QT:不同UI间数据,信号的交互
接上文,手动绘制的矩形框毕竟还是在上位机的播放界面内,想要把数据发送给3559还是需要通过串口或者网口发送,没有部署在一个界面就需要不同UI间数据和信号进行交互了,数据还好说,全局变量都可以做到,信号的话使用connect将信号和槽连接起来就可以了,对于槽函数和信号发起者和槽的接收者一定要注意匹配。原创 2024-05-01 12:00:00 · 927 阅读 · 0 评论 -
BT656视频传输标准
凡是做模拟信号采集的,很少不涉及BT.656标准的,因为常见的模拟视频信号采集芯片都支持输出BT.656的数字信号,那么,BT.656到底是何种格式呢?本文将主要介绍 标准的 8bit BT656(4:2:2)YCbCr SDTV(标清) 数字视频信号格式,主要针对刚刚入门模拟视频采集的初学者入门之用。原创 2024-02-06 20:31:10 · 1112 阅读 · 0 评论 -
海思3559:MMZ内存、OS内存配置
海思3559的DDR最大支持到8GB(1)分配的OS内存和MMZ内存加起来的总大小不能超过实际物理内存的大小;(2)OS内存和MMZ内存互相之间的内存地址不能重合,否则会产生内存踩踏;(3)总的物理内存大小不变的情况下,OS内存和MMZ内存之间的分配是此消彼长,两者之间分配的份额需要取得平衡,以达到最优性能;也就是说将实际物理内存分成两部分——OS内存和MMZ内存,两部分内存的管理是彼此独立的;原创 2023-06-30 19:00:00 · 1466 阅读 · 0 评论 -
h264结构与码流
H264视频压缩后会成为一个序列帧,帧里包含图像,图像分为很多片,每个片可以分为宏块,每个宏块由许多子块组成原创 2023-06-16 19:30:00 · 1046 阅读 · 0 评论 -
海思3559万能平台搭建:SPI输出h264码流
面对各种各样的客户需求,spi接口也是一种传码流的形式,spi同步422可以保证抗干扰能力强的同时传输距离也很长,本文会介绍海思平台spi作为主机的发送功能以及发送码流的处理方式原创 2023-06-14 11:09:58 · 1104 阅读 · 1 评论 -
海思3559:BT656调试笔记
海思3559a的sdk例子是没有提供BT1120和BT656视频接入的,但实际上硬件是可以支持接入的。不过前提是只支持逐行方式输入,不支持隔行视频,如果想输入PAL制式的隔行视频,请先用芯片转成逐行再接入。不知道是官方手册有意无意的忽略还是太简单约定俗成,例程没有手册相关描述又非常模糊,这里给出SDK2.0.3.1版本的BT656输入调试笔记,输入由adv7280逐行给出。原创 2023-02-10 21:30:00 · 4364 阅读 · 2 评论 -
海思3559万能平台搭建:ini定制协议输入①校正系统时间
平台的搭建除了海思本身对于音视频的处理,难免需要串口网口之类收发指令并做出处理;每个甲方爸爸对于协议的规定肯定有所差异,以最简单的校对系统时间为例,用网口发送协议,通过ini配置文件加载协议变量的方式实现免编译,只更新ini配置文件就可移植产品功能的作用。原创 2022-11-06 21:45:00 · 712 阅读 · 0 评论 -
海思3559万能平台搭建:VGS的画线处理
海思的OSD功能除了之前提到的第三方库,自己的VGS也可以做到一些简单的诸如画线之类的操作,这里介绍下假如类似识别时需要画矩形框的时候可以的一种做法海思的VGS 是视频图形子系统,全称为 Video Graphics Sub-System。支持对一幅输入图像进行处理,如进行缩放、像素格式转换、视频存储格式转换、压缩/解压、打 COVER、打 OSD、画线、旋转、动态范围转换等处理。原创 2022-11-05 23:45:00 · 2974 阅读 · 4 评论 -
海思3559万能平台搭建:RTSP优化buffpool的引入
在只有一路编码进行rtsp播放和保存时。之前的思路是没有任何问题的,设计比较简单,但是如果我们的运算量上来了,也不仅仅一个通道编码了,编码速率,保存速率,rtsp发送包的速率的差异会越来越大,而每一包的大小又不可能相同,这个时候就需要引入一个缓冲池来平衡输入输出的速率不一致(简单这么理解一下),且解决包大小不同的问题理论部分节选自知乎专栏https://zhuanlan.zhihu.com/p/533321012代码部分给出了缓冲池功能源码以及调用部分代码。原创 2022-11-04 21:45:00 · 924 阅读 · 0 评论 -
海思3559万能平台搭建:TCP网口编程
日常开发除了串口还有网口也用来作为常用的协议收发端口,补充常见的网口编程。原创 2022-11-02 23:15:00 · 1108 阅读 · 0 评论 -
海思3559万能平台搭建:串口编程
平常的工作使用中,总是免不了要和串口打交道,协议的收发也经常通过串口来实现,海思3559下的串口和标准的linux下串口大同小异,可以参考之前zynq的串口编程,也可以直接阅读本文。原创 2022-11-01 22:45:00 · 1756 阅读 · 7 评论 -
海思3559万能平台搭建:C/C++混编
应用的开发有时候用C++就是比C更方便,更直接,海思的开发环境是集成了C++的环境的,kernel也默认编进去了C++的库,我们想在原先sample的基础上,用C++和C混编,其实只需要修改Makefile和代码里关于参数检查的相关部分(看该部分需不需要用C编,如果在函数内部调用externC是没用的)原创 2022-10-18 21:45:00 · 714 阅读 · 0 评论 -
linux下对函数运行时间的简单估计
性能的要求一定是在慢慢的成长中一点点接触到的,比如50hz的图像,就需要我们在20ms内将数据处理完成,那我们怎么简单估算下我们代码的运行时间呢?函数"clock_gettime"是基于Linux C语言的时间函数,他可以用于计算精度和纳秒。原创 2022-10-19 19:45:00 · 450 阅读 · 0 评论 -
海思3559万能平台搭建:添加一个新的sensor
海思对摄像头的支持是只有固定的,如果我们想更换新的相机,让fpga接入通过lvds接口给3559提供视频源的话,除了相关配置,还需要添加新的sensor库,编译新的isp库,而且,如果移植不善,还可能对第三方库(SDL,FreeType,SDL_TTF等)造成影响,需要进一步修改。原创 2022-10-17 23:45:00 · 5269 阅读 · 0 评论 -
海思3559:uboot顶层Makefile分析
符号 \是makefile的换行符其中,|是shell语法中的管道结构,例如:XXX | YYY ,表达式XXX 的输出将作为表达式YYY的输入,YYY的输出才是整句表达式的输出uname -m 指令将输出负责编译的主机cpu架构,比如ixx86;表达式1中,方括号是固定用法,是为了突出里面表达式的作用是判断语句。$(if xxx,yyy,zzz)是makefile的判断函数,如果xxx为真,则执行yyy并返回值,否则执行zzz并返回值,由此可知如果未成功创建BUILD_DIR,就会输出错误打印信息;原创 2022-10-12 22:45:00 · 418 阅读 · 0 评论 -
海思3559万能平台搭建:DDR移植的一些问题
开发板是绝对无误的硬件环境,但是我们平时的开发肯定会接触自己搭建的硬件环境,难免会有这样那样的小问题,这里给出一次DDR的调试过程。原创 2022-10-11 23:15:00 · 2326 阅读 · 4 评论 -
DDR时序
移植ddr时读到的ddr工作原理和时序分析,来自哔哩哔哩,原视频讲的很棒现在整理为文字。原创 2022-10-13 23:45:00 · 4248 阅读 · 0 评论 -
海思3559:百兆网口的配置
海思3559的开发板网口是默认支持千兆/百兆的,这里的自适应,是从RJ45出来后和PC侧的自适应,而实际上3559对于网口的设置,默认都是RGMII模式,除了对应的软件配置,硬件部分需要通过上拉电阻的方法和phy芯片的的支持决定3559最终要选择那个模式,比如PHY芯片只支持到百兆,硬件部分就需要配置成RMII模式,对应的软件配置也需要对应的改为RMII,官方文档不知道是没有写还是太杂了没找到,这里补充完整的移植方法。原创 2022-10-03 18:30:00 · 2043 阅读 · 0 评论 -
海思3559万能平台搭建:OSD的自动反色
OSD功能在之前两篇中已经满足了大部分的应用场景,为了进一步提升效率和自适应环境亮度和反色,这里介绍改进方法。原创 2022-10-02 23:45:00 · 933 阅读 · 0 评论 -
海思3559U-Boot移植(二):更换新的SPI Nand Flash
在开发板上的折腾终归是小打小闹,真正的实践还需要从实际项目和自己参考画的板子选的器件入手,记录更换未经SDK包测试过的国产FLASH调试记录和踩到的坑,重点参考SDK文档包下的ReleaseDoc\zh\02.only for reference\software 基于Hifmcv100控制器的Flash移植指南.pdf,还有\ReleaseDoc\zh\00.hardware\chip路径下的Hi3559A╱C V100 ultra-HD Mobile Camera SoC 用户指南.pdf。原创 2022-10-05 19:45:00 · 3422 阅读 · 2 评论 -
海思3559万能平台搭建:OSD功能的优化
功能测试的OSD使用还是比较简单的,随便找个位置做个时间戳,背景还是黑色,且只能显示一行,很明显效果并不是那么理想,这里做一个升级,对海思区域叠加的配置以及osd窗口的创建等都在本文一并写了。原创 2022-10-01 22:45:00 · 2010 阅读 · 1 评论 -
海思3559万能平台搭建:RTSP实时播放的优化
之前的rtsp功能,仅仅是对demo的简单修改,(是通过保存本地文件后在读取本地文件数据再播放)。这样存在的主要问题是,如果是先保存好文件,在读取文件传给rtsp播放,有多此一举的嫌疑,而且这样人为的增加了延迟不说,有没有这么大的硬盘让我们一直实时观看呢。更好的一个方法是我们参考海思保存码流的办法,在保存前增加开关,确定是否需要保存(参考我们的配置文件,都不需要重新编译,即可选择是否保存)是否需要实时播放,将要保存的文件直接发给rtsp是个更为明智的选择。另外时间戳也不可忽视,在实时的码流中还是非常重要的。原创 2022-09-29 20:17:37 · 2242 阅读 · 15 评论 -
海思3559万能平台搭建:在线调试3VsCode插件
qtcreator也有类似功能,但是vscode比较熟悉,还是选择微软官方提供的Remote Development插件吧,真的非常非常好用! 点击“调试” ->“添加配置”,然后选择“C++(GDB/LLDB)”选项, 会在当前文件夹新建一个名为“launch.json”的文件,此文件会存放在.vscode 目录下, launch.json 文件中有几个项目是需要我们根据实际情况配置的: ①、 name:调试的项目名 ②、 program:需要调试的应用程序可执行文件路径。 ③原创 2022-07-14 21:15:00 · 849 阅读 · 0 评论 -
海思3559万能平台搭建:在线调试2ssh的移植部署
gdb和gdbserver的安装是在线调试的基础,熟悉命令行调试的在这一阶段就可以开心debug了,距离vscode的图形化界面还是有点一段距离,Remote Development插件是依赖ssh的,我们还需要确保板子的ssh功能正常启用。一般来说busybox可以直接配置,出于普遍性考虑这里也自己总0搭建 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录原创 2022-07-13 20:00:00 · 904 阅读 · 0 评论 -
海思3559万能平台搭建:在线调试1gdb+gdbserver
一个成熟的平台,在线调试的功能自然也不可或缺。就像单片机常备的MDK IAR等集成式的IDE,Xilinx的sdk等,图形化的可视调试让debug起来非常方便,有没有一种适用广的嵌入式设备调试方法呢?通过筛选对比和踩坑经历,以海思平台为例,总结了gdb+gdbserver+vscode插件的方法,本篇重点介绍gdb的使用 gdb 工具是 GNU 项目调试器,基于命令行。和其他的调试器一样,我们可以使用 gdb 来一行行的运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等,它是 UNIX/LIN原创 2022-07-12 20:15:00 · 1320 阅读 · 1 评论 -
海思3559万能平台搭建:配置文件iniparser的引入
功能上的增增补补其实相对容易,而之所以想叫万能平台,最核心的多亏了配置文件的引入。够用和好用也不仅仅是对于使用者,难道对于开发者就不能提升自己的效率吗? 大佬之所以能成为大佬,想必除了要有过硬的基础实力,更要有站得更高的眼界和经验。一日,在沟通怎么能让各个平台或者目标客户都能方便移植的讨论上,想起了配置文件。之前考虑这个问题还停留在条件编译上,想着总得遇见其他平台再重新定义或者注释完在编译烧写呗,又或者运行时传参,可是那才能有几种模式啊。好像都只是为了升级而升级,意义并不是很大。 大佬提到,那能原创 2022-07-11 20:00:00 · 455 阅读 · 0 评论 -
海思3559万能平台搭建:OSD实时叠加的支持2区域RGN的配置
位图的生成只是我们字符叠加的基础,具体表现就要靠对区域RGN的配置了 现在距离移植成功osd也有一段时间了,所有所有的报错一时也想不起来太多,当时是在焦头烂额没有记录下全部,但是遇到错误一定要按照logmpp下的错误告警做出修改,再次感谢之前的转变 这部分的代码是参考手册写的,直接搬来肯定肯定肯定是跑不起来的! HI_MPI_RGN_Create 出师不利,生成区域就开始报错,这个还是比较直接的根据提示修改画布数量报错2 HI_MPI_RGN_AttachToChn实际上,创建通道的时原创 2022-07-08 22:00:00 · 1708 阅读 · 2 评论 -
海思3559万能平台搭建:OSD实时叠加的支持1SDL库 FREETYPE库 SDL_TTF库的移植
万能平台字符叠加的功能自然少不了,但海思默认支持的都是静态位图,如果实时刷新或者我们向在屏幕上显示一些中文信息就捉襟见肘了,所以这里需要参考移植开源项目SDL的库来帮我们实现这一想法 网上教程很多,但是对于使用aarch64-himix100-linux-gcc编译工具的3559,没有可以一次通过的,本文踩扁了所有移植编译的坑,希望对后来者有所帮助 首先编译freetype,注意需要指定–enable-freetype-config,在编译SDL2_ttf的时候需要用到 很不幸出师不利原创 2022-07-07 22:00:00 · 1890 阅读 · 5 评论 -
海思3559万能平台搭建:RTSP实时播放的支持
想搭建功能完备的万能平台,rtsp的支持自然必不可少。不论是编码的h264和我们用来实时传输的rtsp,都是可以单拎出来作为研究方向的,所幸在功能支持上而言,暂时全部当做黑盒子调用,还是比较容易实现的。其实知识是学不完的,选取我们有需要的即可。 实时流传输协议(Real Time Streaming Protocol,RTSP),RFC2326(中文版),是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如原创 2022-07-06 20:15:00 · 2787 阅读 · 1 评论 -
海思万能平台搭建:颜色空间转换YUV2RGB
颜色空间的转换,除了闹着玩的找找定位,画画框,更具代表性的就是yuv到rgb的转化 主要用到了sdk中ive内的算子,由于默认的是不支持ive的静态库的,需要在Makefile中将其添加进来代码 还是新建专门用于转换的线程 在原先处理线程的基础上进行修改HI_MPI_IVE_CSC 是核心的转换函数,位于SVP目录下HiIVE API 参考手册中,重点是对该函数参数的配置 注意事项要看仔细,这里对分辨率有着明确的要求,没细看的我第一次天真的又跳进自己挖好的坑里,不过在上一期思维方式原创 2022-07-05 23:00:00 · 1685 阅读 · 1 评论 -
海思3559万能平台搭建:YUV422的踩坑记录
万里长征永远不可能一帆风顺,记录下一个看似寻常却对后续开发举足轻重的一次踩坑记录,这次之后,全新的问答搜索乱撞式的debug就要翻篇,开始正向的定位开发啦! 经过一番对YUV420的折腾,相对而言差不太多的422格式本没放在心上,再加上有前同事用过这样的格式,似乎只是修改属性参数PIXEL_FORMAT_E的事情呗? 最开始肯定是想当然的改了vpss的参数,自然不生效,因为对vi的理解并不深刻,之前由于都是传感器加载的问题,感觉自己配了也没用反正会调api从传感器里取参数,就没改,这样肯定是不对滴。原创 2022-07-04 20:30:00 · 1140 阅读 · 1 评论 -
海思3559万能平台搭建:在截获的YUV图像上旋转操作
为了进一步巩固yvu格式的存放方式以及应对更多应用场景,在补充下YUV图像怎么旋转 一般的来说,要旋转的角度无非就是90,180,270,我们只要能转到90度后进行翻转或者镜像是可以做到其他角度的,参考下图来看,第一行变成了Y13Y9Y5Y1,对应的V4U4也提到了前面,但是很明显这样的运算量或者换个角度头得多大啊HI_MPI_VPSS_SetChnRotation 海思也自然考虑到了这点,自己底层有硬件加速,很方便的提供了相应的旋转函数HI_MPI_VPSS_SetChnRotation和任原创 2022-07-01 20:00:00 · 582 阅读 · 0 评论 -
海思3559万能平台搭建:在截获的YUV图像上画框
万里长征第二步,YUV的认识和编码还在进行中,熟悉了YUV格式的原理和储存方式后,我们就可以结合第一步中从vpss通道截获的YUV图像上尝试修改,叠加自己的算法,先简单粗暴的改改,后续在替换不是,毕竟咱是“万能”平台,嘿嘿 一般来说,海思的图像存储方式由下面一些参数决定(可以参考VIDEO_FRAME_S) 其中enPixelFormat 决定了一个像素是YUV还是RGB,是planar还是packet,也就是我们上一篇着重介绍YUV图片的各种采样和存放的排列组合 enVideoForma原创 2022-06-30 22:45:00 · 1629 阅读 · 0 评论 -
海思3559万能平台搭建:YUV格式简介
想要搭建万能的适配平台,万里长征的第二步是YUV格式里颜色空间的等的转化,只有了解熟悉了这一格式和修改方法才能自己根据需要做出调整不是 YUV模型是根据一个亮度(Y分量)和两个色度(UV分量)来定义颜色空间,细分常见的格式有很多,在存储方式部分展开细细说明。比如我们在海思平台下使用相机默认图像格式是NV21或者叫YUV420SP格式 YUV 的原理是把亮度(Luma)与色度(Chroma)分离。 “Y”表示亮度,也就是灰度值。 “U”表示蓝色通道与亮度的差值。 “V”表示红色通道与亮度原创 2022-06-29 22:00:00 · 741 阅读 · 0 评论 -
海思3559万能平台搭建:获取数据帧修改后编码
有了这么长的铺垫和反复的啃sample,现在开始搭建自己的平台就底气多了,倒也不至于万能平台哈哈,只是在完成配置文件的功能后,可以不用改代码重新编译,就可以实现多场景多平台多功能下的使用了 万里长征第一步,在vi暂时没有改动依靠传感器的前提下,自然就是找个合适的位置从vpss处获取图像信息了,查看vpss处有关api,首先想到的自然是HI_MPI_VPSS_SendFrame和HI_MPI_VPSS_GetChnFrame(HI_MPI_VPSS_GetGrpFrame是从group获得的原始图像,主原创 2022-06-28 21:45:00 · 1609 阅读 · 2 评论 -
海思3559开发常识储备:相关名词全解
接连啃了两个sample,还是觉得笼笼统统模模糊糊,没有达到想要的一目了然的程度,那就再整理整理资料,补些硬货吧 颜色的本质是光的波长,但是因为有人去看才有了颜色这个概念 颜色是由亮度和色度共同表示的,色度是不包括亮度在内的颜色的性质,它反映的是颜色的色调和饱和度。 色彩空间,色彩空间”一词源于西方的“Color Space”,又称作“色域”,色彩学中,人们建立了多种色彩模型,以一维、二维、三维甚至四维空间坐标来表示某一色彩,这种坐标系统所能定义的色彩范围即色彩空间。我们经常用到的色彩空间主要有原创 2022-06-27 23:45:00 · 2181 阅读 · 0 评论 -
海思3559 sample解析:venc
分析完vio的例程后瞬间信心满满,自信的去找大佬请求分配任务了,“简简单单”几个步骤,照着葫芦画瓢,调调参数,对应位置具体分析具体修改,美好光明的“大路”清晰明朗啊! 年轻人,too young too naive啊要真是这么简单,用芯片大炮打蚊子吗? 可是看起来就是很简单啊,属性挨个配置,一绑定,巴拉巴拉 那如果不绑定呢?需要自己加算法修改呢?怎么获取图像,怎么输出?假如要做个人脸识别呢?有没有感觉到越简单的流程好像越不自由,很多都没法自己掌控,想自己随需求修改的更多,自然就没那么容原创 2022-06-25 21:15:00 · 2428 阅读 · 7 评论 -
海思3559 sample解析:vio
拿到开发板,编完了平台sample,自然按捺不住要去简单学习测试了。打开最直观相对也比较简单的vio例程做个到手分析和流程梳理吧 一开始自然是最磕磕绊绊的,连上HDMI线,串口登录后运行,屏幕乌漆嘛黑,尝试了几个参数后怀疑是不是线有问题或者哪里配置不对,就打开了snap例程,毕竟显示不了咱保存下来也是一样的看嘛 可惜还是没有半点反应,触发拍照超时,那就只能是sample之前的配置就有问题了呗完整的分析一下平台搭建后的流程makefile.param文件中首先需要将传感器型号选对,根绝自己所用传原创 2022-06-24 20:45:00 · 2880 阅读 · 13 评论 -
Windows和Ubuntu双系统安装(非虚拟机)
前言: 虚拟机的配置和使用经常会给熟悉linux的用户带来困扰,特此补充Windows和Ubuntu的双系统安装方法1.简介 本教程是在Windows系统下安装ubuntu系统的教程,安装成功后可以在开机启动项选择ubuntu或win进入不同系统。(win7和win10实测,win10多一步)2.准备工作 u盘:大于等于8G的就行,ubuntu安装包2G左右,注意要提前备份u盘内容 ubuntu镜像文件:在官网下载最新的镜像包,本文18.04 LTS版本 https://ubun原创 2022-05-19 20:00:00 · 3378 阅读 · 0 评论 -
海思3559文件系统(二):nfs挂载
1 在虚拟机中安装NFS 执行:apt-get updatesudo apt-get install nfs-kernel-server#安装nfs-kernel-servervi /etc/exports 修改配置文件,在文件中写入/home/xxx/nfs共享文件夹名/ *(rw,sync,no_subtree_check,no_root_squash) 比如/home/book/Downloads/hi3995_tools/Hi3559AV100_SDK_V2.0.3.1/mpp原创 2022-05-17 21:45:00 · 898 阅读 · 0 评论