FPGA实现MPEG2视频压缩PCIe传输 提供软硬件工程源码和技术支持

news2024/9/21 2:39:25

目录

  • 1、前言
  • 2、MPEG2视频压缩实现
  • 3、我已有的FPGA图像视频编解码方案
  • 4、我已有的PCIE方案
  • 5、MPEG2视频压缩PCIE传输设计方案
    • FPGA硬件设计
    • 软件设计
  • 6、Vivado工程详解
  • 7、Linux下的XDMA驱动安装
  • 8、上板调试验证
  • 9、福利:工程代码的获取

1、前言

MJPEG、MPEG2、MPEG4、H264 是流行且兼容性很高的 4 种视频编码格式。其中 MJPEG 对每帧独立进行 JPEG 图象压缩,而不利用帧间相关性,因此压缩效果较差。 MPEG2、MPEG4 和 H264 会进行帧间压缩,但后两者更复杂,效果也更好。MPEG2 虽然比较老 (1994年),但在低压缩率的条件下与 MPEG4 和 H264 没有明显劣势,因此 MPEG2 在高质量、低压缩率要求的应用场合仍然可堪一用。。。

PCIE(PCI Express)采用了目前业内流行的点对点串行连接,比起 PCI 以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到 PCI 所不能提供的高带宽,是目前各行业高速接口的优先选择方向,具有很高的实用价值和学习价值;

本设计使用Xilinx官方的XDMA方案搭建基于Xilinx系列FPGA的PCIE通信平台,该方案只适用于Xilinx系列FPGA,一并提供了XDMA的安装驱动和QT上位机源代码,省去了使用XDMA繁琐的驱动寻找和上位机软件开发的不知所措,并以搭建好vivado工程,省去了不知道如何使用XDMA的尴尬,使得PCIE的使用变得简单易上手,而不用关心其复杂的PCIE协议;由于我的开发板只支持PCIE X1,所以提供的代码是PCIE X1架构,若需要PCIE X1、 X2、 X8、 X16、 X32的朋友,可自行修改本工程,也可关注我,我会实时发布新的工程。

本文详细描述了FPGA基于XDMA搭建PCIE通信平台的设计方案,利用开发板逻辑资源大的特点,实现了MPEG2视频压缩后通过PCIe传输的功能试验;工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的高速接口领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

本设计与我之前写的PCIE工程区别在于,此XDMA的PCIE工程硬件和软件都运行于Linux系统,XDMA的驱动安装、API调用和应用软件都与运行于Windows系统的工程不一样,适用于运行在Linux系统的PCIE应用,当然,Windows系统的用户也可以参考,因为XDMA都是一样的,仅仅驱动安装不一样;

2、MPEG2视频压缩实现

关于MPEG2视频压缩实现,我之前已经专门写过一篇文章,建议回头看看,一遍了解MPEG2视频压缩的实现原理和方法,文章链接:https://blog.csdn.net/qq_41667729/article/details/129998492

3、我已有的FPGA图像视频编解码方案

我的主页有FPGA图像视频编解码专栏,既有例如MPEG2、H264、H265等主流的视频编解码,也有JPEG、JPEG-LS、PNG等主流的图片编解码;全部采用FPGA硬件实现编解码加速;以下是专栏地址:https://blog.csdn.net/qq_41667729/category_12277772.html?spm=1001.2014.3001.5482

4、我已有的PCIE方案

我的主页有PCIE通信专栏,既有基于RIFFA实现的PCIE方案,也有基于XDMA实现的PCIE方案;既有简单的数据交互、测速,也有应用级别的图像采集传输,既有基于纯FPGA的PCIE工程,也有基于zynq架构的PCIE工程,以下是专栏地址:https://blog.csdn.net/qq_41667729/category_12252265.html?spm=1001.2014.3001.5482

5、MPEG2视频压缩PCIE传输设计方案

MPEG2视频压缩PCIE传输方案设计方案架构如下图:
在这里插入图片描述
设计共分两部分:FPGA设计和Linux软件设计;

FPGA硬件设计

MPEG2视频压缩:
采用systemverilog语言实现,属于为YUV422视频流,输出为256位宽的MPEG2视频流,可参考设计框图的箭头流向;在此基础上,将MPEG2视频压缩模块挂在于AXI4总线上,这里为AXI4从机,所以,MPEG2视频压缩最后的封装形式为AXI4接口,该接口可直接与XDMA对接交互;
PCIe:
直接调用官方的XDMA,由于我的板子只有PCIe X1的接口,所以将XDMA配置为X1模式,亦可配置为X2 X4 X8等其他模式;具体配置如下:
在这里插入图片描述
MPEG2视频压缩挂载AXI4接口后的顶层接口和例化部分如下如:
在这里插入图片描述
在这里插入图片描述

