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

[FPGA Video IP] VDMA

Xilinx AXI Video Direct Memory Access IP (PG020) 详细介绍

概述

Xilinx AXI Video Direct Memory Access (AXI VDMA) LogiCORE™ IP 核(PG020)是一个软核 IP,专为视频应用设计,提供在内存与 AXI4-Stream 视频外设之间的高带宽直接内存访问(DMA)。该 IP 核支持高效的二维 DMA 操作,具备独立的异步读写通道,能够处理视频帧缓冲和实时视频流传输。它通过 AXI4-Lite 从接口访问初始化、状态和中断管理寄存器,广泛应用于视频处理系统。AXI VDMA 支持多种 AMD FPGA 系列,适用于嵌入式视频系统、显示接口和专业视频设备。

主要特性

  • 接口
    • 输入/输出:支持 AXI4-Stream 视频协议(符合 Vivado AXI Reference Guide UG1037),用于视频数据传输。
    • 控制:AXI4-Lite 从接口,用于配置和状态监控。
    • 内存:AXI4 主接口,连接到外部内存(如 DDR3/4)。
  • 通道
    • MM2S(Memory-Mapped to Stream):从内存读取视频数据,输出到 AXI4-Stream。
    • S2MM(Stream to Memory-Mapped):从 AXI4-Stream 接收视频数据,写入内存。
    • 读写通道独立异步操作,支持不同时钟域。
  • 数据宽度
    • 可配置数据宽度(8/16/24/32/64/128/256/512/1024 位)。
    • 支持多种视频格式(如 RGB、YUV 4:4:4、YUV 4:2:2)。
  • 帧缓冲
    • 支持多达 32 个帧缓冲区,适合视频帧存储和同步。
    • 支持动态帧大小和分辨率调整。
  • 同步机制
    • Genlock 同步:支持主从同步,确保多通道或多设备视频流对齐。
    • 帧同步:支持外部帧同步信号或内部时钟同步。
  • 中断支持
    • 提供 MM2S 和 S2MM 通道的中断信号,支持帧完成、错误等事件。
  • 可选功能
    • 分散/聚集(Scatter/Gather):通过描述符链表管理非连续内存传输。
    • 动态分辨率支持:允许运行时更改视频分辨率。
    • 数据重排引擎(DRE):支持非对齐内存访问。
  • 设备支持
    • 兼容 Artix-7、Kintex-7、Virtex-7、Zynq-7000、UltraScale、UltraScale+ 等。
  • 设计工具
    • 支持 Vivado Design Suite 和 ISE Design Suite。
  • 性能
    • 支持高带宽视频(如 1080p60、4K@30Hz)。
    • 低延迟设计,适合实时视频处理。

应用场景

  1. 视频处理流水线

    • 在视频采集、处理和显示系统中,将视频数据从内存传输到视频处理模块(如缩放器、颜色转换器),或将处理后的视频数据写入内存。
    • 常用于视频监控、医疗影像处理、工业视觉系统。
  2. 嵌入式视频系统

    • 在 Zynq-7000 或 Zynq UltraScale+ MPSoC 平台上,管理视频数据流,支持 HDMI、DisplayPort 或 SDI 输出。
    • 适用于数字标牌、机顶盒、嵌入式多媒体设备。
  3. 实时视频传输

    • 在低延迟场景(如无人机视频传输、汽车辅助驾驶系统)中,传输实时视频流到内存或显示设备。
    • 支持动态分辨率调整,适应不同视频源。
  4. 广播和专业视频设备

    • 用于视频切换器、广播编码器或专业视听系统,支持高分辨率视频(如 4K)帧缓冲和同步。
    • 通过 Genlock 同步支持多通道视频流对齐。
  5. 硬件验证与测试

    • 在视频系统开发中,结合测试图案生成器(TPG)和视频时序控制器(VTC),验证视频处理模块的性能和兼容性。
    • 适用于 FPGA 原型设计和硬件在环(HIL)测试。
  6. 多视频流处理

    • 在多路视频处理系统中(如视频墙、监控中心),管理多个视频流的内存访问和帧缓冲。
    • 支持多端口内存控制器(MPMC)与 AXI Interconnect 结合。

