当前位置: 首页 > news >正文

网站建设学习内容企业员工培训课程内容

网站建设学习内容,企业员工培训课程内容,哪里有免费网站空间,网站建设学院本文主要介绍如何基于FPGA实现视频的90度/270度无裁剪旋转,旋转效果示意图如下: 为了实时对比旋转效果,采用分屏显示进行处理,左边代表旋转前的视频在屏幕中的位置,右边代表旋转后的视频在屏幕中的位置。 分屏显示的…

本文主要介绍如何基于FPGA实现视频的90度/270度无裁剪旋转,旋转效果示意图如下:
在这里插入图片描述

为了实时对比旋转效果,采用分屏显示进行处理,左边代表旋转前的视频在屏幕中的位置,右边代表旋转后的视频在屏幕中的位置。 分屏显示的实现方式见本专栏前面的文章详解。

本旋转方案不仅仅适用于国产安路FPGA,只有板卡上带有支持AXI4总线操作DDR的IP核,均可以进行方案移植

关于FPGA实现视频180度实时旋转,点击跳转文章链接

关于FPGA实现视频任意角度旋转,点击跳转文章链接

一、前言

  • 后续文章的工程代码不在免费上传至Github,方案是开源的,工程代码可以私信我或者是评论区留言,有偿提供(价格不贵,此文章对应的工程文件为 ¥50)。前面已经发布的文章方案和代码均是开源的,可以直接去github下载。

  • 免费内容太容易被剽窃了,付费是某种意义上的版权保护

  • 付费即意味着责任,有利于提高文章质量、同时也能提高更新动力。

二、设计概述

除去DDR3控制器、FIFO等常用IP,本设计所用到的主要的IP模块如下。

IP功能来源
uidbuf基于FDMA信号时序的缓存控制器
适合用于基于RGB时序的视频数据或者数据流传输
米联客
uiFDMA基于AXI总线的自定义内存控制器
简化AXI总线的控制,完成数据的搬运
米联客
uidbuf_w_active_rotate在uidbuf的基础上进行更改
用于视频90度/270度旋转
个人开发
uivtc_video_rotate_90在uivtc的基础上进行更改
读取两路视频,一路是旋转之前的视频,一路是旋转之后的视频
个人开发

三、系统实现方案

3.1 理论分析

在实现视频90/270度旋转时,我们无法像前面的文章那样,在使用AXI4总线读写DDR时,把突发长度设置为一整行的像素量。

由于原始视频在经过旋转后,对应的像素点位置不在是连续的,因此我们不得不考虑把突发长度设置为1进行像素点的写入/读取。

根据现在可以找到的有关FPGA实现视频任意角度旋转的文章可以得知,在进行视频旋转时,我们可以采用正向映射/逆向映射两种方式进行视频旋转的处理。

在进行视频任意角度旋转时(比如31度),为了保证旋转后的视频无空洞,需要采用逆向映射的旋转方案进行处理(下一篇文章介绍任意角度旋转实现方案)。

在视频处理中,对于 90 度或 270 度的旋转操作较为常见。由于视频像素点在完成这类旋转后,其排列呈现出明显的规律性,因此针对这类旋转的处理方式,我们可以采用正向映射的方案进行处理,把输入进的待旋转视频数据依次写入旋转后对应的像素点位置。

3.2 数据流框图

在这里插入图片描述
为了处理输入进的60hz的待旋转视频,视频像素点的数据流如上图所示,其经历了三进三出DDR3,最终输出至显示器进行显示。

  • 第一次读写DDR3:由于输入进来的视频为60帧的帧率,如果直接对视频进行逐像素点写入,是处理不过来的。(具体我们的板卡能实现多高的处理速率,取决于我们使用的DDR控制器IP从发起写请求到一个像素点完全写入需要的时间,这个需要自行计算一下)因此,第一次缓存的目的是把输入进来的视频数据先存进DDR3,以一个较低的帧率读出像素数据至旋转处理模块。
  • 第二次读写DDR3:把刚刚读出的经过降帧的数据,进行90度/270度旋转处理,然后存进DDR,并以较低的帧率读出
  • 第三次读写DDR3:把刚刚读出的经过降帧的并且是旋转后数据,再次存进DDR,然后就可以以正常的60帧读出进行显示。

上述处理的核心在于旋转模块的实现。

3.3 uidbuf_w_active_rotate模块

此模块采用正向映射的方法进行90度/270度旋转,把待旋转的数据依次写入到像素点旋转后对应的位置
模块接口如下,相比于uibuf模块,不同的部分用红框圈出。
在这里插入图片描述
此方案中,使用AXI4总线读写DDR时,AXI4总线的数据宽度为128,像素点的数据位宽为16,因为DDR3采用的是8-bit预取,DDR3的位宽配置为16bit,所以在突发长度为1的情况下,一次可以读出8个16bit数据(128bit),在常规情况下,一次能读出8个像素点数据。

然而,在进行旋转时,为了保证每一次只传输一个像素数据,我们把这128bit全部设置为某一个像素点的数据即可。

该模块中核心的部分在于地址计算,详见源代码。

四、移植注意事项

1、本工程视频源输入的视频分辨率为1280×720@60hz

2、使用串口命令发送16进制 00 视频进行顺时针90度旋转, 01 视频进行顺时针270度旋转,波特率为115200。

五、上板验证

视频旋转效果图如下,下图分别为旋转90度和270度的结果
在这里插入图片描述
在这里插入图片描述

http://www.tj-hxxt.cn/news/75758.html

相关文章:

  • 加盟品牌网站建设app下载免费安装
  • 微商城网站建设流程方案苏州网站建设哪家靠谱
  • 网站集约化建设方案网络推广好做吗多少钱
  • 品牌网站开发特点google chrome浏览器
  • 如何在百度上做网站最新新闻热点素材
  • 给公司做门户网站多少钱郑州做网站最好的公司
  • 电脑网页尺寸一般是多少班级优化大师app
  • 武汉做网站哪家公司好网站seo在线优化
  • 国内网站用django做的上海优化排名网站
  • wordpress主题收费变免费福清seo
  • 网站开发需要看相关书籍武汉搜索排名提升
  • 嘉兴企业网络营销推广平台网站优化外包
  • 网站建设开发多少钱上海seo优化公司bwyseo
  • 海淀公司网站搭建网络推广方法怎么做
  • 专做阀门网站谷歌 chrome 浏览器
  • 上海网页制作与网站设搜索引擎内部优化
  • javascript网页制作模板福州seo招聘
  • 可信赖的企业网站建设二级域名查询网站
  • 百拓公司做网站怎么样互联网营销师考试题库
  • 怎么创建自己公司的网站长沙官网优化公司
  • 连云港做网站优化营销型网站优化
  • 公司网站优化哪家好2021百度模拟点击工具
  • h5网站开发实例教程八八网
  • 长春网站建设电话咨询高报师培训机构排名
  • wordpress 私密文章茂名seo快速排名外包
  • 淄博网络公司做网站的电话百度应用
  • 南京哪些公司做网站seo分析师
  • 中国建设银行新闻网站国际新闻军事最新消息
  • 网站域名申请电脑培训班一般需要多少钱
  • 写一张营销型网站页面多长时间seo网站推广是什么意思