海思芯片研究开篇介绍

海思音视频处理芯片介绍

  1. 不多介绍了,大家都知道。

海思hi3516dv300 SDK目录介绍

海思芯片研究开篇介绍_第1张图片1. 板子测试文档,用来测试买来的板子是否是正常的,测试不通过,可联系商家换新。
2. 单独资料包:提供u-boot源码,内核源码,文件系统源码,mpp测试demo,h264,h265流推送demo,安装交叉编译环境和编译链等资料。
3. 虚拟机开发环境:提供已经配置好了的开发环境。
4. onvif测试文档
5. RTMP推流测试
6. 交叉编译链
7. 工具: 串口调试,tftp等开发工具。
8. 海思SDK:SDK开发文档。
9. emmc操作:海思芯片内存和外存都比较小,挂载emmc可以拷贝更多的东西到开发板。

海思hi3516板子测试

当你买了一块海思开发板的时候,商家会提供给你一份开发板的详细资料。里边有产品参数和开发文档,甚至一些原理图。新手的话,肯定会茫然,不知从哪开始研究这块板子。
海思芯片研究开篇介绍_第2张图片首先测试板子是否正常。
在上面商家提供的资料里边。 看那个板子测试文档。 他们会提供测试板子是否能正常运行,是否正常取流的一些demo文件。 这一步很简单,你只需要将demo用tftp下载到板子上运行测试就好。

  1. 首先下载VLC2.2.8这个软件,安装到你电脑windows操作系统里面。
  2. 安装usb转串口板驱动,然后设置好串口115200的波特率,具体设置看串口设置图片。在securecrt那个软件里面使用。设置好后,板子上电,应该可以看到板子的启动信息。
  3. 板子测试之前请把板子网口和电脑有线网口连通,可以在板子端使用ping 命令:ping 电脑ip测试,看网络是否已经通了。
  4. 板子启动后,将提供的sample_venc 这个文件放到TFTP服务器的服务目录里面。在你windows系统里面运行TFTP服务器软件,开启tftp服务器。
  5. 在板子的securecrt串口调试终端里面输入以下命令:
    我这里192.168.1.100 指的是电脑windows的ip,下面命令的192.168.1.100请把他改成你windows实际的ip地址
    海思芯片研究开篇介绍_第3张图片从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:
    0)  VDEC(H265)-VPSS-VO
    1)  VDEC(H264)-VPSS-VO
    2)  VDEC(JPEG->YUV)-VPSS-VO
    3)  VDEC(JPEG->RGB)
IntfSync :
    0) VO HDMI 4K@30fps.
    1) VO HDMI 1080P@30fps.

shell 说明:

运行sample_vdec (播放) 视频解码样例
使用提示: ./sample_vdec <索引> 
参数<索引>:
0) VDEC解码器输入(H265的编码格式图片/视频)—>VPSS(视频输入缓存块)—>VO(图片/视频输出)
1) VDEC解码器输入(H264的编码格式图片/视频)—>VPSS(视频输入缓存块)—>VO(图片/视频输出)
2) VDEC解码器输入(JPEG数据)—>VPSS(视频输入缓存块)—>VO(YUV图片/视频输出)
3) VDEC解码器输入JPEG解码成RGB数据
参数:
0) 输出到HDMI 4096×2160分辨率,每秒30帧
1) 输出到HDMI 1920x1080分辨率,每秒30帧

sample_audio(音频相关)

# ./sample_audio
/Usage:./sample_audio /
        index and its function list below
        0:  start AI to AO loop
        1:  send audio frame to AENC channel from AI, save them
        2:  read audio stream from file, decode and send AO
        3:  start AI(VQE process), then send to AO
        4:  start AI to AO(Hdmi) loop
        5:  start AI to AO(Syschn) loop
        6:  start AI to Extern Resampler
channel:
        0:  mic0 input
        1:  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:
         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:                                                                          
         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:
         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 
    
    0) 2个CAM 鱼眼拼接正常显示模式
    1) 4个CAM 鱼眼拼接呈现立体显示效果
    2) 4个CAM 图片无混合拼接
    3) 目前暂不支持
    4)生成LUT表

sample_fisheye(鱼眼模式)

# ./sample_fisheye

Usage : ./sample_fisheye   
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:
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:
         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:
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:
        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:
0) 文件–> 视频图像子系统(缩放) -->文件
1) 文件–> 视频图像子系统(Cover+OSD) -->文件
2) 文件–> 视频图像子系统(画线) -->文件
3) 文件–> 视频图像子系统(旋转) -->文件

sample_tde(Two Dimensional Engine,利用硬件为OSD和GUI提供快速的图形绘制功能)

# ./sample_tde 
Usage : ./sample_tde 
intf:
         0) vo BT1120 output, default.
         1) vo HDMI output.

shell 说明:

    运行 sample_tde
    使用说明:./sample_tde 
    intf:
    0) 默认BT1120输出演示
    1) HDMI输出演示

sample_hifb(Hisilicon Framebuffer,基于Linux FB 基本功能扩展了一些图形层控制功能)

# ./sample_hifb
Usage : ./sample_hifb   


/****************index******************/
please choose the case which you want to run:
        0:  ARGB8888 standard mode
        1:  ARGB1555 BUF_DOUBLE mode
        2:  ARGB1555 BUF_ONE mode
        3:  ARGB1555 BUF_NONE mode
        4:  ARGB1555 BUF_ONE mode with compress
        5:  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   

请选择一下您想运行的情况之一
0: ARGB8888像素格式标准模式
1: ARGB1555像素格式双缓存模式
2: ARGB1555像素格式单缓存模式
3: ARGB1555像素格式无缓存模式
4: ARGB1555像素格式带压缩的单缓存模式
5: ARGB8888像素格式带压缩的单缓存模式

0) 默认输出到超清显示设备DHD0
1) 输出到高清显示设备DHD1(暂未支持)

0) 默认HDMI输出
1) BT1120输出(暂未支持)

sample_awb_calibration(自动白光平衡测量)

# ./sample_awb_calibration
Usage : ./sample_awb_calibration    
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    

0) 计算例子中的增益
1) 根据标准例子来校正例子中的增益
intf1:
标准例子中的深红色区域的锐化增益控制值
intf2:
标准例子中的深蓝色区域的锐化增益控制值
intf3:
0~1024范围的初始值(采样数据的增益强度会随着初始值的值增加而增加)

sample_ive_main(智能加速引擎)

~ # ./sample_ive_main
Usage : ./sample_ive_main  [complete] [encode] [vo]
index:
         0)BgModel,:0, not encode;1,encode.:0,not call vo;1,call vo.(VI->VPSS->IVE->VGS->[VENC_H264]->[VO_HDMI]).
         1)Gmm,:0, not encode;1,encode.: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,: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  [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:
         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:
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:
         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:
0) RFCN模型
1) 可训练的图像分割Segnet
2) 深度学习的目标检测Alexnet
3) 深度学习的目标检测DoubleRoiPooling
4) 神经网络Cnn
5) 可训练的SSD模型处理
6) 神经网格模型Yolov1
7) 神经网格模型Yolov2
8) LSTM模型
9) Pvanet网络
a) Rfcn目标检测

你可能感兴趣的:(海思芯片研究)