使用指南

设计流程

  1. IP 配置

    • 在 Vivado IP Integrator 中添加 AXI VDMA IP 核。
    • 配置通道(MM2S、S2MM 或两者)、数据宽度(根据视频格式,如 RGB 24 位)、帧缓冲区数量(1-32)。
    • 启用可选功能(如分散/聚集、Genlock 同步、DRE)。
    • 设置 AXI4-Lite 地址范围和中断支持。
    • 配置帧大小和行跨距(Stride),以匹配视频分辨率。
  2. 视频流水线集成

    • MM2S 通道:连接到 AXI4-Stream 视频外设(如 AXI4-Stream to Video Out、颜色转换器)。
    • S2MM 通道:连接到视频输入模块(如 Video In to AXI4-Stream)。
    • 内存接口:通过 AXI4 主接口连接到内存控制器(如 MIG DDR3/4)。
    • 搭配 VTC IP 提供时序信号(如 Vsync、Hsync)。
  3. 时钟管理

    • 使用时钟向导(Clocking Wizard)生成像素时钟、AXI4-Lite 时钟和 AXI4 主接口时钟。
    • 确保 MM2S 和 S2MM 通道的时钟频率支持目标视频带宽(如 1080p60 需要约 150 MHz)。
    • 注意时钟域隔离,MM2S 和 S2MM 可使用不同时钟。
  4. 控制与软件开发

    • 通过 AXI4-Lite 接口使用处理器(如 Zynq PS 或 MicroBlaze)配置 VDMA(帧地址、分辨率、同步模式)。
    • 使用 Xilinx 提供的 VDMA 驱动程序(位于 Vitis 嵌入式软件库)简化开发。
    • 参考驱动示例(如 xaxidma_example_sg_poll.c)实现 DMA 传输控制。
  5. 验证与调试

    • 使用 Vivado 仿真工具验证 AXI4-Stream 和 AXI4 主接口信号(TValid、TReady、ARADDR 等)。
    • 检查状态寄存器(如帧完成、错误状态)以诊断问题。
    • 使用 Vivado ILA 监控硬件中的 DMA 传输和中断信号。

示例设计

以下是一个典型的视频处理设计:

  • 模块
    • TPG IP 生成 AXI4-Stream 视频流(1080p60,RGB)。
    • AXI VDMA(S2MM)将 TPG 输出写入 DDR3 内存。
    • AXI VDMA(MM2S)从 DDR3 读取视频数据,输出到 AXI4-Stream to Video Out。
    • VTC IP 提供时序信号,HDMI TX 输出到显示器。
  • 控制
    • Zynq PS 通过 AXI4-Lite 配置 VDMA(帧地址、分辨率)和 TPG(图案类型)。
    • 启用中断以监控帧传输完成。
  • 时钟
    • 时钟向导生成 148.5 MHz 像素时钟、100 MHz AXI4-Lite 时钟和 200 MHz AXI4 主接口时钟。
  • 参考:XAPP1218 提供了基于 Kintex-7 KC705 的 AXI VDMA 参考设计。

使用注意事项

  1. 带宽与时钟配置

    • 确保 AXI4 主接口和内存控制器的带宽支持目标视频分辨率和帧率。例如,4K@30Hz 需要高带宽 DDR 内存。
    • 配置足够的时钟频率(如 200 MHz 用于 AXI4 主接口)以避免瓶颈。
  2. 帧缓冲区管理

    • 配置足够的帧缓冲区(建议 3-32 个)以支持平滑的视频流传输,避免帧丢失。
    • 确保帧地址连续或使用分散/聚集模式处理非连续内存。
  3. 同步机制

    • 使用 Genlock 同步(主模式或从模式)确保 MM2S 和 S2MM 通道的帧对齐,特别是在多通道设计中。
    • 验证外部帧同步信号(若使用)的稳定性和时序。
  4. AXI4-Stream 协议合规性

    • 确保 AXI4-Stream 输入/输出信号(TValid、TReady、TData、TUser、TLast)符合协议要求。
    • 若下游模块不支持 TUser 信号,使用 AXI4-Stream Subset Converter IP 进行转换。
  5. 中断与错误处理

    • 启用中断以监控帧完成、DMA 错误或同步失败。
    • 检查状态寄存器(如错误代码)以诊断传输问题。
  6. 分散/聚集模式

    • 若启用分散/聚集,确保描述符链表正确配置,避免地址错误。
    • 注意驱动程序在无 DRE 时对非对齐缓冲区地址的限制。
  7. 资源与性能优化

    • AXI VDMA 资源占用随数据宽度和帧缓冲区数量增加。参考 PG020 的资源利用率数据选择合适的 FPGA 设备。
    • 对于高分辨率视频(如 4K),选择高性能设备(如 UltraScale+)。
  8. 仿真与验证

    • 在设计初期进行充分仿真,验证 AXI4-Stream 和 AXI4 主接口的信号时序。
    • 使用 Vivado ILA 或外部逻辑分析仪监控硬件中的 DMA 传输。
  9. 与内存控制器兼容性

    • 确保 AXI VDMA 的 AXI4 主接口与内存控制器(如 MIG DDR3/4)的地址范围和突发长度兼容。
    • 优化 AXI Interconnect 参数以提高内存访问效率。

常见问题与解决方法

  1. 问题:DMA 传输未启动(TValid 信号低)。

    • 原因:帧地址未正确配置,或 TReady 信号未置位。
    • 解决:检查 AXI4-Lite 寄存器配置,确保下游模块正确处理 TReady。
  2. 问题:视频流中断或帧丢失。

    • 原因:内存带宽不足或帧缓冲区溢出。
    • 解决:增加帧缓冲区数量,优化内存控制器带宽,或降低帧率。
  3. 问题:Genlock 同步失败。

    • 原因:主从模式配置错误,或外部同步信号不稳定。
    • 解决:验证 Genlock 配置,检查外部信号的时序和稳定性。
  4. 问题:高分辨率视频性能不足。

    • 原因:FPGA 设备性能限制或时钟频率不足。
    • 解决:选择高性能设备,优化时钟频率和 AXI Interconnect 设置。

结论

Xilinx AXI Video Direct Memory Access IP (PG020) 是一个高效的视频 DMA 模块,支持在内存与 AXI4-Stream 视频外设之间的高带宽数据传输。其支持多帧缓冲、Genlock 同步和动态分辨率调整,适用于视频处理流水线、嵌入式系统和专业视频设备。使用时需特别注意带宽配置、帧缓冲管理、同步机制和 AXI4-Stream 协议合规性,以确保系统性能和稳定性。结合 Xilinx 提供的驱动程序和参考设计(如 XAPP1218),可加速视频系统开发。

设计工具推荐

  • SZ901
    SZ901 是一款基于XVC协议的FPGA网络下载器。
    • 最高支持53M
    • 支持4路JTAG独立使用
    • 支持端口合并
    • 支持国产FLASH烧写
    • 下载器无限扩展
    • 配备专属程序固化软件,一键烧写,能大大减小程序固化时间!

相关文章:

[FPGA Video IP] VDMA

Xilinx AXI Video Direct Memory Access IP (PG020) 详细介绍 概述 Xilinx AXI Video Direct Memory Access (AXI VDMA) LogiCORE™ IP 核(PG020)是一个软核 IP,专为视频应用设计,提供在内存与 AXI4-Stream 视频外设之间的高带宽…...

Ubuntu如何查看硬盘的使用情况,以及挂载情况。

