【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进行自动更新 实现这样的效果可以在数据库中设置,但是我们一般建议在代码里实现, 但是总不能每次insert和update的时候都手写new当前时间 因此推荐使用mybatis-plus 1导入依赖 <dependency&g…...
HTML 实时显示本地电脑时间(精确到毫秒)
<!DOCTYPE html> <html> <head><title>实时显示本地电脑时间(精确到毫秒)</title> </head> <body><h1>本地电脑时间(精确到毫秒):</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,弹出编译方式选择对话框: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]:安装部署篇
文章目录 一:机器103设置密钥对免密登录二:机器102设置密钥对免密登录三:机器103安装Hadoop安装包3.1:wget拉取安装Hadoop包3.2:解压移到指定目录3.2.1:解压移动路径异常信息3.2.2:切换指定目录…...
ubuntu 上vscode使用cmake编译运行c++程序
参考:ubuntu 上vscode使用cmake编译运行c程序_vscode ubuntu运行c程序_SCH0的博客-CSDN博客 文章是对官方过程的翻译: Get started with CMake Tools on Linux...
Node.js 新特性 SEA/单文件可执行应用尝鲜
#1 关于 SEA 单文件可执行应用(SEA,Singe Executable Applications),是 Node.js 新版本的特性,最初在 v19.7.0、v18.16.0 加入,并在 v20.x 得到扩展。而上个月发布的全家桶 Bun.js,就自带了 SEA…...
137.只出现一次的数字II
137. 只出现一次的数字 II - 力扣(LeetCode) 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来…...
k8s-15 strogeclass
官网: https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner StorageClass提供了一种描述存储类 (class)的方法,不同的cass可能会映射到不同的服务质量等级和备份策略或其他策略等 每个 StorageClass 都包含 provisioner、parameters 和…...
微信小程序开发实战:利用差异对比显示对象属性变化
前言 在小程序开发中,经常会遇到需要比较两个对象之间的差异并将这些差异可视化展示在界面上的情况。这一过程对于数据管理和用户反馈至关重要。本文将介绍一种实用的方法,可以帮助开发者高效地比较两个对象的属性差异,并将这些差异以直观的方…...
Redis的GEO结构
GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有: GEOADD:添加一个地理空间信息,包含:经度…...
做UI设计师是否需要美术功底?
UI确实需要一定的手绘能力,但是跟画画是有很大不同的。 很多人问:学UI需不需要手绘能力。或者学UI需要什么绘画基础。 所以今天集体回答一下。 我们先来看一下跟绘画有关系的行业: 漫画: 主要的不是绘画能力,更重…...
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 开发环境配置【保姆级】
物联网开发学习笔记——目录索引 参考官网:Arduino - Home Arduino是一款简单易学且功能丰富的开源平台,包含硬件部分(各种型号的Arduino开发板)和软件部分(Arduino IDE)以及广大爱好者和专业人员共同搭建和维护的互联…...
【LeetCode 算法专题突破】双指针(⭐)
文章目录 前言1. 移动零题目描述代码 2. 复写零题目描述代码 3. 快乐数题目描述代码 4. 盛最多水的容器题目描述代码 5. 有效三角形的个数题目描述代码 6. 三数之和题目描述代码 7. 四数之和题目描述代码 总结 前言 学算法入门必学的一个章节,双指针算法࿰…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...
