Hi35xx平台实现实时视频缩放的三种方案
创作时间:
作者:
@小白创作中心
Hi35xx平台实现实时视频缩放的三种方案
引用
CSDN
1.
https://blog.csdn.net/evm_doc/article/details/146129625
在智能视频分析领域,海思Hi35xx芯片凭借其高品质的ISP成像以及稳定的NPU推理能力,已成为边缘计算场景的热门选择。在实际应用中,输入神经网络模型的分辨率(如640×640或512×512)与原始视频分辨率(1080P/720P)存在显著差异,高效的视频缩放技术成为提升系统性能的关键。本文深入解析Hi35xx平台支持的三种视频缩放方案,从技术原理、API实现到对比分析,为开发者提供全面的技术选型参考。
一、使用IVE模块实现硬件加速缩放
1.1 技术原理
IVE(Intelligent Video Engine)是海思专为智能视频处理设计的硬件加速模块,其Resize功能采用双线性插值算法,支持多路并行处理,尤其适合高吞吐量场景。IVE通过专用硬件单元实现像素坐标映射和加权计算,在保证图像质量的同时显著降低CPU负载。
1.2 API详解
核心接口为HI_MPI_IVE_Resize2
,支持批量处理和多通道输入:
HI_S32 HI_MPI_IVE_Resize2(
IVE_HANDLE *pIveHandle, // 任务句柄
IVE_SRC_IMAGE_S *pstSrc, // 源图像结构体
IVE_DST_IMAGE_S *pstDst, // 目标图像结构体
IVE_RESIZE2_CTRL_S *pstCtrl, // 控制参数
HI_BOOL bInstant // 同步模式标志
);
关键参数说明:
pstSrc
:输入图像,支持U8C1(单通道灰度图)、U8C3(3通道彩色图)格式,需满足16字节对齐pstDst
:输出图像,格式需与输入一致,跨度须为16的倍数pstCtrl
:控制结构体,定义缩放模式和插值算法
typedef struct {
IVE_RESIZE_MODE_E enMode; // 缩放模式(区域裁剪/全图缩放)
HI_U32 u32HorFac; // 水平缩放系数(Q12定点数)
HI_U32 u32VerFac; // 垂直缩放系数(Q12定点数)
HI_U16 u16TmpBufSize; // 临时缓冲区大小
} IVE_RESIZE2_CTRL_S;
1.3 示例代码
IVE_HANDLE iveHandle;
IVE_SRC_IMAGE_S stSrc;
IVE_DST_IMAGE_S stDst;
IVE_RESIZE2_CTRL_S stCtrl;
// 初始化源图像
stSrc.u32Width = 1920;
stSrc.u32Height = 1080;
stSrc.au64PhyAddr[0] = INPUT_PHY_ADDR;
stSrc.au64VirAddr[0] = INPUT_VIR_ADDR;
// 配置目标图像(640x640)非等比例缩放,实际中不建议
stDst.u32Width = 640;
stDst.u32Height = 640;
stDst.au64PhyAddr[0] = OUTPUT_PHY_ADDR;
stDst.au64VirAddr[0] = OUTPUT_VIR_ADDR;
// 设置控制参数
stCtrl.enMode = IVE_RESIZE_MODE_FULL;
stCtrl.u32HorFac = (1920 << 12) / 640; // Q12定点数计算
stCtrl.u32VerFac = (1080 << 12) / 640;
stCtrl.u16TmpBufSize = 1024;
// 执行缩放
HI_S32 ret = HI_MPI_IVE_Resize2(&iveHandle, &stSrc, &stDst, &stCtrl, HI_TRUE);
if (ret != HI_SUCCESS) {
printf("IVE Resize failed: 0x%x\n", ret);
}
二、VPSS通道功能实现实时缩放
2.1 技术原理
VPSS(Video Process Sub-System)提供硬件级视频处理流水线,通过通道绑定实现零拷贝缩放。该方案利用VPSS的通道特性,在视频进入VPSS模块后直接进行分辨率转换,特别适合实时视频流处理。
2.2 VPSS配置流程
- 创建VPSS组 :
xxx
HI_MPI_VPSS_CreateGrp(VpssGrp, NULL);
xxx
- 设置通道属性 :
//通过设置VPSS的输出分辨率实现视频的实时缩放功能
VPSS_CHN_ATTR_S stChnAttr;
stChnAttr.enPixelFormat = PIXEL_FORMAT_YUV_SEMIPLANAR_420;
stChnAttr.u32Width = 640;
stChnAttr.u32Height = 640;
stChnAttr.enVideoFormat = VIDEO_FORMAT_LINEAR;
HI_MPI_VPSS_SetChnAttr(VpssGrp, VpssChn, &stChnAttr);
- 启用通道缩放 :
VPSS_CHN_MODE_S stChnMode;
stChnMode.enChnMode = VPSS_CHN_MODE_USER;
stChnMode.enCompressMode = COMPRESS_MODE_NONE;
HI_MPI_VPSS_SetChnMode(VpssGrp, VpssChn, &stChnMode);
三、VGS模块实现灵活视频缩放
3.1 技术特点
VGS(Video Graphics Sub-System)专为复杂图形操作设计,支持旋转、镜像、马赛克等特效。其缩放功能的底层采用可编程DSP核进行实现,支持非整数倍缩放和动态ROI调整。
3.2 关键API调用
xxxx
HI_S32 HI_MPI_VGS_BeginJob(VGS_HANDLE *phHandle);
xxxx
HI_S32 HI_MPI_VGS_AddScaleTask(
VGS_HANDLE hHandle,
const VGS_TASK_ATTR_S *pstTask
);
xxx
HI_S32 HI_MPI_VGS_EndJob(VGS_HANDLE hHandle);
任务属性结构体:
typedef struct {
VGS_SCALE_COEF_E enScaleCoef; // 插值系数(BILINEAR/NEAREST)
RECT_S stSrcRect; // 源图像区域
RECT_S stDstRect; // 目标区域
HI_BOOL bInstant; // 同步执行标志
} VGS_TASK_ATTR_S;
四、方案对比分析
评估维度 | IVE方案 | VPSS方案 | VGS方案 |
---|---|---|---|
处理延迟(预估值) | <5ms | 3-5ms | 3-5ms |
最大吞吐量 | 1080P@30fps | 1080P@60fps | 1080P@60fps |
资源占用 | 专用硬件单元 | 专用硬件单元 | 专用硬件单元 |
典型应用场景 | 数字图像处理如,灰度图、彩色图像,整数倍的缩放 | 实时视频流处理,支持YUV格式 | 实时视频流处理,支持YUV格式 |
选型建议:
- 单通道、三通道图像处理场景 :优先选择IVE方案。
- YUV视频流低延迟需求 :VPSS方案为最优解
- YUV视频流任意缩放比例 :VGS方案
五、小结
在Hi35xx平台上,开发者可根据实际业务需求灵活选择缩放方案。IVE凭借硬件加速能力成为数字图像处理的优选,VPSS在视频流水线处理中展现高效特性,可以作为模型预处理的首选方案,而VGS则可作为VPSS通道不足的情况下的备用资源。建议在系统设计阶段进行多方案性能评测,结合具体业务场景实现最优资源配置。
热门推荐
壁挂炉显示E2故障怎么办?专业排查与解决指南
有关量价关系的分析,看完这篇就够了!
期货收益的提升方法有哪些?如何实现期货收益的稳定增长?
减轻电磁干扰的常用方法
高压电缆施工工艺与注意事项
大西北适合种什么花
屋顶防水处理全攻略:从材料选择到效果评估
花籽如何播种发芽快
我国学者在软骨再生靶点研究方面取得进展
股票升势的技术分析方法:如何应用技术分析股票升势
如何掌握国际市场的开盘时间
乘客座位险的定义是什么?乘客座位险的保障范围有哪些?
如何用万用表排查电路板故障?三种实用维修方法详解
面临多个职业机会,如何通过规划抉择
全球变暖导致近年来致极端事件频发和气候系统失衡
成都软件应届生的平均月薪是多少?
最新高中美术教资面试真题及结构化题库解析(2024版)
心功能不全,全面解析心脏健康的隐忧
日本签证一定要找旅行社吗?自己申请可以吗?
劳动合同对劳动者的作用及法律规定
外企的就业前景分析:岗位需求、优势及面试指南
电气工程及其自动化专业考研院校排名:深度解析
突如其来的猫咪急性胰腺炎,都有哪些症状?
收到工伤认定书后怎么办?停工留薪工资如何保障?
脑蛋白水解物的作用与功效
开源之战:国内外GPL侵权多案件,维护原开发商权益!
基本工资与最低工资的区别及法律规范
健康科普 | 拒绝吃水果发胖!识别常见的高糖、低糖水果→公共卫生与预防医学
腮腺瘤挂什么科看病
麻省理工揭秘蝴蝶翅膀鳞片结构:或启发革命性新材料