本文主要是介绍海思芯片研究开篇介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
海思音视频处理芯片介绍
- 不多介绍了,大家都知道。
海思hi3516dv300 SDK目录介绍
1. 板子测试文档,用来测试买来的板子是否是正常的,测试不通过,可联系商家换新。
2. 单独资料包:提供u-boot源码,内核源码,文件系统源码,mpp测试demo,h264,h265流推送demo,安装交叉编译环境和编译链等资料。
3. 虚拟机开发环境:提供已经配置好了的开发环境。
4. onvif测试文档
5. RTMP推流测试
6. 交叉编译链
7. 工具: 串口调试,tftp等开发工具。
8. 海思SDK:SDK开发文档。
9. emmc操作:海思芯片内存和外存都比较小,挂载emmc可以拷贝更多的东西到开发板。
海思hi3516板子测试
当你买了一块海思开发板的时候,商家会提供给你一份开发板的详细资料。里边有产品参数和开发文档,甚至一些原理图。新手的话,肯定会茫然,不知从哪开始研究这块板子。
首先测试板子是否正常。
在上面商家提供的资料里边。 看那个板子测试文档。 他们会提供测试板子是否能正常运行,是否正常取流的一些demo文件。 这一步很简单,你只需要将demo用tftp下载到板子上运行测试就好。
- 首先下载VLC2.2.8这个软件,安装到你电脑windows操作系统里面。
- 安装usb转串口板驱动,然后设置好串口115200的波特率,具体设置看串口设置图片。在securecrt那个软件里面使用。设置好后,板子上电,应该可以看到板子的启动信息。
- 板子测试之前请把板子网口和电脑有线网口连通,可以在板子端使用ping 命令:ping 电脑ip测试,看网络是否已经通了。
- 板子启动后,将提供的sample_venc 这个文件放到TFTP服务器的服务目录里面。在你windows系统里面运行TFTP服务器软件,开启tftp服务器。
- 在板子的securecrt串口调试终端里面输入以下命令:
我这里192.168.1.100 指的是电脑windows的ip,下面命令的192.168.1.100请把他改成你windows实际的ip地址
从tftp下载文件到板子命令:
tftp -g -r sample_venc 192.168.1.100
chmod +x sample_venc
./sample_venc 0
上面的操作会生成一个.h264文件。 上传到windows主机上。
tftp -p -l stream_chn1.h264 192.168.1.100
使用vlc播放器播放这个264文件,如果正常播放则板子正常。
海思SDK提供的DEMO模块介绍
海思提供下列模块代码。
sample_venc(视频数据编码)
sample_vdec(视频数据解码)
sample_audio(音频相关)
sample_snap(拍照)
sample_dpu_main(Depth Process Unit,深度图)
sample_avs(Any View Stitching,全景拼接)
sample_fisheye(鱼眼模式)
sample_vio(视频输入输出)
sample_vgs(Video Graphics Sub-System,视频图形子系统)
sample_tde(Two Dimensional Engine,利用硬件为OSD和GUI提供快速的图形绘制功能)
sample_hifb(Hisilicon Framebuffer,基于Linux FB 基本功能扩展了一些图形层控制功能)
sample_awb_calibration(自动白光平衡测量)
sample_ive_main(智能加速引擎)
sample_dis(Digital Image Stabilization,数字稳像)
sample_dsp_main(DSP测试)
sample_nnie_main(神经网络硬件加速单元测试)
sample_venc(视频数据编码)
# ./sample_venc
Usage : ./sample_venc [index] index:0) H.265e@4K@120fps + H264e@1080p@30fps.1) H.265e@4K@60fps + H264e@4K@60fp.2) Lowdelay:H.265e@4K@30fps.3) IntraRefresh:H.265e@4K@60fps + H264e@4K@60fps.4) Qpmap:H.265e@4K + H264e@4K@60fps.5) Mjpeg@4K@60fps +Jpeg@4K.
shell 说明:
运行sample_venc (录制) 视频编码样例
使用方法: ./sample_venc [index]
参数<索引>
0) h265编码,4096×2160分辨率,每秒120帧 + h264编码,1920x1080分辨率,每秒30帧
1) h265编码,4096×2160分辨率,每秒60帧 + h264编码,4096×2160分辨率,每秒60帧
2) Lowdelay(低延时属性):h265编码,4096×2160分辨率,每秒30帧
3) IntraRefresh(P 帧帧内刷新):h265编码,4096×2160分辨率,每秒60帧 + h264编码,4096×2160分辨率,每秒60帧
4) Qpmap(是一种码率控制模式):h265编码,4096×2160分辨率 + h264编码,4096×2160分辨率,每秒60帧
5) Mjpeg(Mjpeg协议编码方式)的4096×2160分辨率,每秒60帧 + Jpeg(Jpeg的编码)的4096×2160分辨率
sample_vdec(视频数据解码)
# ./sample_vdec
Usage : ./sample_vdec <index> <IntfSync>
index:0) VDEC(H265)-VPSS-VO1) VDEC(H264)-VPSS-VO2) VDEC(JPEG->YUV)-VPSS-VO3) VDEC(JPEG->RGB)
IntfSync :0) VO HDMI 4K@30fps.1) VO HDMI 1080P@30fps.
shell 说明:
运行sample_vdec (播放) 视频解码样例
使用提示: ./sample_vdec <索引> <Vo接口时序类型>
参数<索引>:
0) VDEC解码器输入(H265的编码格式图片/视频)—>VPSS(视频输入缓存块)—>VO(图片/视频输出)
1) VDEC解码器输入(H264的编码格式图片/视频)—>VPSS(视频输入缓存块)—>VO(图片/视频输出)
2) VDEC解码器输入(JPEG数据)—>VPSS(视频输入缓存块)—>VO(YUV图片/视频输出)
3) VDEC解码器输入JPEG解码成RGB数据
参数<IntfSync>:
0) 输出到HDMI 4096×2160分辨率,每秒30帧
1) 输出到HDMI 1920x1080分辨率,每秒30帧
sample_audio(音频相关)
# ./sample_audio
/Usage:./sample_audio <index>/index and its function list below0: start AI to AO loop1: send audio frame to AENC channel from AI, save them2: read audio stream from file, decode and send AO3: start AI(VQE process), then send to AO4: start AI to AO(Hdmi) loop5: start AI to AO(Syschn) loop6: start AI to Extern Resampler
channel:0: mic0 input1: mic1 input
shell 说明:
运行sample_audio 音频 (编码/解码)样例
使用提示:./sample_audio <索引>
以下内容是索引对应的功能
0) 循环音频从输入到输出 (话筒功能)
1) 通过音频输入发送音频帧到音频编码通道,保存起来 (录音功能)
2) 从文件读取音频流,解码然后发送到输出 (播放功能)
3) 通过音频输入声音质量增强处理,然后输出音频 (话筒功能)
4) 循环音频输入到HDMI通道音频输出 (话筒功能)
5) 循环音频输入到系统音通道音频输出 (话筒功能)
6) 通过音频输入重新采样 (录音功能)
音频输入通道
0) mic0输入(HeadPhone)
1) mic1输入(插针)
sample_snap(拍照)
# ./sample_snap
Usage : ./sample_snap <index>
index:0)double pipe offline, normal snap.
shell 说明:运行sample_snap 拍照使用说明:./sample_snap <索引>参数<索引>0)双 pipe 离线模式普通拍照
sample_dpu_main(Depth Process Unit,深度图)
# ./sample_dpu_main
Usage : ./sample_dpu_main <index>
index: 0) VI->VPSS->RECT->MATCH. 1) FILE->RECT->MATCH.
shell 说明:
运行 sample_dpu_main
使用方法:./sample_dpu_main <索引>
<索引>
0) DPU(Depth Process Unit)对输入的左图像和右图像经过校正和匹配计算得出深度图
1) DPU(Depth Process Unit)对读取的文件的左图像和右图像经过校正和匹配计算得出深度图
sample_avs(Any View Stitching,全景拼接)
# ./sample_avs
Usage : ./sample_avs <index>
index:0) 2 fisheye stitching, Normal projection.1) 4 fisheye stitching, Cube map.2) 4 pic no blend stitching.3) 2 fisheye stitching, Image stabilizing.4) Generate lut.
shell 说明:运行 sample_avs使用说明: ./sample_avs <index><index>0) 2个CAM 鱼眼拼接正常显示模式1) 4个CAM 鱼眼拼接呈现立体显示效果2) 4个CAM 图片无混合拼接3) 目前暂不支持4)生成LUT表
sample_fisheye(鱼眼模式)
# ./sample_fisheyeUsage : ./sample_fisheye <index> <vo intf> <venc type>
index:0) fisheye 360 panorama 2 half with ceiling mount.1) fisheye 360 panorama and 2 normal PTZ with desktop mount.2) fisheye 180 panorama and 2 normal dynamic PTZ with wall mount.3) fisheye source picture and 3 normal PTZ with wall mount.4) nine_lattice preview(Only images larger than or equal to 8M are supported).
vo intf:0) vo HDMI output, default.1) vo BT1120 output.
venc type:0) H265, default.1) H264.
shell 说明:
运行 ./sample_fisheye
使用说明 ./sample_fisheye <index> <vo intf> <venc type>
index:
0) 2个“半顶装模式”的鱼眼360°全景视频
1) 2个普通“地装的PTZ”鱼眼360°全景视频
2) 2个普通“壁装的PTZ”鱼眼180°全景视频
3) 三个鱼眼原画的普通PTZ 壁装视频
4) 九格预览视频(仅支持大于或等于8m的图像)
vo intf:
0) 默认HDMI输出
1) BT1120输出
venc type:
0) 默认H265编码
1) H264编码
sample_vio(视频输入输出)
# ./sample_vio_main
Usage : ./sample_vio_main <index> <intf>
index:0)VI(Online) - VPSS(Online) - VO.1)VI(Offline)- VPSS(Offline) - VO. LDC+DIS+SPREAD.2)VI(Offline)- VPSS(Online) - VO. Double pipe.3)VI(Online)- VPSS(Offline) - VO. Double chn.4)Resolute Ratio Switch.5)GDC - VPSS LowDelay.6)Double WDR Pipe.7)FPN Calibrate & Correction.8)WDR Switch.9)90/180/270 Rotate.10)Mipi Demux Yuv.11)UserPic.
intf:0) vo HDMI output, default.1) vo BT1120 output.
shell 说明:
运行 sample_vio
使用方法:./sample_vio_main <index> <intf>
index:
0) 在线输入–> 在线视频处理 -->输出
1) 离线输入–> 离线视频处理 -->输出 镜头畸变校正视频防抖和展宽
2) 离线输入–> 在线视频处理 -->输出 双管道
3) 在线输入–> 离线视频处理 -->输出 双通道
4) Resolute Ratio Switch
5) 几何畸变矫正 -->视频处理 低延时
6) 双WDR管道
7) FPN标定&矫正
8) WDR 开关
9) 90/180/270 旋转
10) Mipi Demux Yuv
11) 设置用户图片
intf:
0) 默认HDMI输出
1) BT1120输出
sample_vgs(Video Graphics Sub-System,视频图形子系统)
# ./sample_vgs
Usage: ./sample_vgs <index>
index:0) FILE -> VGS(Scale) -> FILE.1) FILE -> VGS(Cover+OSD) -> FILE.2) FILE -> VGS(DrawLine) -> FILE.3) FILE -> VGS(Rotate) -> FILE.
shell 说明:
运行 sample_vgs
使用说明:./sample_vgs <index> <intf>
index:
0) 文件–> 视频图像子系统(缩放) -->文件
1) 文件–> 视频图像子系统(Cover+OSD) -->文件
2) 文件–> 视频图像子系统(画线) -->文件
3) 文件–> 视频图像子系统(旋转) -->文件
sample_tde(Two Dimensional Engine,利用硬件为OSD和GUI提供快速的图形绘制功能)
# ./sample_tde
Usage : ./sample_tde <intf>
intf:0) vo BT1120 output, default.1) vo HDMI output.
shell 说明:运行 sample_tde使用说明:./sample_tde <intf>intf:0) 默认BT1120输出演示1) HDMI输出演示
sample_hifb(Hisilicon Framebuffer,基于Linux FB 基本功能扩展了一些图形层控制功能)
# ./sample_hifb
Usage : ./sample_hifb <index> <device> <intf>/****************index******************/
please choose the case which you want to run:0: ARGB8888 standard mode1: ARGB1555 BUF_DOUBLE mode2: ARGB1555 BUF_ONE mode3: ARGB1555 BUF_NONE mode4: ARGB1555 BUF_ONE mode with compress5: ARGB8888 BUF_ONE mode with compress/****************device******************/0) VO device 0#, default.1) VO device 1#./****************intf******************/0) VO HDMI output, default.1) VO BT1120 output.
shell 说明:
运行 sample_hifb
使用说明:./sample_hifb <index> <device> <intf>
<index>
请选择一下您想运行的情况之一
0: ARGB8888像素格式标准模式
1: ARGB1555像素格式双缓存模式
2: ARGB1555像素格式单缓存模式
3: ARGB1555像素格式无缓存模式
4: ARGB1555像素格式带压缩的单缓存模式
5: ARGB8888像素格式带压缩的单缓存模式
<device>
0) 默认输出到超清显示设备DHD0
1) 输出到高清显示设备DHD1(暂未支持)
<intf>
0) 默认HDMI输出
1) BT1120输出(暂未支持)
sample_awb_calibration(自动白光平衡测量)
# ./sample_awb_calibration
Usage : ./sample_awb_calibration <mode> <intf1> <intf2> <intf3>
mode:0) Calculate Sample gain.1) Adjust Sample gain according to Golden Sample.
intf1:The value of Rgain of Golden Sample. 深红色区域的锐化增益控制。
intf2:The value of Bgain of Golden Sample.
intf3:The value of Alpha ranging from 0 to 1024 (The strength of adusting Sampe Gain will increase with the value of Alpha) .
shell 说明:
运行 sample_awb_calibration
使用方法:./sample_awb_calibration <mode> <intf1> <intf2> <intf3>
<mode>
0) 计算例子中的增益
1) 根据标准例子来校正例子中的增益
intf1:
标准例子中的深红色区域的锐化增益控制值
intf2:
标准例子中的深蓝色区域的锐化增益控制值
intf3:
0~1024范围的初始值(采样数据的增益强度会随着初始值的值增加而增加)
sample_ive_main(智能加速引擎)
~ # ./sample_ive_main
Usage : ./sample_ive_main <index> [complete] [encode] [vo]
index:0)BgModel,<encode>:0, not encode;1,encode.<vo>:0,not call vo;1,call vo.(VI->VPSS->IVE->VGS->[VENC_H264]->[VO_HDMI]).1)Gmm,<encode>:0, not encode;1,encode.<vo>:0,not call vo;1,call vo.(VI->VPSS->IVE->VGS->[VENC_H264]->[VO_HDMI]).2)Occlusion detected.(VI->VPSS->IVE->VO_HDMI).3)Motion detected.(VI->VPSS->IVE->VGS->VO_HDMI).4)Canny,<complete>:0, part canny;1,complete canny.(FILE->IVE->FILE).5)Gmm2.(FILE->IVE->FILE).6)MemoryTest.(FILE->IVE->FILE).7)Sobel.(FILE->IVE->FILE).8)Ann.(FILE->IVE->STDIO).9)St Lk.(FILE->IVE->FILE).a)Svm.(FILE->IVE->STDIO).b)Cnn.(FILE->IVE->STDIO).
shell 说明:
运行 sample_ive_main
使用说明: ./sample_ive_main <index> [complete] [encode] [vo]
index:
0) 背景模型
1) 高斯模型Gmm
2) 遮挡检测
3) 运动检测
4) 边缘检测
5) 高斯模型Gmm2
6) 内存测试
7) Sobel算子分割
8) 图像检索Ann
9) St和LK光流法
a) 分类器SVM
b) 神经网络Cnn
sample_dis(Digital Image Stabilization,数字稳像)
# ./sample_dis
Usage : ./sample_dis <index> <intf>
index:0)DIS-4DOF_GME.VI-VO VENC.1)DIS-6DOF_GME.VI-VO VENC.
intf:0) vo HDMI output, default.1) vo BT1120 output.
shell 说明:
运行 sample_dis
使用说明: ./sample_dis <index> <intf>
index:
0) DIS-4DOF_GME(四自由度 GME 算法,不使用陀螺仪),输入-输出 同时H256格式录像(存储在当前)
1) DIS-6DOF_GME(六自由度 GME 算法,不使用陀螺仪),输入-输出 同时H256格式录像(存储在当前)
intf:
0) HDMI 输出
1) BT1120 输出
sample_dsp_main(DSP测试)
~ # ./sample_dsp_main
shell 说明:四个DSP之DSP0的出图测试。
sample_nnie_main(神经网络硬件加速单元测试)
# ./sample_nnie_main
Usage : ./sample_nnie_main <index>
index:0) RFCN(VI->VPSS->NNIE->VGS->VO).1) Segnet(Read File).2) FasterRcnnAlexnet(Read File).3) FasterRcnnDoubleRoiPooling(Read File).4) Cnn(Read File).5) SSD(Read File).6) Yolov1(Read File).7) Yolov2(Read File).8) LSTM(Read File).9)Pvanet(Read File).a) Rfcn(Read File).
shell 说明:
运行 sample_nnie_main
使用说明: ./sample_nnie_main <index>
index:
0) RFCN模型
1) 可训练的图像分割Segnet
2) 深度学习的目标检测Alexnet
3) 深度学习的目标检测DoubleRoiPooling
4) 神经网络Cnn
5) 可训练的SSD模型处理
6) 神经网格模型Yolov1
7) 神经网格模型Yolov2
8) LSTM模型
9) Pvanet网络
a) Rfcn目标检测
这篇关于海思芯片研究开篇介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!