今天给大侠带来基于FPGA的数字视频信号处理器设计,由于篇幅较长,分三篇。今天带来第一篇,上篇,视频信号概述和视频信号处理的框架。话不多说,上货。

之前也有图像处理相关方面的文章,这里超链接几篇,给各位大侠作为参考。

《冈萨雷斯数字图像处理MATLAB版》中文版(第二版) 电子版

荐读:FPGA设计经验之图像处理

基于FPGA的实时图像边缘检测系统设计(下)

FPGA设计中 Verilog HDL实现基本的图像滤波处理仿真

导读

图像是用各种观测系统以不同形式和手段观测客观世界而获得的,可以直接或间接作用于人眼进而产生视知觉的实体。

随着电子技术和计算机技术的飞速发展,数字图像技术近年来得到极大的重视和长足的发展,并在科学研究、工业生产、医疗卫生、通信等方面得到广泛的应用。

视频信号由一系列连续的图像组成。对视频信号的处理已经成为数字图像处理领域中重要的一部分。例如机器人模式识别的过程就是一个视频信号处理的过程,电视制导导弹识别目标就是充分利用视频信号处理技术不断判断目标是否和预先设定目标图像一致。本篇将讲解如何用 FPGA 技术实现基本的视频信号处理。本篇的例子可以作为各位大侠进行视频信号处理时的一个参考,也可以在这个基础上根据需要进行扩展。

第一篇内容摘要:本篇会介绍视频信号概述,包括视频信号处理的基本过程、数字图像处理技术概念、数字视频信号的格式;视频信号处理的框架,包括视频信号转换模块、视频数据计算模块以及通信模块等相关内容。

一、视频信号概述

在讲解数字视频信号处理器以前,需要了解视频信号的组成。摄像头输出的视频信号满足电视信号的制式,一般摄像头、摄像机都提供 PAL 制的视频信号。

目前,世界上实际应用的电视信号制式主要有 NTSC 制、PAL 制和 SECAM 制 3 种。世界上大多数国家采用 PAL 制,我国也采用 PAL 制。美国、日本等国家采用 NTSC 制。俄罗斯、法国、埃及等少数国家采用 SECAM 制。

PAL 电视制式规定,场扫描频率为 50Hz,每帧图像的扫描行数为 625 行。PAL 制电视信号如图 1 所示。

图 1 PAL 制电视信号

电视信号由“图像信号”和确保扫描同步的“复合同步信号”以及消除扫描逆程回扫线的“复合消隐信号”等辅助信号构成。有关电视信号的原理请自行查阅相关资料,这里不详细解释。

1.1 视频信号处理的基本过程

视频信号的处理过程就是拍摄视频信号的逆过程。摄像头输出的是标准 PAL 制电视信号。摄像头通过光电转换实现图像到视频信号的转换,也就是扫描的过程。摄像头每扫描完一行图像,加入一个行同步脉冲,每扫描完一场图像加入一个场同步信号。同时为了保证扫描逆程光栅不显示,应加入和同步信号同周期的消隐信号。

对视频信号进行处理,需要先进行 A/D 转换、行/场同步信号的分离等步骤,然后采用专用的视频信号处理器对视频信号进行转换,最后用FPGA 处理数字图像信号并得到需要的结果。视频信号处理流程如图 2 所示。

图 2 视频信号处理基本流程

1.2 数字图像处理技术概念

如图 2 所示的流程中,视频信号的放大、模数转换和格式转换由专用的视频处理芯片完成,FPGA 需要完成对视频信号转化后的数字图像进行处理和运算。在进行具体的开发前先介绍一下相关的概念。

1)像素

一幅平面图像可以看成是由许许多多的小单元组成,在图像处理系统中,这些组成画面的细小单元称为像素。像素越小,单位面积上的像素数目就越多,由其构成的图像就越清晰。

一幅黑白或者灰度平面图像,表征它的特征参量是亮度。这就是说,组成画面的每个像素,不但有各自确定的几何位置,而且它们各自还呈现着不同的亮度。又由于电视系统传送的是活动图像,因而每个在确定位置上的像素其亮度又随时间不断地变化着,也就是说像素的亮度又是时间的函数。像素亮度既是空间(二维)的函数,同时又是时间的函数。

2)一帧图像

电视系统中把构成一幅图像的各像素传送一遍称为进行了一个帧处理,或称为传送了一帧,每帧图像由许多像素组成。因此组成一幅完整图像也叫做一帧图像。

