【0008】海思官方编码例程及内容解析


【特别说明】

  重点参考手册:

   【1】ISP_3A 开发指南

   【2】HIISP开发参考

   【3】HIMPP IPC V2.0 媒体处理软件开发参考

1.关于RGB

 RGB的不同值只是记录了不同颜色的亮度值;

如:0x00125897 和 0x00545897,红色的亮度值不同;

2.海思代码编程规范:

2.1 关于枚举:

 所有的枚举都是大写字母加下划线的方式,最后字母是E,代表是一个枚举类型如:PLAYLOAD_TYPE_E;

2.2 关于结构体

 在结构体的定义末尾是以“S”结尾的。

2.3 变量的开头

2.3.1 如果变量是枚举类型的,则以小写的“en”开头,如“en”;

 2.3.2 结构体变量-以st开头

 2.3.4 结尾描述符-Butt

 Butt的值会顺延增加,但是不能够使用

3.VI解析

3.1 MPP初始化

初始化的工作主要是对VB的设置,这是重点需要计算的内容;

其他的按照流程计算就行;

3.2 RGB_BAYER-最原始的RGB RAW格式的图像

【说明】在选择YUV422还是选择YUV420没有严格的限制,只是根据图像的色彩还原度不同,YUV422的色彩还原度更高,但是对于系统的内存开销会比较大;  

【★★★-经验值】  在行业内大多数的情况下使用的都是YUV420比较多,这是经验内容;

3.3.Sensor初始化

 

 【说明】主要使用SAMPLE_VI_CONFIG_S进行初始化sensor的参数;

3.4 启动初始化内部ISP单元

 

 【说明】主要启动内部的ISP(Image signal process)内部单元,内部的isp被封装成了单独的线程,此时将此线程启动起来。

 

 

 

 3.5 第二步:ISP初始化

 

 3.6 ISP线程启动

 

 

特别说明】海思并没有直接将线程启动起来,需要我们手动去启动;

原因是:其中一些所需要的参数需要开发人员根据不同的设备进行配置;

我们按照自己的设备进行配置参数,然后配合海思提前打建好的框架进行运行就可以完成产品的功能;

3.7  小结

 实际的VI部分包含三部门的内容:

    【第一部分内容】sensor的接口对接部分内容

    【第二部分内容】

         ①涉及到3A算法库的注册内容,这是海思提前提供了API;

        ②ISP部分内容,涉及到参数的设置和ISP的启动;

    【第三部分内容】 VI dev 和 channel 通道内容 ;

     其中的  “ VI dev” 指的是视频信号采集的硬件设备;

【特别说明】可以简单理解一个dev对应一个摄像头,一个dev对应一个chn;其他的次码流的扩展Extchn都需要通过chn进行缩放和剪裁才能够得到对应码流图像;

    【硬件功能框架图】

3.8 关于手册-非常重要!!!

需要重点自己翻看手册的内容,非常重要!!!

4.VPSS 解析

4.1 创建Grp和Chn

【特别说明】VI中的chn和VPSS中的chn是不同的概念;
不管是在软件编程中还是在硬件单元中都是不同的概念;
VPSS中是一个GROP中包含了3个chn;甚至可以有更多,比如有扩展通道ExtChn等;
而VI中是一个DEV中包含了一个chn;(对于hi3518E而言);
千万不要搞混了两个chn;

在绑定关系中,是VI中的chn会绑定VPSS中的GROUP,而不是绑定VPSS中的chn,这点需要注意;

需要注意的是在绑定vpssGrp时候,只使用了一个vpssGrp,而使用了其中的三个chn;第0个chn和后两个chn的创建过程;

VPSS的chn0的属性设置:

 VPSS的chn1的属性设置:

VPSS的chn2的属性设置:

 

【特别说明】对于上面的三个Chn创建是不同的;

第一个Chn创建的时候需要首先创建Grp,然后再创建Chn;

第2、3个Chn是不需要创建Grp的;因为一个Grp内可以包含有3个Chn;

4.2 Chn的属性设置

 

 【说明】需要查看手册,了解不同的通道的属性;

5.图像编码压缩基本原理

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM