当前位置: 首页 > 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…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者&#xff0c;高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法&#xff0c;分为两大系列&#xff1a; 一、getElementBy... 系列 传统方法&#xff0c;直接通过 DOM 接口访问&#xff0c;返回动态集合&#xff08;元素变化会实时更新&#xff09;。…...

使用SSE解决获取状态不一致问题

使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件&#xff0c;这个上传文件是整体功能的一部分&#xff0c;文件在上传的过程中…...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中&#xff0c;featureAbility是旧版FA模型&#xff08;Feature Ability&#xff09;的用法&#xff0c;Stage模型已采用全新的应用架构&#xff0c;推荐使用组件化的上下文获取方式&#xff0c;而非依赖featureAbility。 FA大概是API7之…...

五、jmeter脚本参数化

目录 1、脚本参数化 1.1 用户定义的变量 1.1.1 添加及引用方式 1.1.2 测试得出用户定义变量的特点 1.2 用户参数 1.2.1 概念 1.2.2 位置不同效果不同 1.2.3、用户参数的勾选框 - 每次迭代更新一次 总结用户定义的变量、用户参数 1.3 csv数据文件参数化 1、脚本参数化 …...