3)一场图像

PAL 制电视图像是隔行扫描的,即一帧图像分两次扫描,第一次扫描奇数行的图像,第二次扫描偶数行的图像。每次扫描获得的图像称为一场图像,分为奇数场和偶数场。

4)图像的串行传输

根据人的视觉惰性,可把组成一帧图像的各个像素的亮度按一定顺序一个一个地转换成相应的电信号并依次传送出去,接收端再按同样顺序将各个电信号在对应位置上转变成具有相应亮度的像素,这就是图像的串行传输。

这种串行传输具有两个特点:

• 要求传送速度快。只有传送迅速,传送时间小于视觉暂留时间,重现图像才会给人以连续无跳动的感觉。

• 传送要准确。每个像素一定要在轮到它传送时才被转换、传送,并被接收方接收。而且收、发双方每个像素被转换、还原的几何位置要一一对应。即收发双方应同步工作,同步在电视系统中是十分重要的。

5)扫描

将组成一帧图像的像素,按顺序转换成电信号的过程(或逆过程)称为扫描。扫描的过程和我们读书时视线从左到右、自上而下依次进行的过程类似。从左至右的扫描称为行扫描,自上而下的扫描称为帧或者场扫描。电视系统中,扫描多是由电子枪进行的,通常称其为电子扫描。通过电子扫描与光电转换,就可以把反映一幅图像亮度的空间与时间的函数转换为只随时间变化的单值函数(电信号),从而实现平面图像的顺序传送。

1.3 数字视频信号的格式

PAL 制电视信号转化为数字视频信号后的具体格式如图 3 所示,一般数据格式符合 ITU656 YUV 4:2:2 标准(在后面的将结合数字视频处理器对数字视频格式详细介绍)。

图 3 一帧图像采集的时序关系

一帧图像含有 625 行数据,其中有效图像数据 572 行,其他为场消隐信号;每行图像数据包含 720 个像素。因此,PAL 制电视信号的分辨率为 720×572。PAL 制电视信号每秒扫描 25帧图像,每帧包括奇、偶两场图像。一帧图像分为奇数场和偶数场,每场各有 286 行有效图像。垂直参考电压信号 VREF 的高电平表示有效图像信号,偶数场和奇数场各 286 行。ODD 信号高电平表示为奇数场,低电平表示偶数场。行参考电压信号 HREF 信号表示一行有效的图像数据。一行图像数据又包括 720 个像素的数据,每行图像数据如图 4 所示。

图 4 一行图像数据

二、视频信号处理的框架

如图 5 所示的是一般工程项目中视频信号处理的框架,由 3 个模块组成:

• 视频信号转换模块 

由视频信号处理器完成视频信号从模拟信号到数字信号的转换、图像信号与其他的分离、视频信号的格式转换等,最终提供后端可以处理的数字视频数据。

• 视频数据计算模块 

首先接收来自前一个模块的数字视频数据,然后完成对数字视频数据的计算。一般数据接收由 FPGA 完成,根据需要可以选择专用芯片,如 DSP(Digital SignalProcessor,数字信号处理器)完成计算,也可以选择 FPGA。

• 通信模块 

实现与外界的数据交换。

图 5 视频信号处理框架

虽然视频信号处理的需求多种多样,但数据处理的流程都遵循数据采集、格式转换、数据接收、数据计算、数据通信的步骤。

2.1 视频信号转换模块

视频信号转换模块由视频信号处理器及其辅助电路组成。这个模块的设计要点是选择视频信号处理器。电视信号构成极为复杂,其中除了包含图像信号之外,还包含行同步信号、行消隐信号、场同步信号、场消隐信号以及槽脉冲信号、前均衡脉冲、后均衡脉冲等。因而,对电视信号进行 A/D 转换的电路也非常复杂,Philips 公司将这些非常复杂的电视 A/D 转换电路集成到了一块芯片内,生产出功能强大的视频输入处理芯片 SAA7113(后面简称 SAA7113)。

SAA7113 采用 CMOS 工艺,通过简洁的 I2C 总线与采样控制器连接可方便地构成图像采集系统。SAA7113 芯片中的场同步信号、行同步信号、像素时钟信号 LLC2 以及其他状态信号都可直接由管脚引出,省去了时钟同步电路的设计,而且可靠性更高。系统内部采用锁相环技术,不但有高的可靠性,并简化了设计复杂度。在 SAA7113 中有控制字可以直接控制行同步有效时间,省略了行延迟电路。因此,采用 SAA7113 可为电视信号的数字化应用提供极大的方便。

2.2 视频数据计算模块

在视频信号处理过程中为保证实时性,首先要求实时图像处理系统具有处理大数据量的能力;其次对系统的体积大小、功能、稳定性等也有严格的要求。实时图像处理算法中经常要用到对图像的求和、求差运算、二维梯度运算、图像分割、边缘探测等不同层次、不同种类的运算。有的运算结构比较简单,但是数据量大,计算速度要求高;有些运算对速度要求并不高,但计算方式和结构比较复杂,难以用纯硬件方式实现。因此,实时图像处理系统是要求运算速度高、运算种类多的综合性信息处理系统。

随着大规模可编程器件的发展,采用 DSP+ASIC(Application Specific IntegratedCircuit,特定用途集成电路)结构的信号处理系统显示出了其优越性,逐步得到重视。与通用集成电路相比,ASIC 芯片具有体积小、重量轻、功耗低、可靠性高等优点,而且在大批量应用时更可降低成本。现场可编程门阵列(FPGA)是在专用 ASIC 的基础上发展起来的,它克服了专用 ASIC 不够灵活的缺点。与其他中小规模集成电路相比,其优点主要在于它的灵活性很强,即其内部具体的逻辑功能可以根据需要配置,对电路的修改和维护很方便。

目前,FPGA的容量已经超过了百万门级,FPGA 已成为系统设计的重要选择方案之一。图像处理系统中,底层的图像预处理的数据量很大,要求处理速度快,但运算结构相对比较简单,适用于 FPGA 通过硬件实现,这样能同时兼顾速度及灵活性。高层运算的特点是所处理的数据量较底层少,但算法结构复杂,适宜采用运算速度高、寻址方式灵活、通信能力强的DSP 芯片来实现。

DSP+FPGA 结构最大的特点是结构灵活,有较强的通用性,适于模块化设计,从而能够提高运算、处理的效率;同时开发周期短,易于维护和扩展,适于实时图像处理;对不同算法有较强的适应能力。

上面的讨论为各位大侠提供视频数据计算的方案。由于本篇主要介绍 FPGA 技术,这里将结合FPGA 介绍如何进行视频数据计算。

2.3 通信模块

通信模块用于提供当前系统与外部进行数据交换的通道,可以有以太网、RS-232、RS-422、RS-485、现场总线、USB 等多种方式。

本篇到此结束,下一篇带来基于FPGA的数字视频信号处理器设计(中),介绍视频信号处理的电路,包括中央控制器 FPGA、电视信号转换模块电路、图像缓存部分电路;还会介绍视频处理程序的具体实现,包括主体程序的实现、视频图像数据采集程序的实现以及SRAM 的读写控制等相关内容。

END

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!

精彩推荐

基于FPGA的以太网控制器(MAC)设计(下)

FPGA之通信算法工程师面试题3

FPGA 高级设计:时序分析和收敛

基于FPGA的扩频系统设计(下)

