图像处理ASIC设计方法 笔记6 数据拼接和帧格式校正

2024-03-04 09:28

本文主要是介绍图像处理ASIC设计方法 笔记6 数据拼接和帧格式校正,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

第四章大模板卷积ASIC设计方案
P80
实时图SPRM 数据位宽64bit,4个SPRAM,同时得到4行数据
绘制卷积芯片数据路径图,卷积芯片内部模块图
根据这个图,本书后续对各个模块都进行介绍。

P81

第一个模块 图像输入前端FIFO

学习图像处理中好的设计思路:帧格式校验和数据拼接

实现方式见下:

(1)帧格式校验

当从前端FIFO中读取数据,检测到帧起始信号有效时,开始计数(假设一帧图像个数为F)。若计数达到F时还未检测到下一帧的帧起始信号,则前端FIFO不会将数据写入后端FIFO中。同理,若未计数到F时已经检测到下一帧的帧起始信号,则FIFO重复读取上一帧的最后一位数据,直到达到F为止。这样就能很好地解决帧数据不齐的问题

(2)数据拼接

将8 bit有效数据信号转化为64 bit数据写入后端FIFO中。图像大小可变,这样有可能存在这种情况,即一行数据不能够刚好拼成n个64 bit,例如,一行数据为321x8bit,那么只能拼成40个64 bit。这样就把每一行最后一个8 bit 数据重复若干次,直到拼接为一个完整的64 bit数据

第二个模块 图像输入后端FIFO

它的作用是对拼接后的64bit数据进行缓存,根据使能控制和地址信号,写入实时图像缓存部分(SPRAM 4块)。

为什么要有图像输入后端FIFO,因为SPRAM的写操作所需带宽小,读操作所需带宽大,所以要优先保证它的读操作

对于图像输入后端FIFO的要求,有一定的存储容量,读时钟必须比写时钟快,避免出现FIFO满的情况,导致数据丢失,但可以出现FIFO空。

在图像输入后端FIFO可以通过计数来模拟帧有效信号,因为在图像输入前端FIFO已经做好了帧对齐

图像输入后端FIFO的状态机思路:
(1)两个状态,空闲和读FIFO
(2)状态间的切换

复位时或者FIFO为空时,进入空闲状态;
空闲状态下,FIFO为非空时,进入读FIFO状态;
读FIFO状态下,如果FIFO读使能为1或者开始写ram为1,保持读FIFO;如果复位时或者FIFO为空时,进入空闲状态。
在这里插入图片描述

这篇关于图像处理ASIC设计方法 笔记6 数据拼接和帧格式校正的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/772726

相关文章

Mysql数据库中数据的操作CRUD详解

《Mysql数据库中数据的操作CRUD详解》:本文主要介绍Mysql数据库中数据的操作(CRUD),详细描述对Mysql数据库中数据的操作(CRUD),包括插入、修改、删除数据,还有查询数据,包括... 目录一、插入数据(insert)1.插入数据的语法2.注意事项二、修改数据(update)1.语法2.有

SpringBoot实现接口数据加解密的三种实战方案

《SpringBoot实现接口数据加解密的三种实战方案》在金融支付、用户隐私信息传输等场景中,接口数据若以明文传输,极易被中间人攻击窃取,SpringBoot提供了多种优雅的加解密实现方案,本文将从原... 目录一、为什么需要接口数据加解密?二、核心加解密算法选择1. 对称加密(AES)2. 非对称加密(R

详解如何在SpringBoot控制器中处理用户数据

《详解如何在SpringBoot控制器中处理用户数据》在SpringBoot应用开发中,控制器(Controller)扮演着至关重要的角色,它负责接收用户请求、处理数据并返回响应,本文将深入浅出地讲解... 目录一、获取请求参数1.1 获取查询参数1.2 获取路径参数二、处理表单提交2.1 处理表单数据三、

Oracle 通过 ROWID 批量更新表的方法

《Oracle通过ROWID批量更新表的方法》在Oracle数据库中,使用ROWID进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销,下面给大家介绍Orac... 目录oracle 通过 ROWID 批量更新表ROWID 基本概念性能优化建议性能UoTrFPH优化建议注

Pandas进行周期与时间戳转换的方法

《Pandas进行周期与时间戳转换的方法》本教程将深入讲解如何在pandas中使用to_period()和to_timestamp()方法,完成时间戳与周期之间的转换,并结合实际应用场景展示这些方法的... 目录to_period() 时间戳转周期基本操作应用示例to_timestamp() 周期转时间戳基

在 PyQt 加载 UI 三种常见方法

《在PyQt加载UI三种常见方法》在PyQt中,加载UI文件通常指的是使用QtDesigner设计的.ui文件,并将其转换为Python代码,以便在PyQt应用程序中使用,这篇文章给大家介绍在... 目录方法一:使用 uic 模块动态加载 (不推荐用于大型项目)方法二:将 UI 文件编译为 python 模

Python将字库文件打包成可执行文件的常见方法

《Python将字库文件打包成可执行文件的常见方法》在Python打包时,如果你想将字库文件一起打包成一个可执行文件,有几种常见的方法,具体取决于你使用的打包工具,下面就跟随小编一起了解下具体的实现方... 目录使用 PyInstaller基本方法 - 使用 --add-data 参数使用 spec 文件(

Python的pip在命令行无法使用问题的解决方法

《Python的pip在命令行无法使用问题的解决方法》PIP是通用的Python包管理工具,提供了对Python包的查找、下载、安装、卸载、更新等功能,安装诸如Pygame、Pymysql等Pyt... 目录前言一. pip是什么?二. 为什么无法使用?1. 当我们在命令行输入指令并回车时,一般主要是出现以

Spring Validation中9个数据校验工具使用指南

《SpringValidation中9个数据校验工具使用指南》SpringValidation作为Spring生态系统的重要组成部分,提供了一套强大而灵活的数据校验机制,本文给大家介绍了Spring... 目录1. Bean Validation基础注解常用注解示例在控制器中应用2. 自定义约束验证器定义自

通过C#获取Excel单元格的数据类型的方法详解

《通过C#获取Excel单元格的数据类型的方法详解》在处理Excel文件时,了解单元格的数据类型有助于我们正确地解析和处理数据,本文将详细介绍如何使用FreeSpire.XLS来获取Excel单元格的... 目录引言环境配置6种常见数据类型C# 读取单元格数据类型引言在处理 Excel 文件时,了解单元格