VIVADO HLS学习

vivado hls数据类型学习记录

  • FPGA设计中OpenCV的应用
    • 1、OpenCV中图像IplImage,CvMat,Mat类型和Vivado HLS中图像hls::Mat类型介绍
    • 2、VIVADO HLS处理流程
  • HLS中数据类型
  • opencv中像素数据类型

FPGA设计中OpenCV的应用

VIVADO HLS学习_第1张图片

1、OpenCV中图像IplImage,CvMat,Mat类型和Vivado HLS中图像hls::Mat类型介绍

在opencv中,Mat类型与CvMat和IplImage类型都可以代表和显示图像,Mat侧重图像计算,而CvMat和IplImage类型更侧重于“图像”。VivadoHLS视频处理函数库使用hls::Mat<>数据类型,这种类型用于模型化视频像素流处理,实质等同于hls::steam<>流的类型,而不是OpenCV中在外部memory中存储的matrix矩阵类型。因此,在用HLS实现OpenCV的设计中,需要将输入和输出HLS可综合的视频设计接口,修改为Video stream接口,也就是采用HLS提供的video接口可综合函数,实现AXI4 video stream到VivadoHLS中hls::Mat<>类型的转换。

2、VIVADO HLS处理流程

opencv中图像数据以matrix矩阵形式存储,而vivado hls中以hls::Mat数据类型处理图像,因此根据上图流程图可知,需要将图像转化为可综合数据形式再进行处理。数据转化流程如下:

  1. 将图像数据转化为AXIvideo形式输入。
  2. 将AXIvideo数据流形式转化为MAT数据类型进行图像计算处理,该步可进行综合。转换函数:hls::AXIvideo2Mat(from ug902)
  3. 将MAT数据形式转化为AXIvideo数据流类型,该步可进行综合。转换函数:hls::Mat2AXIvideo(from ug902)
  4. 将AXIvideo数据流形式转化为图像数据进行输出。

HLS中数据类型

vivado hls支持c c++,提供整形和定点任意精度数据类型,并支持system C一部分的任意精度数据类型。
VIVADO HLS学习_第2张图片
eg.c++数据类型使用 #include “ap_int.h”
VIVADO HLS学习_第3张图片
eg.定点标识符简介 #include “ap_fixed.h”
VIVADO HLS学习_第4张图片

opencv中像素数据类型

opencv中像素数据类型描述
格式如下:XF[每像素比特数][有符号(s)无符号(u)浮点数(f)]C[通道数]
VIVADO HLS学习_第5张图片

你可能感兴趣的:(fpga开发,硬件工程,计算机视觉)