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

【2023研电赛】全国技术竞赛一等奖:基于FPGA的超低时延激光多媒体终端

该作品参与极术社区组织的研电赛作品征集活动,欢迎同学们投稿,获取作品传播推广,并有丰富礼品哦~

基于FPGA的超低时延激光多媒体终端

在这里插入图片描述

参赛单位:华东师范大学
指导老师:刁盛锡
参赛队员:王泽宇 谢祖炜 秦子淇

作品简介

随着数字光处理技术(DLP)和液晶显示器技术(LCD)的不断发展,市场上能实现4K@60Hz超高清投影的投影机型号日渐增加,对投影仪器性能的要求也与日俱增,对投影延迟、投影亮度、投影色彩、系统可扩展性等方面提出了更高的要求。

在军用领域中,时间就是生命,美国空军的模拟器通用体系结构与标准(Simulator Common Architecture Requirements and Standards,SCARS)中规定战斗机模拟训练全任务仿真器(Full Mission Simulators, FMS)的模拟投影延时不得高于20ms;在商用领域中,时间就是金钱,金融期货与证券交易的深度行情信息最快每250ms刷新一次,对投影系统画面传输的时延要求高;在民用领域中,时间就是快乐,专业电子竞技显示仪器的视频传输时延需低于16ms。

针对军用、商用、民用三大领域对超低时延投影显示的需求,本团队完全独立自主地从硬件系统、逻辑算法以及软件代码三方面实现了基于FPGA的超低时延超高清激光多媒体终端,同时兼顾投影亮度、投影色彩和系统可扩展性。相比于市场上4K投影时延高达40ms到200ms的投影系统,本系统4K投影时延为15.8ms;能够支持的最高投影画面质量为4K@60Hz;投影画面亮度可达3500流明;画面对比度能够达到1000:1;系统支持USB3.0接口、千兆网口、万兆光口等高速接口以实现硬件扩展。

在这里插入图片描述

在这里插入图片描述

硬件设计

本系统的硬件设计有本团队成员使用Cadence系列软件进行EDA设计,包括原理图库设计、原理图设计、PCB封装库设计以及PCB设计。本作品的硬件系统原理图设计采用自顶向下的top design设计方法。最终完成了复杂的低延时激光多媒体终端硬件原理图设计,原理图共计58页,部分顶层设计如下图所示。
在这里插入图片描述

本作品的硬件平台为一块复杂的16层高密度激光多媒体显示终端系统板,用于实现超低时延激光投影,采用Xilinx Ultrascale+系列的XCZU7EV-FFVC1156E作为核心芯片,板上挂载了6片DDR4扩展存储资源,支持HDMI2.0与V-by-One两种视频输入接口,搭载一路数字微镜驱动接口以及一路DP1.2a视频输出接口;系统同时支持SATA大容量存储设备、USB3.0接口、MIPI D-PHY摄像头接口、千兆以太网、万兆以太网以及光学控制接口等丰富的外设资源。
在这里插入图片描述

在这里插入图片描述

低时延逻辑算法设计

分布式离散交织显示逻辑算法

显示信令控制模块是数字微镜驱动单元中的核心模块,而显示信令控制模块中最为核心的就是分布式离散交织显示算法,该算法的示意图如下图所示。该算法采用不同的LFSR随机种子优化投影显示策略,实现了视频数据更高效的显示,相较于传统的帧刷新方式,将带宽利用率提升了74.5%。
在这里插入图片描述

SARR逻辑算法

SARR(Self-Adjust-Rolling-Row)指自适应的滚动行缓存算法,该算法可极大降低了瞬时峰值数据带宽。相较于市面投影仪40~200ms量级的响应处理时延,本系统的4K投影响应延时仅为15.8ms,极大缓解了传统投影显示延时高,投影体验差的问题。基于SARR的低延时缓存策略贯穿在整个软件逻辑设计之中,并且着重在数字微镜驱动单元中的DDR4缓存单元体现,该算法的整体运行监控示意图如下图所示。
在这里插入图片描述

基于超低延时的设计需求,SARR分为了读写两个部分,写检测部分需要监控输入的视频数据流、数据预处理,颜色生成等模块的工作状态,检测写部分的整体输入速率;读检测部分需要基于写入的数据速率,控制显示信令控制的读取速度,监控DDR4存储模块的读写状态和DMD的数据吞吐速率,协调读部分的读取速率,确保读写指针维持偏差维持在4.167ms之内。并且,基于SARR可以使得软件处理部分同时兼容4K@60Hz、4K@50Hz、4K@30Hz、4K@25Hz等多种显示规格。
在这里插入图片描述

作品创新点

(1) 全方面自主设计的低时延激光显示多媒体平台系统
本作品中的硬件、逻辑以及软件均为本团队成员独立自主设计的低时延激光显示多媒体平台。该多媒体平台拥有丰富的外设资源,支持HDMI2.0与V-by-One视频输入,能够通过万兆光口与千兆网口实现板级互联实现硬件资源扩展,能够通过更换数字微镜子板以实现对不同型号数字微镜芯片的驱动,多媒体终端的可扩展性和兼容性强。

本作品使用三色激光光源实现投影,使用了基于三色激光光源的RGBYCW六色显示技术,相比较于传统DLP投影技术中使用高压汞灯投影以及单/双色激光配合色轮投影的技术而言,投影亮度更高,对比度更高,色彩饱和度更高,投影画面更加真实,对应用场合的要求更低。
(2) 独创的新型投影逻辑设计架构和分布式离散交织显示算法
本团队从MEMS底层构建驱动应用算法,通过SARR(Self-Adjust-Rolling-Row)技术,相较于市面投影仪40~200ms量级的响应处理时延,本系统的4K投影响应延时仅为15.8ms,解决了传统投影显示延时高,投影体验差的问题。
本团队在驱动算法层面,提出了一种通过分布式离散交织显示算法,采用不同的LFSR随机种子优化投影显示策略,实现了视频数据更高效的显示,极大降低了瞬时峰值数据带宽,将带宽利用率提升74.5%,抑制了伪轮廓噪声,提高了驱动算法的效果,配合多色投影组合策略,大幅提高了投影画面的灰度精度及亮度。

(3) 突破技术壁垒,推动技术创新
本作品仅使用一块FPGA就完成了对TI数字微镜芯片的驱动,相比较于TI传统的“专用驱动芯片+固件程序”驱动方案,灵活性更高,成本更低,在数字微镜驱动领域填补了我国的技术空白,对独立生产制造数字微镜器件具有指导意义。

本作品已申请4项发明专利,其中3项已通过授权。

  • 国家发明专利《一种基于FPGA的数字微镜芯片驱动方法》,专利号:202110659960.9,已授权;
  • 国家发明专利《一种针对数字微镜芯片的4K分辨率视频图像预处理方法》,专利号:202110617933.5,已授权;
  • 国家发明专利《一种基于振镜的数字微镜高分辨率视频图像投影方法》,专利号:202210737653.2,已授权;
  • 国家发明专利《一种基于数字微镜的 8K 超高清单色显示器》,申请号:2023104558872,已通过初步审查。

总结

总体而言,本团队自主设计了基于FPGA开发了超低延时激光多媒体终端系统,同步控制三色激光光源和制动器实现超低延时的超高清激光投影,可广泛应用于军用、商用、民用等领域,具有延时低、图像质量高、通用性强、应用扩展性高等优势。本作品仅使用一块FPGA就完成了对数字微镜驱动,相较于TI传统的“专用驱动芯片+固件程序”驱动方案,灵活性更高,成本更低,在数字微镜驱动领域填补了我国的技术空白,打破了TI的技术垄断,且不受其应用限制。在国产化大形势下,为各大投影厂商选择国产方案提供了可定制化的超低时延多媒体终端,应用前景良好。
在这里插入图片描述

该作品参与极术社区组织的研电赛作品征集活动,欢迎同学们投稿,获取作品传播推广,并有丰富礼品哦~

相关文章:

【2023研电赛】全国技术竞赛一等奖:基于FPGA的超低时延激光多媒体终端

该作品参与极术社区组织的研电赛作品征集活动,欢迎同学们投稿,获取作品传播推广,并有丰富礼品哦~ 基于FPGA的超低时延激光多媒体终端 参赛单位:华东师范大学 指导老师:刁盛锡 参赛队员:王泽宇 谢祖炜 秦子淇…...

Annoy vs Milvus:哪个向量数据库更适合您的AI应用?知其然知其所以然

1. Annoy vs Milvus简介 Annoy 和 Milvus 都是用于向量索引和相似度搜索的开源库,它们可以高效地处理大规模的向量数据。 Annoy(Approximate Nearest Neighbors Oh Yeah): Annoy 是一种近似最近邻搜索算法,它通过构…...

android 13.0 SystemUI导航栏添加虚拟按键功能(一)

1.概述 在13.0的系统产品开发中,在系统SystemUI的原生系统中默认只有三键导航,想添加其他虚拟按键就需要先在构建导航栏的相关布局中分析结构,然后添加相关的图标xml就可以了,然后添加对应的点击事件,就可以了,接下来先分析第一步关于导航栏的相关布局情况 然后实现功能 …...

内存管理-分页、虚拟地址、虚拟内容、页面置换算法

文章目录 一、5W2H角度分析内存管理What是内存管理Why需要内存管理Who使用内存管理Where内存管理应用When需要内存管理How内存管理工作How much内存管理的成本 二、分页什么是分页分页的原理分页的优缺点分页的应用 三、虚拟地址什么是虚拟地址虚拟地址的作用虚拟地址的转换虚拟…...

【C++入门】命名空间详解(从零开始,冲击蓝桥杯)

C入门 命名空间 南喵小鸡汤程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。一 . 命名空间的介绍二.命名空间的实际应用1.为什么要有命名空间我们在使用变量时,通常会为他定义一个名字,在…...

通过代码MyBatis-plus实现对表中createTime和updateTime进行自动更新

通过代码MyBatis-plus实现对表中createTime和updateTime进行自动更新 实现这样的效果可以在数据库中设置&#xff0c;但是我们一般建议在代码里实现&#xff0c; 但是总不能每次insert和update的时候都手写new当前时间 因此推荐使用mybatis-plus 1导入依赖 <dependency&g…...

HTML 实时显示本地电脑时间(精确到毫秒)

<!DOCTYPE html> <html> <head><title>实时显示本地电脑时间&#xff08;精确到毫秒&#xff09;</title> </head> <body><h1>本地电脑时间&#xff08;精确到毫秒&#xff09;&#xff1a;</h1><h1 id"clock&q…...

opencv跨平台arm交叉编译之ubuntu

目录 1. 安装交叉编译工具链2. 安装依赖3. 配置工具链3.1 新建build目录3.2 安装cmake-gui3.3 工具链配置界面进行配置3.3.1 终端输入以下命令3.3.2 点击Configure&#xff0c;弹出编译方式选择对话框&#xff1a;3.3.3 点击Next3.3.4 点击Finish3.3.5 点击Configure。3.3.6 Ge…...

Git命令全集

1、克隆代码 查看项目地址 git remote -v直接克隆 git clone url克隆指定分支 git clone -b 分支 git地址RPC failed错误:修改Git的传输字节限制 git config --global http.postBuffer 10485760002、查看分支 查看 git branch -a切换分支 git branch 分支名从指定分支…...

[BigData:Hadoop]:安装部署篇

文章目录 一&#xff1a;机器103设置密钥对免密登录二&#xff1a;机器102设置密钥对免密登录三&#xff1a;机器103安装Hadoop安装包3.1&#xff1a;wget拉取安装Hadoop包3.2&#xff1a;解压移到指定目录3.2.1&#xff1a;解压移动路径异常信息3.2.2&#xff1a;切换指定目录…...

ubuntu 上vscode使用cmake编译运行c++程序

参考&#xff1a;ubuntu 上vscode使用cmake编译运行c程序_vscode ubuntu运行c程序_SCH0的博客-CSDN博客 文章是对官方过程的翻译&#xff1a; Get started with CMake Tools on Linux...

Node.js 新特性 SEA/单文件可执行应用尝鲜

#1 关于 SEA 单文件可执行应用&#xff08;SEA&#xff0c;Singe Executable Applications&#xff09;&#xff0c;是 Node.js 新版本的特性&#xff0c;最初在 v19.7.0、v18.16.0 加入&#xff0c;并在 v20.x 得到扩展。而上个月发布的全家桶 Bun.js&#xff0c;就自带了 SEA…...

137.只出现一次的数字II

137. 只出现一次的数字 II - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来…...

k8s-15 strogeclass

官网&#xff1a; https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner StorageClass提供了一种描述存储类 (class)的方法&#xff0c;不同的cass可能会映射到不同的服务质量等级和备份策略或其他策略等 每个 StorageClass 都包含 provisioner、parameters 和…...

微信小程序开发实战:利用差异对比显示对象属性变化

前言 在小程序开发中&#xff0c;经常会遇到需要比较两个对象之间的差异并将这些差异可视化展示在界面上的情况。这一过程对于数据管理和用户反馈至关重要。本文将介绍一种实用的方法&#xff0c;可以帮助开发者高效地比较两个对象的属性差异&#xff0c;并将这些差异以直观的方…...

Redis的GEO结构

GEO就是Geolocation的简写形式&#xff0c;代表地理坐标。Redis在3.2版本中加入了对GEO的支持&#xff0c;允许存储地理坐标信息&#xff0c;帮助我们根据经纬度来检索数据。常见的命令有&#xff1a; GEOADD&#xff1a;添加一个地理空间信息&#xff0c;包含&#xff1a;经度…...

做UI设计师是否需要美术功底?

UI确实需要一定的手绘能力&#xff0c;但是跟画画是有很大不同的。 很多人问&#xff1a;学UI需不需要手绘能力。或者学UI需要什么绘画基础。 所以今天集体回答一下。 我们先来看一下跟绘画有关系的行业&#xff1a; 漫画&#xff1a; 主要的不是绘画能力&#xff0c;更重…...

python txt or 日志等超大文本文件读取

判断文件路径是否存在 要判断一个路径文件是否存在,可以使用Python的os.path模块中的exists()函数。下面是一个示例: import os# 要检查的文件路径 file_path = "path/to/file.txt"# 使用os.path.exists()函数判断文件是否存在 if os.path.exists(file_path):pri…...

Windows:Arduino IDE 开发环境配置【保姆级】

物联网开发学习笔记——目录索引 参考官网&#xff1a;Arduino - Home Arduino是一款简单易学且功能丰富的开源平台&#xff0c;包含硬件部分&#xff08;各种型号的Arduino开发板&#xff09;和软件部分&#xff08;Arduino IDE)以及广大爱好者和专业人员共同搭建和维护的互联…...

【LeetCode 算法专题突破】双指针(⭐)

文章目录 前言1. 移动零题目描述代码 2. 复写零题目描述代码 3. 快乐数题目描述代码 4. 盛最多水的容器题目描述代码 5. 有效三角形的个数题目描述代码 6. 三数之和题目描述代码 7. 四数之和题目描述代码 总结 前言 学算法入门必学的一个章节&#xff0c;双指针算法&#xff0…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析&#xff0c;分为​​已启动​​和​​未启动​​两种场景&#xff1a; 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​&#xff1a;当其他组件&#xff08;如Activity、Service&#xff09;通过ContentR…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者&#xff1a;来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布&#xff0c;Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明&#xff0c;Elastic 作为 …...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...