专栏特色
1、所有源码严格遵守统一的编码规范。
2、手把手教学,让你从零开始,深入了解君正方案IPC库的方方面面。
3、纯C++接口,接口封装严谨,接口功能丰富,应用层调用简单便捷。
4、近二十年行业经验和技术积累打造的高质量商用级代码,架构清晰合理,便于扩展和维护。
5、绝不空谈概念和原理,实打实地进行源码的展示和要点的讲解。
6、根据功能模块分章节进行详细介绍,每个章节可独立阅读,让你真正吃透每一个功能模块。
7、通过学习本专栏,你可以深入了解君正底层API、ISP使用、视频采集、音频采集、音频播放、云台电机控制、移动侦测、移动跟踪、人形检测等一系列君正芯片方案相关的专业知识。
8、通过学习本专栏,你可以深入了解IPC开发领域的各种嵌入式知识,让你从行业小白晋升为安防监控领域的专业人才。
9、通过学习本专栏,你可以超近距离研究行业大牛的架构设计、逻辑思维、编码风格、封装细节等大量宝贵经验,让你从菜鸟跻身技术专家。
概述
君正在智能视频市场已经耕耘有一段时间了,取得了相当大的成绩。君正的芯片采用mips架构,功耗更低,性价比更高。IPC芯片是用于视频类产品中的主控类芯片,包括CPU、ISP、VPU和其他外围模块,目前有T31、T40、T41等型号。
T31芯片
T31凝聚了君正多项技术精华,继承了丰富的视频应用经验,拥有超强的CPU计算性能、专业的成像能力、编码品质、丰富的差异化扩展、成本控制和低功耗基因,搭配整合好的丰富AI算法,使T31成为业内全面均衡的H.265+AI视频处理器,是“Video+AIoT+算法”的落地芯片平台。
针对市场的不同需求,T31分为以下几个版本:
T31L:简化版,内含512 Mbit DDR2,不具备快速启动、SIMD128等功能。同时,在主频上也只到1Ghz,主要面向对成本敏感的基本视频应用市场。
T31N:普通版,内含512 Mbit DDR2,配备全功能。在充分发挥T31的各种能力的同时,更可提供极高算力,实现高性价比。T31N标配SIMD128加速指令及1.5 Ghz主频,由此T31具备极强的音视频算法能力,配合君正及第三方的DNN算法,T31N将为视频应用提供AI方面极大的可扩展性。
T31X:增强版,除了拥有T31N的全部功能外,内存容量扩大至1 Gbit,以满足差异化市场需求。
T31 ZL和T31 ZX:电池特别版,内部专为电池类摄像机进行了优化。
T31A:AI版,拥有T31N全部功能,并具备电池方案能力,内存为1 Gbit DDR3。
上述几个版本的具体差异,可以参看下表。
T40芯片
扎根智能视觉领域多年后,君正专门为智能视觉物联网SVIoT(Smart Vision for the Internet of Things)设计了一款芯片T40。在AI安防领域,T40是中高端产品最佳的替代者。T40主要包括以下这些特性:
1、XBurst2双核CPU。
2、星光监控级双摄ISP。
3、4K视频编码能力。
4、最大8T算力AI-Engine。
5、内置DDR。
6、支持1080P屏显。
7、最大功耗小于1.2W(含DDR)。
针对市场的不同需求,T40分为三个版本,分别为:T40N(标准版),T40 XP(增强专家版)、T40 A(全功能版)。这三个版本的具体差异,可以参看下表。
T41芯片
为了积极推动泛视觉行业专业AI普惠化,君正推出了全新一代12nm工艺AIPC芯片T41。T41主要包括以下这些特性:
1、采用当前行业最先进的12nm工艺,有效解决了算力密度和功耗发热的问题,从本质上提升了芯片的性价比。
2、内置君正最新的神经网络加速引擎,支持1.2T@int8/4.8@int4真实算力,支int16/int8/int4/int2混合量化,可有效节省算法推理的内存占用,降低功耗。
3、支持3840*2160分辨率的成像与编码,最大性能可达2160P@30fps。不同型号之间实现pin2pin兼容,可以一套硬件设计,覆盖2MP~8MP分辨率的各种应用。
4、在新版RISC-V、双flash、双通道LZMA等众多物理技术加成下,T41支持在标准的Linux OS情况下,150ms级别的快速启动时间。T41还创新性地设计了Zboost技术,基于此技术,可以实现小于100ms的快速启动时间,实现AI模型的零延迟加载。
针对市场的不同需求,T41分为以下几个版本,分别为:T41L、T41N、T41ZX、T41LC、T41ZL、T41ZN、 T41A、T41LQ、T41NQ。这几个版本的具体差异,可以参看下表。
上表中提到的封装1与封装2仅MAC/PHY部分有差异,其他部分均相同。如果不使用MAC/PHY功能,则封装1与封装2等同于pin2pin。另外,BGA封装与QFN封装的具体差异,可参看下表。
ISVP-SDK
使用君正IPC芯片方案时,需要对其提供的ISVP-SDK进行深入了解。 ISVP-SDK集成了系统控制模块、视频源处理模块、图像信号处理单元、视频编码、视频解码、音频模块、OSD模块、CSC模块和IVS智能分析等模块,具有音视频采集编码、OSD图片叠加、CSC图片格式转换、移动侦测、人形检测、越线检测等功能。ISVP-SDK中包含的具体模块及其相关说明可参看下表:
模块英文名 | 模块中文名 | 模块简介 |
IMP_System | 系统控制模块 | 包括IMP的基础功能,以及模块间绑定的相关功能。 |
IMP_FrameSource | 视频源模块 | 视频源,是IMP系统的图像数据源,可设置图像的分辨率、裁减、缩放等属性。 |
IMP_ISP | 图像信号处理单元 | 主要包含图像效果设置,模式切换以及Sensor的注册、添加、删除等操作。 |
IMP_Encode | 视频编码模块 | 支持H264,、H265、JPEG的编码,包含编码通道管理、编码参数设置等功能。 |
IMP_Audio | 音频模块 | 包含录放音、音频编解码、音量及增益设置、回声消除、自动增益等功能。 |
IMP_OSD | 视频叠加模块 | 可在视频流上叠加图片、位图、直线、矩形框等。 |
IMP_CSC | 图片格式转换模块 | 支持HSV、NV12、NV21、RGB32、ARGB等格式的转换。 |
IMP_IVS | 智能分析模块 | 封装了智能分析算法的通用接口。 |
ISVP-SDK中还提供了用于应用层开发的应用库,包括:imp库和sysutils库。imp库中常用头文件的主要功能可参看下表。
头文件 | 功能说明 |
imp_system.h | 实现模块间的数据绑定和系统控制功能。 |
imp_framesource.h | 输出经过ISP处理后的原始视频。 |
imp_isp.h | 图像信号处理,包括WDR、3D-Denoise等功能。 |
imp_encoder.h | 编码器,实现H264,、H265、JPEG的编码。 |
imp_audio.h | 音频处理,包括录放音、音量调节、音频编码、回音消除等功能。 |
imp_osd.h | 实现字符点阵叠加的功能。 |
imp_ivs.h | 智能分析,包括IVS通道管理、移动侦测等功能。 |
imp_common.h | 定义了一些通用的数据结构。 |
sysutils库中常用头文件的主要功能可参看下表。
头文件 | 功能说明 |
su_base.h | 基础功能,包括重启、获取RTC时间等功能。 |
su_misc.h | 其他功能,包括获取按键事件等。 |
su_cipher.h | 数据加解密模块。 |
su_adc.h | 模数转换接口。 |
关于IPC库的架构设计,可以参考博主另一个专栏“手把手教你封装跨芯片方案的IPC通用库”中的文章《1 跨芯片方案的IPC通用库的架构设计》。