基于FPGA的数字视频信号处理器设计(上)相关推荐

  1. 基于FPGA的数字视频信号处理器设计(中)

    今天给大侠带来基于FPGA的数字视频信号处理器设计,由于篇幅较长,分三篇.今天带来第二篇,中篇,视频信号概述和视频信号处理的框架.话不多说,上货. 之前也有图像处理相关方面的文章,这里超链接几篇,给各 ...

  2. 基于FPGA的数字视频信号处理器设计(下)

    基于FPGA的数字视频信号处理器设计(下) 今天给大侠带来基于FPGA的数字视频信号处理器设计,由于篇幅较长,分三篇.今天带来第三篇,下篇,程序测试与运行.话不多说,上货. 导读 图像是用各种观测系统 ...

  3. 基于 FPGA 的数字抢答器设计

    下面是基于 FPGA 的数字抢答器设计,在quartusII下,modelsim下仿真,编程语言VHDL.   1.抢答器的工作原理 主持人宣布可以抢答后,在 20s 的定时时间内若有人按键抢答,则这 ...

  4. 基于FPGA的数字秒表的设计

    应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了系统的开发时间,提高了工作效率.本文介绍一种以FPGA为核心,以VHDL为开发工具的数字秒表,并给出源程序和仿真结果. 1 系统 ...

  5. 基于FPGA的数字时钟的设计课设(HUAT)

    目录 前言 一.数字时钟课设目标 二.部分代码 1.clock.v代码的编写 2.完整代码 3.仿真代码 总结 前言 学校黄老师的FPGA的设计课设,最后的课设为数字时钟,实现分时的计数功能,带有整点 ...

  6. 基于FPGA的数字电子钟的设计与实现

    背景:本实验所有结果基于Quartus II 13.1 (64-bit)实现,实验过程采用自下而上 2020年6月21日更新 我的实验报告,希望大家可以借鉴理解. 链接:https://pan.bai ...

  7. m基于FPGA的数字下变频verilog设计

    目录 1.算法描述 2.仿真效果预览 3.verilog核心程序 4.完整FPGA 1.算法描述 整个数字下变频的基本结构如下所示 NCO使用CORDIC算法,CIC采用h结构的CIC滤波器,HBF采 ...

  8. 基于FPGA的数字电子钟的设计与实现-实验报告

    系统顶层模块设计 图1 系统顶层设计电路 图2 数字钟功能设计电路 图3 秒表功能设计电路 图4 闹钟功能设计电路 1.1系统功能 该系统分为数字钟.秒表.闹钟三个功能模块,通过开关控制模块key_5 ...

  9. [FPGA]基于FPGA的数字跑表

    基于FPGA的数字跑表的设计与实现 一.设计要求 用FPGA设计并实现一个数字跑表,范围为0~59分59.99秒.可以实现数字跑表进行启动.停止计时和显示读数三个操作,可以在数码管上显示读数. 二.设 ...

  10. 基于FPGA的数字时钟设计

    基于FPGA的数字时钟设计 芯片与开发板 技术指标 1.具有正常的日时分秒技术显示功能,用七个数码管分别显示日,时,分,秒. 2.有按键校日,校时,校分,校秒. 3.利用led模拟整点报时功能. 4. ...

最新文章

  1. 几年前,我撸了一套RabbitMQ的客户端
  2. python好用-Pyzo -- 好用的 Python 轻量级 IDE
  3. mySQL:两表更新(用一个表更新另一个表)的SQL语句
  4. 更有效的加载较大的Bitmap
  5. 传智学员信息登记表html代码_IT兄弟连 HTML5教程 HTML5文字版面和编辑标签 使用HTML表格...
  6. php时间序列比对,常用在线序列比对工具
  7. 数据结构与算法之四希尔排序法
  8. html鼠标感应图片,jQuery实现的感应鼠标悬停图片色彩渐显效果
  9. ios 取出数组中前两个元素_看图学NumPy:掌握n维数组基础知识点,看这一篇就够了...
  10. lwip-2.1.3在STM32F103ZE+ENC28J60有线网卡上无操作系统移植(使用STM32 HAL库)
  11. java生成顺丰电子面单,顺丰拼多多电子面单设置教程
  12. 异常通知辅助模块 5.3 (try/catch)
  13. 区块链是大数据生态圈技术之一_ODC构建普惠金融生态圈|区块链+大数据
  14. java控制热敏打印机的例子.rar_stm32控制热敏打印机
  15. 关于网络知识一些笔记(个人2022.06)
  16. 淘宝店铺层级划分规则是什么?如何去玩转?
  17. Oracle Linux 6.4(BOND)双网卡绑定实战—附加说明
  18. java skeleton_stub 和 skeleton 的讲解,自己实现一个stub和skeleton程序
  19. Lua脚本如何调用C/C++模块,Windows以及Linux版本演示
  20. FL Studio2023终身免费升级适合电音舞曲DJ使用

热门文章

  1. Node2vec原理剖析,代码实现
  2. 远程读取mysql_远程获取数据库和文件的方法
  3. c mysql开发工具_Windows平台下Mysql C程序设计
  4. 训练集、验证集和测试集的比较
  5. (模电笔记二 By Multisim)波特图(Bode Plotter)幅频特性相频特性详解
  6. CentOS操作系统的22个log日志
  7. 【ASP.NET】QQ登录,新浪微博登录。
  8. python去除图片复杂背景_去掉图片黑背景输出为透明背景
  9. LaTex符号大全(LaTeX_Symbols)
  10. 2021线报天下 原创工具 (免费版本,无版权问题)