在Ubuntu中查看硬盘使用情况及挂载情况,可通过以下命令实现: 一、查看硬盘使用情况 df -h 显示所有挂载文件系统的磁盘空间使用情况(含总容量、已用空间、可用空间等),输出结果以易读格式(如GB、MB&#x…...

第十六届蓝桥杯 2025 C/C++组 脉冲强度之和

目录 题目: 题目描述: 题目链接: 思路: 思路详解: 代码: 代码详解: 题目: 题目描述: 题目链接: P12338 [蓝桥杯 2025 省 B/Python B 第二场] 脉冲强度…...

23种设计模式-行为型模式之中介者模式(Java版本)

Java 中介者模式(Mediator Pattern)详解 🧠 什么是中介者模式? 中介者模式是一种行为型设计模式,它通过定义一个中介者对象来封装一组对象之间的交互。中介者使得各个对象不需要显式地知道彼此之间的关系&#xff0c…...

集群与存储-lvs-nat实验

一、实验目的 1、熟练掌握ipvsadm 指令的使用 2、理解lvs 负载均衡的原理 3. 熟练掌握lvs-netnfs的配置 二、实验内容 1.拓扑图 2.实验步骤 #在节点服务器中添加网卡,选择仅主机模式 #查看网卡 #启用网卡 nmcli device up ens224 ip a #修改虚拟地址的网关 #…...

Android——Serializable和Parcelable

在Android中传递对象的方式 在 Android 开发中,Parcelable 和 Serializable 是两种用于对象序列化的接口 Serializable public class Student implements Serializable {public int id;public String name;public int age;public Student(int id, String name, i…...

python:sklearn 决策树(Decision Tree)

5. 决策树(Decision Tree) - 第5章 算法思想:基于信息增益(ID3)或基尼不纯度(CART)递归划分特征。 编写 test_dtree_1.py 如下 # -*- coding: utf-8 -*- """ 5. 决策树&…...

0-1背包难题哪家强:回溯法 VS 动态规划 VS 贪心算法

回溯法、动态规划和贪心算法是三种常见的算法设计思想,他们都可以用来解决0-1背包问题,但它们在解决问题的思路、适用条件和效率上存在显著差异。以下从多个维度进行对比分析: 相关系列文章链接: 《贪心算法 vs 动态规划:“急性子…...

JavaSE第12篇:接口interface

一、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings(ignore) import ssl ssl._create_default_https_con…...

一文掌握 npm 基础与常用指令

初学前端?npm 常用指令不熟?想了解 pnpm、yarn、cnpm 有什么不同? 这篇文章将带你从入门到精通,全面掌握 npm 的使用方法,以及选择适合自己项目的包管理工具! 文章目录 一、什么是 npm?二、npm …...

OpenObserve API Usage Guide for Log Management

OpenObserve API Usage Guide for Audit Log Management 1. 概述 1.1 目标 本文档旨在详细介绍 OpenObserve 的 API 使用方法,帮助用户通过 API 实现日志管理功能,包括日志摄入、查询、模糊匹配(类似 SQL 的 LIKE)、stream 管理…...

机器学习实操 第一部分 机器学习基础 第5章 支持向量机(SVM)

机器学习实操 第一部分 机器学习基础 第5章 支持向量机(SVM) 内容概要 第5章深入介绍了支持向量机(SVM),这是一种功能强大且应用广泛的机器学习模型。SVM适用于线性或非线性分类、回归以及 novelty detection。本章详…...

CSRF(cross-site request forgery)跨域请求访问

CSRF 当我们在成功登录一个网站后,会将后端返回的cookie数据进行存放,每一次访问该域名都会将cookie存放在请求头,也就相当于用户登录凭证, 但这种同域自动携带cookie存在一种问题 那就是当恶意网站也进去请求时,同样…...

Kafka的Rebalance机制可能引发什么问题?如何优化?怎么减少不必要的Rebalance

Rebalance机制的核心目的是确保每个消费者都能处理适当数量的分区,以实现负载均衡和高可用性。 一般是消费者组发生变化的时候,比如订阅主题,消费者数量等等发生变化,可能会导致rebalance,rebalance会导致消费者组短时…...

【和春笋一起学C++】函数——C++的编程模块

目录 1. 原型句法 2. 函数分类 3. 函数参数之按值传递 4. 数组作为函数参数 在C中,要使用函数,必须要有这三个方面: 函数原型,函数原型描述了函数到编译器的接口,函数原型一般放在include文件中。函数原型告诉编译…...

Java高频面试之并发编程-11

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶 面试官:父子线程如何共享数据? 在Java中,父子线程共享数据可以通过以下几种方式实现,具体…...

LangChain入门(四) 部署应用程序

1、使用LangServe部署应用程序 安装langserve pip install langserve[all] 代码示例 from fastapi import FastAPI from langchain.chat_models import init_chat_model from langchain_core.messages import SystemMessage, HumanMessage from langchain_core.output_parser…...

精益数据分析(31/126):电商关键指标深度解析与实战策略

精益数据分析(31/126):电商关键指标深度解析与实战策略 在创业和数据分析的探索之路上,每一次深入学习都像是解锁了新的技能,让我们离成功更近一步。今天,我依旧带着和大家共同进步的想法,深入…...

【MongoDB篇】MongoDB的集合操作!

目录 引言第一节:集合的“诞生”——自动出现还是手动打造?🤔第二节:集合的“查阅”——看看这个数据库里有哪些柜子?📂👀第三节:集合的“重命名”——给文件柜换个名字!…...

antd中的表格穿梭框(Transfer)如何使用

穿梭框是什么?怎么使用? 需求如下: 有一组端口需要分配给具体接口 功能要求: 1. 需要展示当前端口名称及其所属的接口 2. 需支持搜索功能可对端口名或接口名进行筛选便于分配 3. 分配端口时,需检测当前接口内的端口是否满足此接口最低要求 4. 提供Select下拉框,可供查…...

联邦学习与安全多方计算的结合是隐私保护机器学习领域

联邦学习(Federated Learning, FL)与安全多方计算(Secure Multi-Party Computation, MPC)的结合是隐私保护机器学习领域的前沿方向,其框架设计需兼顾计算效率、安全性和可扩展性。以下是结合两者的框架设计与实现流程的详细解析: 一、框架设计核心目标 隐私保护:确保多…...

mongoose的介绍,连接数据库

Mongoose 是一个基于 Node.js 的 MongoDB ODM(Object Data Modeling)库,用于在 MongoDB 和 Node.js 应用之间提供结构化的模型层,帮助你更优雅、安全地操作数据库。 🧾 一、Mongoose 简介 📦 功能&#xff…...

Pytest中的fixture装饰器详解

pytest是Python生态中最流行的自动化测试框架,它通过简洁的语法、强大的功能(如fixture、参数化、插件扩展等)和丰富的插件生态,帮助开发者高效完成单元测试、集成测试和端到端测试。fixture是pytest框架中最核心、最强大的功能之一,它提供了…...

Linux系统配置JDK

目录 一、xftp传输JDK包 1、新建xftp会话并连接到我们的服务器 2、上传jdk包 二、配置环境变量 为了方便javaweb项目的建立,我们需要在搭建好的linux环境下配置安装JDK环境 一、xftp传输JDK包 因为jdk包文件比较大了,这时候不能使用简单的linux上传…...

通义千问最新一代大语言模型Qwen3发布了

通义千问Qwen3全面解析:最强开源大模型Ollama本地运行实战 🔥 最新重大好消息! 经过漫长的等待,今天凌晨阿里云正式发布了Qwen3大语言模型!本次更新带来了0.6b 1.7b 4b 8b 14b 30b 32b 235b超大参数模型,更…...

想做博闻强记的自己

2025年4月29日,13~25℃,还好 待办: 冶金《物理》期末测试 阅卷(冶金《物理》期末测试试卷) 重修《物理》《物理2》电子材料归档 规则变更,《高等数学2》期末试卷推倒重来 遇见:直播画面。 感受…...

爱普生SG2520HHN晶振数据中心服务器的理想解决方案

在当今数字化时代,数据中心作为海量数据存储、处理与传输的核心枢纽,其服务器的高效稳定运行至关重要。服务器作为其核心设备,对时钟信号的精度和稳定性提出了严苛要求——微小的时序误差可能导致数据传输失败或系统宕机。爱普生 SG2520HHN 差…...

【Prometheus-MySQL Exporter安装配置指南,开机自启】

目录 1. 创建 MySQL 监控用户2. 配置 MySQL 认证文件3. 安装 mysqld_exporter4. 配置 Systemd 服务5. 启动并验证服务6. 修改Prometheus配置常见错误排查错误现象排查步骤 6. 验证监控数据关键注意事项 1. 创建 MySQL 监控用户 mysql -uroot -p123456 # 登录MySQL-- 1. 创建监…...

Linux 服务管理两种方式service和systemctl

Linux 服务管理两种方式service和systemctl 确定当前系统使用的哪种命令用来启动服务 SysV init 或者 systemd 使用下面的命令: ps -p 1例如,输出: PID TTY TIME CMD1 ? 00:00:02 systemdSysV init service命令用于对系统…...

P1494 [国家集训队] 小 Z 的袜子 Solution

Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1​,a2​,⋯,an​)&#xff0c;有 q q q 次查询&#xff0c;每次查询给定 ( l , r ) (l,r) (l,r). 你需要求出 2 ∑ i ≤ i < j ≤ r [ a i a j ] ( r − l ) ( r − l 1 ) \dfrac{2\sum…...

(开源)视频画面增强模型:Ev-DeblurVSR (可以解决视频画面不清晰的问题)

在计算机视觉领域&#xff0c;模糊视频超分辨率&#xff08;BVSR&#xff09;是一个复杂且具有挑战性的任务&#xff0c;目标是从低分辨率&#xff08;LR&#xff09;和模糊的输入生成高分辨率&#xff08;HR&#xff09;视频。传统方法常常因缺乏足够运动信息和高频细节而表现…...

探索豆包WEB/PC超能创意1.0:创意新利器的全面解析

在当今数字化创意蓬勃发展的时代&#xff0c;新工具不断涌现&#xff0c;为创作者们带来了更多的可能性。豆包WEB/PC超能创意1.0便是其中一款备受瞩目的产品&#xff0c;它的出现为创意工作者和爱好者们打开了一扇充满无限可能的大门。 一、体验信息&#xff1a;探索创意新领域…...

五、UI自动化测试05--PyTest框架

目录 一、PyTest 框架2. 特点2. 安装步骤3. 基本使⽤3.1 测试函数形式3.2 执⾏⽅式3.3 测试类形式3.4 执⾏⽅式3.5 另⼀种执⾏⽅式: 主函数执⾏3.6 特殊⽅法: 函数级别3.7 特殊⽅法: 类级别3.8 特殊⽅法: 函数级别和类级别同时使⽤ 4. pytest 配置⽂件4.1 选项字段获取4.2 编写…...

51LA使用方法与悟空统计,网站数据分析的双重选择

在网站运营与数据分析领域&#xff0c;51LA作为国内较早的流量统计工具&#xff0c;曾为许多用户提供基础的访问数据监测服务。然而&#xff0c;随着技术的发展和用户需求的升级&#xff0c;越来越多的企业开始寻求功能更全面、体验更优的统计工具。小编今天将给大家介绍一款更…...

MongoDB的下载安装与启动

MongoDB的下载安装与启动&#xff0c; 一、MongoDB下载安装 1. 官网下载 打开官网&#xff1a;https://www.mongodb.com/try/download/community选择&#xff1a; 版本&#xff08;Version&#xff09;&#xff1a;选最新版或者根据需要选旧版。平台&#xff08;OS&#xff0…...

解决ktransformers v0.3 docker镜像中 operator torchvision::nms does not exist 问题

问题背景 更新ktransformers docker镜像到v0.3版本后&#xff08;之前为v0.2.4post1&#xff09;&#xff0c;使用更新前启动命令无法正确启动服务&#xff0c;提示以下错误&#xff1a; Traceback (most recent call last):File "/workspace/ktransformers/ktransforme…...

MySQL事务隔离级别的实现原理MVCC

一、什么是MVCC? MVCC(Multi-Version Concurrency Control)&#xff0c;即多版本并发控制&#xff0c;是并发读写场景下&#xff0c;数据库层面提供的一种解决方案。 数据库的并发场景有以下三种&#xff1a; 读读 当多个事务同时进行读取操作时&#xff0c;它们之间不存在…...

EtherCAT 分布式时钟(DC)补偿技术解析

一、技术定义 EtherCAT 分布式时钟(Distributed Clock, DC)是一种基于硬件的高精度同步机制,旨在解决工业自动化系统中多设备协同控制的时间同步问题。其核心功能包括: 初始偏移补偿:消除从站本地时钟与主站系统时间的初始偏差,确保所有设备在启动阶段的时间基准一致。…...

7.进程概念(三)

一、进程优先级 是什么&#xff1f; 进程得到CPU资源的先后顺序。 为什么要有进程优先级&#xff1f; 目标资源稀缺&#xff0c;导致要通过优先级确定谁先谁后。 如何比较和分配&#xff1f; 进程优先级也是一种数字&#xff0c;int&#xff0c;task_struct 值越低&#xff0c;…...

MATLAB小试牛刀系列(2)

问题描述 捷运公司在下一年度 1 - 4 月的 4 个月内拟租用仓库堆放物资。已知各月所需仓库面积列于表 1.1。仓库租借费用随合同期而定&#xff0c;期限越长&#xff0c;折扣越大&#xff0c;具体数字见表 1.1。租借合同每月初都可办理&#xff0c;每份合同具体规定租用面积和期…...

一个SciPy图像处理案例的全过程

本文利用SciPy进行图像处理&#xff0c;并记录图像处理的全过程&#xff0c;处理过程包含高斯模糊、腐蚀等操作。 代码 import matplotlib.pyplot as plt import numpy as np from scipy import ndimage# 设置图像的大小为 128x128&#xff0c;即 128x128 的逻辑像素 l 128 …...

修改输入框选择框颜色

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 有时候需要改写element原来输入框/选择框的颜色 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 输入框的话需要hover时边框颜色修改&#xff0c;选择值的时候边框颜色修改以及选…...

rust 全栈应用框架dioxus

逛github时发现了一个号称全栈应用框架dioxus,适用于web / desktop / mobile。零配置、集成了热启动和基于信号的状态管理。是由rust编写的&#xff0c;所以也就不受平台限制。 既然说的这么好&#xff0c;那就来试试构建一下三种平台的应用&#xff0c;构建的应用编译成web 、…...

电子电器框架 --- 数据连接性和云集成在增强电气/电子架构方面的作用

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...

Nvidia 可能会发布具有增强内存配置的 RTX 5080 和 5070 Super

距离英伟达正式发布RTX 50系列显卡仅过去数月&#xff0c;有关"Super"系列升级版显卡的传闻已甚嚣尘上。据硬件爆料平台Chiphell论坛&#xff08;该消息源可靠性参差不齐&#xff09;用户透露&#xff0c;英伟达可能正在研发配备24GB显存的RTX 5080 Super和16GB显存的…...

预留库存的实现

1. 实体类 import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data;import java.sql.Timestamp;Data TableName("products") public class Product {private Long id;private String name;private int stock; }Data TableName("shopping_c…...

[逆向工程]如何理解小端序?逆向工程中的字节序陷阱与实战解析

[逆向工程]如何理解小端序&#xff1f;逆向工程中的字节序陷阱与实战解析 关键词&#xff1a;逆向工程、小端序、字节序、二进制分析、数据解析 引言&#xff1a;为什么字节序是逆向工程师的必修课&#xff1f; 在逆向工程中&#xff0c;分析二进制数据是最基础的任务之一。…...

【Python笔记 05】 if判断、比较运算符与逻辑运算符

一、if判断 1、基本格式 if 要判断的条件&#xff1a; #条件成立为true条件成立的时候要做的事情注&#xff1a;注意判断条件后面的冒号&#xff0c;以及条件成立要做的事情此行代码的缩进&#xff0c;最好是软件自动缩进。 2、练习题 用户在控制台输入成绩&#xff0c;…...

AI应用实战:Excel表的操作工具

有个小需求是这样的&#xff0c;需要在一份数据表里&#xff0c;将1000多个客户的月报数据分别单独截图存档&#xff0c;有客户需要的时候就要发给客户&#xff0c;截图下来的也是以客户为命名&#xff0c;这样查找时也比较容易匹配上。 在没有写工具之前&#xff0c;以往财务…...

P1903 [国家集训队] 数颜色 / 维护队列 Solution

Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1​,a2​,⋯,an​)&#xff0c;有 m m m 个操作分两种&#xff1a; modify ⁡ ( i , x ) \operatorname{modify}(i,x) modify(i,x)&#xff1a;执行 a i ← x a_i\gets x ai​←x. query ⁡ ( …...