8.2.5. sample_vps_zoom 使用说明

8.2.5.1. 程序功能

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

Pipeline

如 Pipeline 所示,程序通过 vps0 读取 YUV 图像,vps0 chn1 和 vps1 绑定,通过 ipu 和 pym 做 crop 及放大后,将数据送给 venc 的 chn1 做 H264 编码,形成 zoom 放大的效果,同时 vps0 chn2 和 venc chn0 绑定做 H264 编码, vps0 chn3 和 venc 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