8.2.5. sample_vps_zoom 使用说明

8.2.5.1. 程序功能

sample_vps_zoom 程序使用 vps 的硬件模块 ipupymYUV 图像中的部分区域做多倍放大处理,对处理后的 YUV图像编码成 H264 视频流,可以直接使用 MPC-BE 等工具进行预览,类似电子云台中的zoom 功能。整个程序的 Pipeline 如下图所示:

Pipeline

Pipeline 所示,程序通过 vps0 读取 YUV 图像,vps0 chn1vps1 绑定,通过 ipupymcrop 及放大后,将数据送给 vencchn1H264 编码,形成 zoom 放大的效果,同时 vps0 chn2venc chn0 绑定做 H264 编码, vps0 chn3venc chn2 绑定做 H264 编码。

8.2.5.2. 程序开发

源码结构

源码位于:/app/multimedia_samples/sample_vps_zoom

.
|-- 19201080.yuv      # 回灌使用NV12格式文件 
|-- main.c            # 主程序
`-- Makefile          # 编译makefile

编译

当前代码通过一个Makefile文件配置编译

进入源码目录,执行以下命令进行编译生成sample_vps_zoom程序:

$ cd /app/multimedia_samples/sample_vps_zoom
$ make clean # 清理源码,保持干净的代码环境
$ make
... ... # 一大段编译打印
$ ls
19201080.yuv  main.c  main.o  Makefile  sample_vps_zoom

8.2.5.3. 功能使用

程序部署

按照上面的编译流程生成出 sample_vps_zoom,确保当前目录下存在 19201080.yuv 文件

执行程序 ./sample_vps_zoom

运行效果说明

YUV 图片通过回灌方式,利用 ipu, pym, venc 模块编码成平滑放大的zoom H264 码流。效果如下所示。

vps_1_chn_5_venc_0.h264_20230523_143448