软件设计

直接调用XDMA官方API实现软件的功能,主函数xdma_mpeg2encode.c实现两个功能:
1:将.YUV格式文件发送到PCIe的发送端口,通过PCIe总线发送给FPGA板子,FPGA里面的XDMA接收后通过AXI4总线发送给MPEG2视频压缩作为视频输入;载入.YUV文件的功能子函数如图:
在这里插入图片描述
2:FPGA里面的MPEG2视频压缩收到输入视频后,实时的将视频压缩为MPEG2视频流,通过AXI4总线发送给XDMA,XDMA再通过PCIe总线发送给电脑,xdma_mpeg2encode.c的另一个功能就是接收MPEG2视频流,并将它转为.m2v格式的视频文件,该文件的视频可用VLC播放器播放;
读取MPEG2视频流的功能子函数如图:
在这里插入图片描述
至此,一个完整的FPGA实现MPEG2视频压缩PCIe传输的功能就搭建完成了。。。

6、Vivado工程详解

开发板FPGA型号:Xilinx–xc7vx690tffg1761-3;
开发环境:Vivado2019.1;
输入:软件程序喂入.YUV格式视频流;
输出:MPEG2视频流软件转为.m2v格式的视频文件;
应用:MPEG2视频压缩PCIe采集卡;

工程源码架构如下:
在这里插入图片描述
FPGA资源消耗和功耗预估如下:
在这里插入图片描述

7、Linux下的XDMA驱动安装

资料包里提供了XDMA驱动和驱动安装手册,可打开手册安装即可,位置如图:
在这里插入图片描述

8、上板调试验证

第一步:首先将FPGA板子插在电脑主板的PCIE插槽里,如下:
在这里插入图片描述
第二步:按照软件使用手册一步步执行命令即可,资料包里提供了MPEG2视频压缩运行软件和软件使用手册,按照软件使用手册一步步执行命令即可,位置如图:
在这里插入图片描述
第三步:执行完软件后,即可看到压缩后的MPEG2视频,然后用VLC播放器播放即可,生成的视频文件位置如图:
在这里插入图片描述
播放截图如下:
在这里插入图片描述

9、福利:工程代码的获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:文章末尾的V名片。
网盘资料如下:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/512203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IOS开发指南之storyboard中控件与变量关联及控件事件与方法关联

