华为海思Hi3519DV500支持四路sensor 输入,支持 4K@30fps 内置双核 A55和 2.5Tops NN 算力
1.1 概述
Hi3519DV500 是一颗面向视觉行业推出的超高清智能 SoC。该芯片最高支持四路
sensor 输入,支持最高 4K@30fps 的 ISP 图像处理能力,支持 2F WDR 、多级降噪、
六轴防抖、全景拼接、多光谱融合等多种传统图像增强和处理算法,支持通过 AI 算法
对输入图像进行实时降躁等处理,为用户提供了卓越的图像处理能力。支持热红外、
结构光和 ToF sensor 的接入和处理。
Hi3519DV500 内置双核 A55 ,提供高效、丰富和灵活的 CPU 资源,以满足客户计算
和控制需求。
Hi3519DV500 集成了高效的神经网络推理引擎,最高 2.5Tops NN 算力,支持业界主
流的神经网络框架。
Hi3519DV500 提供稳定、易用的 SDK 软件开发包,支撑客户产品快速量产。
1.2 应用场景
Hi3519DV500 超高清智慧视觉 SoC 方案如 图 1-1 所示。
1.3 架构
1.3.1 逻辑框图
Hi3519DV500 芯片逻辑框图如 图 1-2 所示。
1.3.2 处理器内核
⚫ 双核 ARM Cortex A55@1000MHz
⚫
32KB I-Cache , 32KB D-Cache , 256KB L3 cache
⚫ 支持 NEON 加速,集成 FPU 处理单元
⚫ 支持 TrustZone
1.3.3 系统级加速模块
⚫ 集成硬化的标准 CRC32/CRC16/CRC8 多项式运算单元
⚫ 集成硬化的高速直接数据搬移模块 (DMA)
1.3.4 智能视频分析
⚫ 神经网络
支持完整的 API 和工具链,易于客户开发
⚫ 升级 IVE 算子,支持特征点检测、周界、光流及多种计算机形态学算子
⚫ 升级 DPU 算法实现双目深度图加速单元,最大分辨率 2048 x 2048 ,最大视差
224 ,处理性能 720p@30fps
1.3.5 视频编解码
⚫ 支持 H.264 BP/MP/HP Level 5.1
⚫ 支持 H.265 Main Profile Level 5.1
⚫
H.264/H.265 编解码最大分辨率为 6144x 6144
⚫ 支持 I/P 帧
⚫
H.264/H.265 多码流编解码典型性能如下:
− 3840 x 2160@30fps( 编码 )+1920 x 1080@30fps( 编码 )+720 x 480@30fps( 编
码 )
− 3840 x 2160@30fps( 编码 )+720 x 480@30fps( 编码 )+1920 x 1080@30fps( 解
码 )
− 3840 x 2160@30fps( 解码 )
⚫ 支持 8 个区域的编码前 OSD 叠加
⚫ 支持 CBR/VBR/AVBR/FIXQP/QPMAP 等多种码率控制模式
⚫ 输出码率最大值 80Mbps
⚫ 支持 8 个感兴趣区域( ROI )编码
⚫ 支持视频前端叠加 mosaic 编码
⚫ 支持数字水印
⚫ 支持 PVC 感知编码降低码流
⚫ 支持 JPEG Baseline 编解码
⚫
JPEG 编解码最大分辨率 16384 x 16384
⚫
JPEG 最大性能
− 编码: 3840 x 2160@60fps(YUV420)
− 解码: 3840 x 2160@30fps(YUV420)
1.3.6 数字图像处理( ISP )
⚫ 支持多路 sensor 同时处理
⚫ 支持 3A ( AE/AWB/AF )功能, 3A 参数用户可调节
⚫ 支持去固定模式噪声( FPN)
⚫ 支持坏点校正和镜头阴影校正
⚫ 支持两帧 WDR 及 Advanced Local Tone Mapping ,支持强光抑制和背光补偿
⚫ 支持多级 3D 去噪
⚫ 支持图像边缘增强
⚫ 支持去雾
⚫ 支持动态对比度增强
⚫ 支持 3D-LUT 色彩调节
⚫ 支持新一代镜头畸变校正
⚫ 支持鱼眼等任意形状几何矫正
⚫ 支持 6-DoF 数字防抖
⚫ 支持陀螺仪防抖和 Rolling-Shutter 校正
⚫ 支持图像 Mirror 、 Flip 、 90 度 /270 度旋转
⚫ 支持使用神经网络对图像进行实时 DRC 、 BNR 、 3DNR 或 DM 处理
⚫ 支持黑白与彩色两路图像双光融合
⚫ 提供 PC 端 ISP 调节工具
1.3.7 视频与图形处理
⚫ 支持图形和图像 1/15.5 ~ 16x 缩放功能
⚫ 支持水平方向全景拼接
− 输入 2 路 2560×1440@30fps ,输出 3840x2160@30fps
− 输入 4 路 1920x1080@30fps ,输出 3840x2160@30fps
⚫ 支持视频层、图形层叠加
⚫ 支持色彩空间转换
1.3.8 视频输入接口
⚫ 支持 8-Lane image sensor 串行输入,支持 MIPI/LVDS/Sub-LVDS/HiSPi 多种接
口
⚫ 支持 2x4-Lane 或 4x2-Lane 等多种组合,最高支持 4 路 sensor 输入
⚫ 支持 8/10/12/14 Bit RGB Bayer DC 时序视频输入,时钟频率最高 148.5MHz
⚫ 支持 BT.601 、 BT.656 、 BT.1120 视频输入接口
⚫ 支持通过 MIPI 虚拟通道输入 1~4 路 YUV
⚫ 支持主流 CMOS 电平热成像传感器接入
⚫ 支持结构光图像模组
⚫ 支持 cw ToF 图像传感器
1.3.9 视频输出接口
⚫ 支持一路 BT.1120 或 BT.656 接口输出,其中 BT.1120 最高性能
1920x1080@60fps
⚫ 支持 6/8bit 串行或 16/18/24bit RGB 并行输出,最高频率 74.25MHz
⚫ 支持 4-Lane Mipi DSI/CSI 接口输出,最高 1.8Gbps/lane ,性能 3840 x
2160@30fps
⚫ 支持 Gamma 校正和水平方向 sharpen
1.3.10 音频接口与处理
⚫ 内置 Audio codec ,支持 16bit 双路差分语音输入和双路单端语音输出
⚫ 支持 1 路 I2S 接口,兼容多声道时分复用传输模式( TDM )
⚫ 支持 8 路数字 MIC 阵列输入
⚫ 支持多协议语音编解码
⚫ 支持音频 3A ( AEC/ANR/ALC )处理
1.3.11 安全隔离与引擎
⚫ 支持安全启动
⚫ 支持基于 TrustZone 的 REE/TEE 硬件隔离方案
⚫ 支持神经网络模型与数据保护
⚫ 硬件实现 AES128/256 对称加密算法
⚫ 硬件实现 RSA3072/4096 签名校验算法
⚫ 硬件实现 ECC256/384/512 椭圆曲线算法
⚫ 硬件实现 SHA256/384/512 、 HMAC_SHA256/384/512 算法
⚫ 硬件实现 SM2/3/4 国密算法
⚫ 硬件实现真随机数发生器
⚫ 提供 28Kbit OTP 存储空间供客户使用
1.3.12 网络接口
⚫
1 个千兆以太网接口
− 支持 RGMII 、 RMII 两种接口模式
− 支持 TSO 、 UFO 、 COE 等加速单元
1.3.13 外围接口
⚫
2 个 SDIO3.0 接口
− SDIO0 支持 SDXC 卡,最大容量 2TB
− SDIO1 支持对接 wifi 模组
⚫
1 个 USB3.0/USB2.0 接口
− USB Host/Device 可切换
⚫ 支持上电复位( POR )和外部输入复位
⚫ 集成独立供电 RTC
⚫ 集成精简上下电控制逻辑,实现芯片待机唤醒
⚫ 集成 4 通道 LSADC
⚫ 集成 RGB 小屏专用三线控制接口
⚫ 多个 UART 、 I 2 C 、 SPI 、 PWM 、 GPIO 接口
1.3.14 存储器接口
⚫
DDR4/LPDDR4/LPDDR4x 接口
− 支持 2 x 16bit DDR4
− 支持 1 x 32bit LPDDR4/LPDDR4x
− DDR4 最高速率 2666Mbps
− LPDDR4/LPDDR4x 最高速率 2666Mbps
− 最大容量 4GB
⚫
SPI Nor/SPI Nand Flash 接口
− 支持 1 、 2 、 4 线模式
− SPI Nor Flash 支持 3Byte 、 4Byte 地址模式
⚫
eMMC5.1 接口,最大容量 2TB
⚫ 可选择从 eMMC 、 SPI Nor/SPI Nand Flash 启动
1.3.15 SDK
支持 Linux5.10 SDK 包
1.3.16 芯片物理规格
⚫ 功耗
2.5W 典型功耗 ( 编码 4K30 + 2Tops)
⚫ 工作电压
− 内核电压为 0.9V
− IO 电压为 1.8/3.3V
− DDR4/LPDDR4/LPDDR4x 接口电压分别为 1.2/1.1/0.6V
⚫ 封装形式
− RoHS , FCCSP 15mm x 15mm 封装
− 管脚间距: 0.65mm
1.4 启动和升级模式
1.4.1 概述
芯片中内置启动 ROM ( BOOTROM ),芯片复位撤销后由 BOOTROM 开始执行启动引
导程序。
启动介质
芯片包含多种外设接口可用于启动介质接口:
⚫
SPI Nand/Nor Flash 存储接口。
⚫
eMMC 存储接口。
启动介质的选择由 SFC_EMMC_BOOT_MODE/BOOT_SEL1/BOOT_SEL0 信号决定。
烧写(升级)
芯片可以通过 SD 卡 /USB/ 串口来对启动介质进行烧写 ( 升级 ) 。 SD 卡、 USB 升级模式
由 UPDATE_MODE 信号决定, UART 烧写由 FAST_BOOT_MODE 信号的值决定。
当采用 SD 卡升级时,只能通过 SDIO0 接口上的 SD 卡升级。
1.4.2 启动介质和上电锁存值关系
启动 / 升级介质由
FAST_BOOT_MODE/SFC_EMMC_BOOT_MODE/BOOT_SEL1/BOOT_SEL0 和
UPDATE_MODE_N 信号来确定。
⚫ FAST_BOOT_MODE 信号为 SENSOR1_CLK 管脚的上电锁存值 ;
⚫ SFC_EMMC_BOOT_MODE 信号为 RGMII_TXD1 管脚的上电锁存值 ;
⚫ BOOT_SEL1 信号为 RGMII_TXD0 管脚的上电锁存值;
⚫ BOOT_SEL0 信号为 SENSOR1_VS 管脚的上电锁存值;
⚫ UPDATE_MODE_N 信号为系统启动时 GPIO0_0 的状态,通常 GPIO0_0 可设计成按键,按
下时状态为 0 ,表示升级模式;未按下时状态为 1 ,表示非升级模式。
⚫ BOOT_PARA_SEL_0 、 BOOT_PARA_SEL_1 、 BOOT_PARA_SEL_2 、 BOOT_PARA_SEL_3 信号
分别为 SENSOR1_HS 、 EPHY_CLK 、 MDCK 、 RGMII_TXEN 管脚的上电锁存值。
⚫ 以上上电锁存值不受系统软复位影响。
⚫
SFC_EMMC_BOOT_MODE & BOOT_SEL1 & BOOT_SEL0 决定了启动或者烧写的
目标介质。
⚫
FAST_BOOT_MODE 用于选择是否进入串口烧写。
通过系统控制寄存器 SYSSTAT[4:2] 和 SYSSTAT[11] 可以获取当前的
FAST_BOOT_MODE 、 SFC_EMMC_BOOT_MODE 、 BOOT_SEL1 、 BOOT_SEL0 的状
态。通过系统控制寄存器 SYSSTAT[29:27] 可以获取当前的 BOOT_PARA_SEL_0 、
BOOT_PARA_SEL_1 、 BOOT_PARA_SEL_2 的状态,从而选择某个 DDR 参数表格启
动。通过系统控制寄存器 SYSSTAT[30] 可以获取当前的 BOOT_PARA_SEL_3 的状态,
从而确认 SFC 器件是 3.3V 还是 1.8V 。
请参考“系统”章节的 SYSSTAT 寄存器中的描述。
相关信号名请参考《 Hi3519DV500_PINOUT_CN 》。
启动介质和这些信号的关系如 表 1-1 所示。
1.4.3 启动模式
芯片支持如 表 1-2 所示启动模式,其中 soc_tee_enable 由寄存器
SOC_TEE_ENABLE[7:0] (绝对地址: 0x0_101E_0010 )值来决定 ( 源于 OTP 中的启动
模式标志位 ) 。
寄存器 SOC_TEE_ENABLE 详见《xxxx 安全启动使用指南》。
1.5 地址空间映射
地址空间参见 表 1-3 所示。
7.1 VEDU
7.1.1 概述
VEDU ( Video Encode and Decode Unit )是一个硬件实现的支持 H.265/H.264 视频
标准的编解码器。 VEDU 具有 CPU 占用率低、总线带宽占用小、低延时、低功耗等优
点。
7.1.2 特点
VEDU 编码具有以下特点:
⚫ 支持 ITU-T H.265Main Profile @Level 5.1 Main Tier 编码
− 支持 1/2 、 1/4 像素精度运动补偿
− 支持 I 、 P 帧
− 支持最多两个参考帧,支持长期参考帧
− 帧间预测支持 32x32 、 16x16 、 8x8 三种 PU 类型
− 帧内预测支持 32x32 、 16x16 、 8x8 、 4x4 四种 PU 类型
− 支持最多候选数目为 2 的 Merge/SKIP 模式
− 支持 32x32 、 16x16 、 8x8 、 4x4 四种 TU 类型
− 支持 CABAC 熵编码
− 支持 De-blocking 滤波
− 支持 SAO
− 支持 QPMap/SkipMap
⚫ 支持 ITU-T H.264 High Profile/Main Profile/Baseline Profile@Level 5.1 编码
− 支持 1/2 、 1/4 像素精度运动补偿
− 支持 I 、 P 帧
− 支持最多两个参考帧,支持长期参考帧
− 支持帧间预测 16x16 、 8x8 两种子块类型
− 支持所有 Intra4x4 、 Intra8x8 、 Intra16x16 预测模式
− 支持 Trans4x4 、 Trans8x8
− 支持 CABAC 、 CAVLC 熵编码
− 支持 De-blocking 滤波
⚫ 支持 H.264 SVC 时域分层( SVC-T )
⚫ 支持如下输入图像格式
− Semi-Planar YCbCr4:2:0
⚫
H.265/H.264 多码流编码性能:
− 3840x2160@30fps+1920x1080@30fps+720x480@30fps 编码
− 3840x2160@30fps( 编码 )+720x480@30fps( 编码 )+1920x1080@30fps( 解码 )
⚫ 支持图像分辨率可配置
− 最小图像分辨率: 114x114 ( H.265/H.264 )
− 最大图像分辨率: 4096x4096
− 图像宽度 / 高度的配置步长为 2
⚫ 支持感兴趣区域编码
− 支持最多 8 个区域的感兴趣区域编码
− 每个感兴趣区域编码功能可独立使能 / 禁止
⚫ 支持 OSD 区域编码保护
OSD 区域编码保护功能可使能 / 禁止
⚫ 支持视频前端 OSD 叠加处理
− 支持最多 8 个区域的编码前 OSD 叠加
− 支持任意大小,任意位置(不超出图像大小和位置) OSD 叠加
− 支持 256 级的 alpha 叠加
− OSD 叠加功能可使能 / 禁止
− 支持 OSD ARGB1555 、 ARGB4444 格式、 CLUT2 、 CLUT4 格式
⚫ 支持彩转灰编码功能
⚫ 支持输入低延时功能
⚫ 支持视频前端叠加 mosaic 编码
⚫ 支持数字水印编码
⚫ 支持输入 Y 分量,自动转为 YCbCr4:2:0 灰度图(色度全为 0x80 )并编码
⚫ 支持 CBR/VBR/AVBR/FIXQP/QPMAP 五种码率控制模式
⚫ 输出码率 H.265 最高 80Mbps , H.264 最高 80Mbps 。
⚫ 支持 slice 输出中断
VEDU 解码具有以下特点:
⚫ 支持 ITU-T H.265Main Profile @Level 5.1 Main Tier 解码
− 支持 1/2 、 1/4 像素精度运动补偿
− 支持 I 、 P 帧
− 支持 CTB32x32 、 CTB64x64 解码
− 支持最多两个参考帧,支持长期参考帧
− 帧间预测支持 64x64 、 32x32 、 16x16 、 8x8 四种 PU 类型
− 帧内预测支持 32x32 、 16x16 、 8x8 、 4x4 四种 PU 类型
− 支持最多候选数目为 2 的 Merge/SKIP 模式
− 支持 32x32 、 16x16 、 8x8 、 4x4 四种 TU 类型
− 支持量化矩阵
− 支持 CABAC 熵解码
− 支持 De-blocking 滤波
− 支持 SAO
− 不支持 B slice 解码
− 不支持 TILE 解码
⚫ 支持 ITU-T H.264 High Profile/Main Profile/Baseline Profile@Leve 5.1 解码
− 支持 1/2 、 1/4 像素精度运动补偿
− 支持帧间预测 16x16 、 8x8 、 8x4 、 4x8 、 4x4 五种子块类型
− 支持所有 Intra4x4 、 Intra8x8 、 Intra16x16 预测模式
− 支持 Trans4x4 、 Trans8x8
− 支持 CABAC 、 CAVLC 熵解码
− 支持 De-blocking 滤波
− 支持 IPCM 解码
− 不支持 ASO/FMO
− 不支持 B slice 解码
− 不支持场解码
− 不支持 MBAFF
− 不支持加权预测
⚫ 支持 H.265/H.264 多码流解码性能
支持 3840x2160@30fps 解码
⚫ 支持图像分辨率
− 最小图像分辨率: 114x114
− 最大图像分辨率:6144x6144
7.1.3 功能描述
VEDU 功能框图如 图 7-1 所示。
VEDU 编码实现了运动估计 / 帧间预测、帧内预测、运动矢量预测、变换 / 量化、反量化
/ 反变换、熵编码及码流生成、 de-blocking 滤波、 SAO 等协议 / 算法处理( H.265 ),
ARM 软件则完成码率控制和中断处理等编码控制处理。
在启动 VEDU 进行视频编码前,软件需要为其在外部存储器( DDR SDRAM )中分配
以下三种类型的缓冲区。
⚫ 输入图像缓冲区
VEDU 在编码过程中会从该缓冲区读取待编码的原始图像。该缓冲区通常由视频
输入单元写入。
⚫ 重构图像 / 参考图像缓冲区
VEDU 在编码过程中会向该缓冲区中写入重构图像、以作为后续图像的参考图
像,在进行 P 帧编码时会从该缓冲区读取参考图像。
⚫ 码流缓冲区
该缓冲区用于存放编码输出的码流。 VEDU 在编码过程中会将码流写入该缓冲
区。该缓冲区通常由软件读取。
VEDU 解码功能框图如 图 7-2 所示。
VEDU 解码器实现了对 H264/H265 协议按一批 slice 进行交互完成解码, VFMW 完成
slice header 及以上的解码, VEDU 硬件完成 slice data 及以下的解码。
在启动 VEDU 进行视频解码前,软件需要为其在外部存储器( DDR SDRAM )中分配
以下三种类型的缓冲区。
⚫ 重构图像 / 参考图像缓冲区
VEDU 在解码过程中会向该缓冲区中写入重构图像、以作为后续图像的参考图
像,在进行 P 帧解码时会从该缓冲区读取参考图像。
⚫ 码流缓冲区
该缓冲区用于存放解码输入的码流。该片空间码流来之 SCD (起始码检测模块)
模块的输出
⚫ 下行消息缓冲区
该缓冲区用于存放解码输入的码流以及 slice data 层次以上信息。
图7-2 VEDU 解码功能框图
7.2 JPGE/JPGD
7.2.1 概述
JPGE 是一个硬件实现的高性能 Jpeg 编码器,可实现图片抓拍、高清图像 MJPEG 编码
业务。
JPGD ( JPEG Decoder )模块是 JPEG ( Joint Photographic Experts Group )静态数字
图像解码模块,该模块在高清芯片中的作用是支持 JPEG/Motion-JPEG 图像的解码。
7.2.2 特点
JPGE 具有以下特点:
⚫ 支持 ISO/IEC 10918-1(CCITT T.81) Baseline Process(DCT Sequential) 编码
− 支持 Semi-PlanarYCbCr4:2:0 、 Semi-PlanarYCbCr4:2:2 两种色度采样格式的图
像编码
− 量化表可配置: Y 、 Cb 、 Cr 三个分量各提供一张量化表
− 支持彩转灰功能
− 支持输入低延时功能
− 支持输入 Y 分量,自动转为 YCbCr4:2:0 灰度图(色度全为 0x80 )并编码
− 支持如下输入图像格式
Semi-Planar YCbCr4:2:0
Semi-Planar YCbCr4:2:2
− 编码性能
最高支持 3840x2160@60fps ( YUV420 )
− 支持的图像分辨率
最小图像分辨率: 32x32
最大图像分辨率: 16384x16384
图像宽度 / 高度的配置步长为 2
− 支持视频前端 OSD 叠加处理
支持最多 8 个区域的编码前 OSD 叠加
支持任意大小,任意位置(不超出图像大小和位置) OSD 叠加
支持 256 级的 alpha 叠加
OSD 叠加功能可使能 / 禁止
支持 OSD ARGB1555 、 ARGB4444 格式、 CLUT2 、 CLUT4 格式
− MJPEG 输出码率范围: 2kbps ~ 200Mbps
JPGD 模块具有以下功能特点:
⚫ 部分支持 ITU-T81 Baseline profile 解码。即:
− 支持 YUV 三分量的 JPEG 图像解码,支持 YUV 4:0:0 、 YUV4:2:0 、 YUV4:2:2
1x2 、 YUV4:2:2 2x1 、 YUV 4:4:4 五种输入格式。
− 最多支持 4 张 Huffman 表,其中包括 2 张 DC 表和 2 张 AC 表。
− 最多支持 3 张量化表。
− 支持 sequential 格式解码。
− 支持基于 DCT 变换的 JPEG 格式解码。
− 支持 8bit 采样精度。
− 支持交织的扫描方式。
⚫ 输入输出最大支持分辨率为 16384x16384 大小的静态图像解码,最小支持分辨率
为 8 x 8 大小的静态图像解码。
⚫ 支持 semi-planar420 的输出。
⚫ 支持输出低延时功能
⚫ 解码性能: 3840x2160@30fps ( YUV420 格式)。
7.2.3 功能描述
JPGE 功能如 图 7-3 所示。
由图可见, JPGE 硬件实现了 OSD 、 level shift 、 DCT 、量化、扫描、 VLC 编码及码流
生成等运算量较大的协议处理,而 ARM 软件则完成量化表配置和中断处理等编码控制
处理。
在启动 JPGE 进行视频编码前,软件需要为其在外部存储器( DDR SDRAM )中分配以
下两种类型的缓冲区:
⚫ 输入图像缓冲区
JPGE 在编码过程中会从该缓冲区读取待编码的原始图像。该缓冲区通常由视频输
入单元写入。
⚫ 码流缓冲区
该缓冲区用于存放编码输出的码流。 JPGE 在编码过程中会将码流写入该缓冲区。
该缓冲区通常由软件读取。
14.1 概述
安全子系统支持以下安全特性:
⚫ 支持硬件产生真随机数,产生的真随机数符合 SP800-22 的随机测试标准。
⚫ 支持 OTP ( One Time Programmable ),用户可用空间达 28Kbit 。
⚫ 支持硬件对称加解密算法和 HASH 算法:
− 对称加解密算法
■ 支持 AES128 、 AES256 , AES 算法的实现符合 FIPS 197 标准。 AES 的工
作模式符合 NIST special800-38a 标准;
■ 支持国密 SM4 算法。
− HASH 算法
■ 支持 SHA256 、 SHA384 、 SHA512 、 HMAC-SHA256 、 HMAC
SHA384 、 HMAC-SHA512 ;
■ 支持国密 SM3 算法。
⚫ 支持硬件非对称加解密算法:
− 支持 RSA 3072/4096 ,符合 PKCS#1 V1.5/2.1 标准;
− 支持国密 SM2 算法;
− 支持 ECC256/384/512 椭圆曲线算法。
⚫ 支持 JTAG 保护。
⚫ 支持 KeyLadder ,用于密钥加解密管理,增加安全强度。
⚫ 支持 ARM TrustZone。
⚫ 支持安全内存隔离。
⚫ 支持安全启动。支持 bootloader 的签名校验和加解密。