Zynq学习笔记--数字视频帧以及同步信号

news2025/1/18 9:11:37

目录

1. 介绍

2. 重要概念

3. 仿真测试

4. 总结


1. 介绍

Zynq芯片,作为一款集成了高性能FPGA和ARM处理器的系统级芯片(SoC),为视频处理提供了强大的硬件支持。该芯片内置的丰富视频方面的IP模块,使得从事视频处理项目的开发者能够高效、灵活地实现各种视频处理算法,加速产品的开发和创新。

对于初涉视频处理领域的同学来说,理解Zynq芯片提供的视频处理能力,首先需要掌握一些基础的数字视频知识。这些基础知识不仅有助于理解视频处理的工作机制,而且是使用Zynq芯片进行视频处理项目开发的前提。

文章记录本人入门Zynq芯片在视频处理方面的应用世界,希望通过对数字视频基础知识的掌握,使读者能够更好地利用Zynq芯片进行视频处理项目的开发。

2. 重要概念

视频传输,一次发送一张图像。每个图像从顶行开始逐行发送,每行从左侧像素开始逐像素发送。

定时信息(由定时信号携带)与像素值一起被发送以描述视频帧定时。视频帧(视频的一个图像)包括活动视频和消隐期。
 

消隐期,是需要掌握的一个关键性概念。

在早期模拟视频技术中,为了使电子束从一行的末尾回到下一行的开始,或者从一个画面的末尾跳转到下一个画面开始位置时,电子束被暂时关闭的时间段。在这段时间内,屏幕上不会显示任何图像信息,因此被称为“消隐”期。

消隐期主要包括两种类型:行消隐和场(帧)消隐。

行消隐:在CRT(阴极射线管)显示器或电视中,每绘制完一行图像后,电子束需要从该行末尾移动回下一行的起始位置。在这个移动过程中,为了避免在屏幕上产生不必要的扫描线,电子束会被暂时关闭,这段时间就是行消隐期。

场(帧)消隐:在完成一个画面(场或帧)的绘制后,电子束需要从屏幕的底部移动回顶部开始绘制下一个画面。同样,为了避免产生不希望的扫描轨迹,电子束在移动过程中会被关闭,这段时间称为场消隐期或帧消隐期。

在数字视频技术中,尽管不再需要物理移动电子束,但消隐期的概念依然存在。消隐期通常用于同步信号,确保视频数据的正确解析和显示。

行消隐时序图:

行消隐
行消隐

 可以观察到,行消隐期间,无数据传输,而其余时间,均有视频有效数据传输。

场(帧)消隐时序图:

对于数字视频信号而言,消隐信号的必要性不如模拟视频信号那么显著,一些新型的视频接口通常不需要消隐信号,因为这些接口传输的是压缩后的数字数据包。

Native video VS AXI4-Stream

在视频处理和传输的领域中,Native video接口和AXI4-Stream接口代表了两种不同的设计理念和应用场景。

Native video接口,特别是在模拟视频信号传输中,典型地包含了消隐信号,这种设计深受传统电视和监视器等模拟视频设备的影响,其中物理电子束的移动是图像显示过程的一部分。

AXI4-Stream接口则是一种基于高性能FPGA和SoC设计的数字视频传输协议。它专为高吞吐量和低延迟的数据传输而设计,不包含传统的消隐信号。在AXI4-Stream协议中,视频数据以流的形式传输,每个数据包都紧跟着同步信号,如行同步和帧同步信号,这些同步信号指示了视频帧的开始和结束。

3. 仿真测试

仅仅通过文字干巴巴地讲述技术概念,太枯燥乏味,尤其是对于复杂的视频处理技术来说,看着这些概念容易昏昏欲睡。

亲自动手进行测量或者仿真测试,往往能够更加深刻地理解这些概念,激发学习的兴趣,让理论知识变得生动有趣。

利用Xilinx的Vivado设计套件搭建一个工程,通过实际的设计和仿真,来测试视频处理中的关键信号,如同步信号和消隐信号等。

工程Block Design:

TestBench文件如下:

`timescale 1ns / 1ps

module tb_VTC();

bit clk_25_175MHz = 0;

bit active_video_out, hsync_out,vsync_out, hblank_out, vblank_out;

// Generate the clock : 50 MHz
always #19.86ns clk_25_175MHz = ~clk_25_175MHz;

design_1_wrapper UUT
(
    .active_video_out   (active_video_out   ),
    .clk_25_175MHz      (clk_25_175MHz      ),
    .hsync_out          (hsync_out          ),         
    .vsync_out          (vsync_out          ),
    .hblank_out         (hblank_out         ),
    .vblank_out         (vblank_out         )
);

endmodule

很简单吧,Vivado提供了专门的IP核,能帮我们快速够构建起这些关键信号,并对其行为进行精确的模拟和分析。

4. 总结

本序言旨在引领大家进入Zynq芯片在视频处理方面的应用世界,希望通过对数字视频基础知识的掌握,使读者能够更好地利用Zynq芯片进行视频处理项目的开发,进而探索视频处理技术的无限可能。

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

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

相关文章

PHP 使用 PHPMailer 发送电子邮件

1. PHPMailer 介绍 phpMailer 是一个非常强大的 php 发送邮件扩展包,可以设定发送邮件地址、回复地址、邮件主题、html邮件内容和上传附件等,使用起来非常方便。它目前有着有近 4 千万的下载量,是 PHP 开发者实现邮件发送功能的首选扩展包 它…

阅读小程序|基于微信阅读网站小程序的系统设计与实现(源码+数据库+文档)

目录 基于微信阅读网站小程序 一、前言 二、系统设计 三、系统功能设计 小程序端: 后台 管理员进入指定功能操作区之后可以管理图书订单。其页面见下图。管理员审核订单,查看订单是否支付,为购买图书的用户推送对应的章节。 管理员进…

西瓜书学习——第一、二章笔记

[] 什么是机器学习? 研究关于“学习算法”(一类能从数据中学习出其背后潜在规律的算法)的一门学科。 PS:深度学习指的是神经网络那一类学习算法,因此是机器学习的子集。 假设空间和版本空间 举个栗子:假设现已收集到某地区近几年的房价和学校数量数据&#xf…

【基础物理实验】【AFM虚拟实验】基于AFM的物质表面微观结构及力学性质表征仿真实验(下)【北京航空航天大学】

本次实验(上)见博客:【基础物理实验】【AFM虚拟实验】基于AFM的物质表面微观结构及力学性质表征仿真实验(上)【北京航空航天大学】 本次实验(中)见博客:【基础物理实验】【AFM虚拟实…

『哈哥赠书 - 51期』-『数字风控体系:设计与实践』

⭐️ 赠书 - 《数字风控体系:设计与实践》 ⭐️ 数字风控概述 从2007年开始到2014年左右,高速移动网络和智能手机迅速在大众中普及,开启了移动互联网时代。在这个背景下,企业的产品与服务也出现了两个重要的趋势。 第一个趋势是…

(十三)C++自制植物大战僵尸游戏多用户存档实现(二)

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/8UFMs UserData.h 在头文件中定义了枚举类型openUserDataReturnType,用于表示打开用户数据文件的返回状态。FileExistError表示文件存在但是打开错误,FileExistCorrect表示文件在且正确&#xff0…

活动理论的散点图

import pandas as pd import matplotlib.pyplot as plt# 假设您已经有一个名为 data.xlsx 的 Excel 文件 # 您可以使用以下代码读取数据# 读取 Excel 文件 try:data pd.read_excel(data.xlsx) except Exception as e:print(f"Error: {e}")# 假设您的数据包含以下列:…

2024 OceanBase开发者大会:专场论坛亮点抢先看

4 月 20 日,2024 OceanBase 开发者大会将在上海闵行区漕宝路 3199 号宝龙艾美酒店召开。 此次盛会专为开发者们量身打造,OceanBase诚挚邀请了来自不同行业的最佳实践用户、业界享有盛誉的技术专家,以及OceanBase数据库领域的精英们齐聚一堂。…

线程池学习(通俗易懂)

线程池 线程池是什么ThreadPoolExecutor模拟实现线程池结语 线程池是什么 假设我们要频繁的创建线程和销毁线程,但是创建线程和销毁线程是有成本的. 所以我们可以提前创建一批线程,后面需要使用的时候,直接拿就可以了,这就是线程池. 当线程不再使用的时候,就归还到池子里.为什…

软考131-上午题-【软件工程】-软件可靠性、可用性、可维护性

可靠性、可用性和可维护性是软件的质量属性,软件工程中,用 0-1 之间的数来度量。 0.66 66% 1、 可靠性 可靠性是指一个系统对于给定的时间间隔内、在给定条件下无失效运作的概率。 可以用 MTTF/ (1MTTF) 来度量,其中 MTTF 为平均无故障时间…

算法练习第18天|111.二叉树的最小深度

111.二叉树的最小深度 111. 二叉树的最小深度 - 力扣(LeetCode)https://leetcode.cn/problems/minimum-depth-of-binary-tree/description/ 题目描述: 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最…

vue3 vueUse 连接蓝牙

目录 vueuse安装: useBluetooth: 调用蓝牙API 扫描周期设备 选择设备配对 连接成功 vue3的网页项目连接电脑或者手机上的蓝牙设备,使用vueUse库,可以快速检查连接蓝牙设备。 vueUse库使用参考: VueUse工具库 常用api-CSDN…

【代码】Python3|Requests 库怎么继承 Selenium 的 Headers (2024,Chrome)

本文使用的版本: Chrome 124Python 12Selenium 4.19.0 版本过旧可能会出现问题,但只要别差异太大,就可以看本文,因为本文对新老版本都有讲解。 文章目录 1 难点解析和具体思路2 注意事项2.1 PDF 资源获取时注意事项2.2 Capabiliti…

接口防盗刷的方法有哪些?

在工作中,曾经遇到过一个手机号一天发送上百次验证码得情况,这种明显是出问题了,那怎么解决和防范呢? 这是一个非常有意思的问题,防范措施挺多的。今天这篇文章专门跟大家一起聊聊,希望对你会有所帮助。 1…

固定测斜仪:工程观测的精密利器

在工程观测测量领域,固定测斜仪扮演着至关重要的角色。固定测斜仪,凭借其耐冲击型倾斜传感器、出色的可靠性、快速稳定的特点,以及简洁的安装和智能识别功能,已成为行业内重要工具。其输出信号为RS485数字量,可直接显示…

进行接口测试时,连接数据库,对数据源进行备份、还原、验证操作

进行接口测试时,我们需要连接到数据库中,对数据源进行备份、还原、验证等操作。 一、Python连接数据库常见模块 MysqlDBpython2时代最火的驱动库。基于C开发,对windows平台不友好。现在已经进入python3时代,基本不再使用MysqlCl…

OPC-UA是这样在食品和饮料中应用的

什么是 OPC-UA OPC Unified Architecture,即 OPC-UA,是一种基于 TCP/IP 的协议,用于自动化工程师实时、高可靠性、高效性地在控制系统级别共享数据。 OPC-UA 的特点 安全通信: OPC-UA 使用先进的加密方法和严格的访问控制,确保数…

基于STM32的交通灯(OLED屏显示倒计时)的Proteus仿真

文章目录 一、前言二、交通灯1.题目要求2.思路3.画图正常情况模拟故障情况 4.软件 三、总结 一、前言 最近下载了Proteus仿真软件,闲来无事也试试画一个简单的仿真图。 有需要软件的朋友可以去我的另外一篇博客下载和安装。 自用Proteus(8.15)仿真下载安装过程&a…

C++进阶(2)-函数

目录 一、函数提高 1.1函数默认参数 1.2函数占位参数 1.3函数重载 1.3.1函数重载概述 1.3.2函数重载注意事项 二、类和对象 2.1封装 2.1.1封装的意义 2.1.2struct和class区别 2.1.3成员属性设置为私有 2.1.4封装案例 2.2对象的初始化和清理 2.2.1构造函数和析构函数 …

数据大爆炸:WordCount程序的多元化执行方式

文章目录 主要内容1.左方工作区右键New,选择Map文件2.再创建mymap,myreducer,mywordcount类:3.打包在linux中运行,注意处理的文件式完全分布式文件3.1打jar包步骤: 4.完成内容 主要内容 尝试使用不同的方式运行wordcount程序。 1&#xff09…