1.创建IOS工程 2.选择 interface为storyboard,语言选择Objective-C 打开工程后可看到工程默认添加了两个storyboard文件 Main.storyboard为应用主场景,LaunchScreen为启动屏幕场景 3.双击Main.storyboard打开设计窗口,并拖放控件布局如下 4.为控件添加关联变量与(IBOutlet与I…

身高测量仪红外传感测距模块应用方案 WTU201F2 B004 低功耗

​身高测量仪被广泛用于医疗、教育等领域,而红外测距模块在身高测量仪中的应用则成为了一种新的技术手段。红外测距模块是基于红外线技术的一种测距器件,在身高测量仪中,红外测距模块能够精准地测量出人体的高度。与传统的测量方法相比&#…

品牌如何从零开始运营抖音,带你全面了解

随着短视频逐渐深入我们的生活,巨大的流量吸引了众多人群。很多人因此也想开始做抖音,很多品牌却因为内容制作流程复杂,不知从何入门。今天,和大家分享下品牌如何从零开始运营抖音。 其实在开始一件事情之前,最主要的是…

智能感测离子风棒,托起中国“智”造新高度

智能感测离子风棒采用市面上较为少见的内置感测型离子发生器,能够对外界环境电荷进行快速平衡。该设备智能控制,无需人工点检,达到全自动静电消除并具备异常报警功能。能让ESD管理者或使用者先一步发现问题,快速准确的解决问题 。…

Shell脚本例题

1.计算从1到100所有整数的和 2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和 3.求从1到100所有整数的偶数和、奇数和 4.用户名存放在users.txt文件中,每行一个,判断文件里的用户是否存在,若该用户存在&#xf…

京喜APP - 图片库优化 | 京东云技术团队

作者:京东零售 何骁 介绍 京喜APP早期开发主要是快速原生化迭代替代原有H5,提高用户体验,在这期间也积累了不少性能问题。之后我们开始进行一些性能优化相关的工作,本文主要是介绍京喜图片库相关优化策略以及关于图片相关的一些…

es 7.0.8 常用DSL语句进行索引crud操作(windows es7.x)

一 es7.x的核心 1.1 es的核心概念 1.ES 里的 Index 可以看做一个库(名称必须为小写),而 Types 相当于表,Documents 则相当于表的行。 2.这里 Types 的概念已经被逐渐弱化,Elasticsearch 6.X 中,一个 index 下已经只能包含一个…

postgresql数据库linux centos7 安装

简介 (百度百科) PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只…

Linux基础学习---1、目录结构、Vim编辑器、网络配置和远程登录

1、Linux目录结构 1.1 /bin 是Binary的缩写,这个目录存放着最经常使用的命令。1.2 /sbin s是Super User的意思,这里存放的是系统管理员使用的系统管理程序。1.3 /home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录&#xff…

海睿思分享 | 浅谈智能数据治理

随着大数据和AI技术的发展,利用企业内外部海量数据进行融合、治理、分析和应用,已成为企业经营管理越来越重要的手段。如何构建企业大数据分析平台发挥数据价值正成为企业数字化转型的核心战略任务。 基于大数据平台进行数据分析的完整流程分为&#xf…

MyBatis--映射关系一对一和MyBatis--映射关系多对一 -都有基于xml和注解的教程

目录 MyBatis--映射关系一对一 映射关系-官方文档 映射关系1 对1-基本介绍 注意细节 映射方式 方式1 创建idencardv 表 创建person表 创建新的 module(mybatis-mapping), 相关配置文件可以从上一个 module 拷贝 创建IdenCard.java对应表类 创建Person.java对应表类…

Vue2相关面试题(持续更新)

前言 目前这套面试题只适合 初级前端,后面会进行深层次补充和拓展以及Vue2源代码的讲解(虽然Vue2今年开始不维护了,但是我的面试题不会止步,冲冲冲)。在面试的过程中,一定要清楚哪些该说哪些不该说&#x…

云剪辑-B端在线剪辑⼯具架构设计与演进

腾讯云音视频的云剪辑致力于让客户在自己的应用(Web、小程序)中快速集成剪辑能力,同时强大的模板能力能够极大地提升视频生产效率。我们在探索B端在线剪辑产品的过程中遇到不少挑战:如何满足快速与定制两种集成场景?如…

Linux性能监控

一、htop 安装:yum install htop -ytop是linux下常用的监控程序,htop相当于其加强版,颜色显示不同参数,且支持鼠标操作,相对于top简单和人性化!第一行与第二行,显示CPU当前的运行负载&#xff…

F407标准库之时钟系统

主要参考正点原子数据手册和源码资料等。 第19讲 STM32时钟系统精讲_哔哩哔哩_bilibili 此处记录较为重要或者较易出错的一些遗漏之处,作为补充。 一般而言,时钟越高,速度越快,但同时抗干扰能力也越差,功耗也越高&am…

java入门学习

输入 数字输入(为什么类型的数字就是sc.next类型)float sumsc.nextFloat() int xsc.nextInt(); import java.util.Scanner;public class 相加问题 {public static void main(String[] args){Scanner scnew Scanner(System.in);int xsc.nextInt();int …

AMB300系列母线槽红外测温解决方案某锂电厂房项目案例分享

安科瑞 耿敏花 一、 行业背景 近年来,在国家政策引导与技术革新驱动的双重作用下,锂电产业保持快速增长态势,产业规模持续扩大,同时新能源产业工厂锂电池生产线对于电的依赖性很高,因而对供电设备的可靠性提出…

php+vue网上培训课程直播授课学习平台

运行环境:phpstudy/wamp/xammp等 开发语言:php 后端框架:Thinkphp5 前端框架:vue.js 服务器:apache 数据库:mysql 1、优智学在线授课平台主要是针对 疫情期间高校对在线教学直播的需求,为在校师生提供高质量…

TOGAF® 基本内容—架构开发方法—E阶段:机会和解决方案

本章描述识别有效交付的交付工具(项目、项目群或项目组合)的过程 在前面阶段确定的目标体系结构。 一、目标 E阶段的目标是: 根据差距分析和候选架构生成架构路线图的初始完整版本 阶段 B、C 和 D 的路线图组件确定是否需要增量方法&#xf…

WooCommerce电商开发:高性能订单存储HPOS性能基准测试

自去年以来,我们一直致力于构建和推出 HPOS(高性能订单存储)作为一项可选功能。这改变了我们在数据库中存储订单数据的方式,从自定义帖子类型 wp_post和wp_postmeta表到专门用于存储订单数据的自定义表。我们还发布了这些表的详细…