基于ARM+DSP架构的视频处理系统研究与实现

   2023-10-05 互联网2030
核心提示:  1 引言  随着视频编解码技术、计算机多媒体技术、数字信号处理技术和嵌入式系统的发展,以嵌入式处理器为核心的视频处理系

  1 引言

  随着视频编解码技术、计算机多媒体技术、数字信号处理技术和嵌入式系统的发展,以嵌入式处理器为核心的视频处理系统在市场上崭露头角。如果可以建立一种较通用的视频处理平台,在此平台上根据不同的需求做进一步的开发,就可以利用现有的技术,缩短视频处理平台的开发周期。本文对建立这样的平台进行研究和实现。

  

  图1 视频信息处理系统结构框图 

  2 系统方案设计

  本方案实现的视频信息处理系统包括通用控制处理、视频信息处理两大部分,其结构如图1所示。该系统包括三路视频输入以及一路音频输入,并支持视频的实时回放。DSP视频处理子系统作为从系统,接收ARM的控制,并与ARM有大量的视频数据交换。

  通用控制模块以ARM处理器为核心,负责系统的通用控制和DSP视频处理的通信控制。ARM芯片选用ARM9-S3C2410,它最高工作频率可达203MHz,为手持设备和一般类型应用提供了低价格、低功耗、高性能的解决方案。

  视频处理模块以DSP芯片为核心,负责视频数据的采集、视频回放、视频存储等功能。本文DSP处理器选用TMS320DM642,它是一款面向多媒体数据处理的高性能、数字视频定点信号处理器。

  3 系统控制模块的软硬件设计

  整个系统的开发包括底层硬件电路设计、设备驱动层开发以及应用程序层的实现三部分。

  

  图2 S3C2410的嵌入式控制的硬件结构图

  4 ARM硬件结构设计

  ARM主控模块的主要硬件设计包括CPU主控模块、数据存储系统、模拟/数字信号的采集模块等部分。其硬件结构如图2所示。ARM模块的主要电路设计包括处理器系统、存储子系统、调试子系统、扩展子系统以及人机交互系统等几大部分。

  5 系统软件设计

  为了满足系统功能,系统程序大致可分为两部分:应用程序和底层驱动程序。这些应用程序通过操作系统的设备驱动程序,与底层硬件相隔离。在Linux操作系统下开发的驱动程序,主要包括UART驱动、USB驱动、LCD驱动、键盘驱动、HPI通信驱动等。应用程序分为数据采集、显示、数据保存、按键查询、HPI通信等任务进程。

  6 DSP视频处理模块的软硬件设计

  视频接口

  系统实现四路视频输入接口与一个通路的视频输出接口。四路的视频输入接口可以同时完成对四路视频信号的采集。视频解码电路选用TVPS 150BPS,视频编码电路选用SAA7121H。视频编码与解码均支持NTSC和PAL格式。

  DM642的视频接口设计

  DM642上集成了三个Video Port(简称VP)口。每个视频口被分为上(A)、下(B)2个通道。每个视频口可配置为视频输入或视频输出口,但是上下两个通道只能同时被配置为输入或输出口,不能一个配置为输入,另一个配置为输出。DM642的视频口作为8位视频口时,使用10位数据总线中的高8位,即VPxD [9:2]或VPxD[19:12]。VPO与VP1可配置为单通道的视频输入/输出McBSPx和McASP口,VP2可配置为双通道的输入/输出口。在该系统中,VPO的A通道配置为单通道的视频输入口或输出口,B通道配置为一路音频输入;VP1的A通道分为第2通道视频输入。VP3的A、B通道分为第3、4通道视频输入。

  视频编码接口设计

  视频编码器SAA7121H支持PAL与NTSC格式的视频编码。其输入支持BT.656格式的数字视频。同时,它可支持1路复合视频(CVB S)输出和1路超级视频(S-Video,Y/C)输出。对SAA7121H的配置也是通过IIC总线来完成。

  TMS320DM642的VP口支持BT.656格式的数字视频流的显示功能,能与SAA7121H的数据口进行无缝连接。在该系统中使SAA7121H与一片TVP5150复用一个VP端口(VPOA(端口。其与DSP的接口如图3所示。

  

  图3 视频输出接口的电路设计

  从图3可以看出,VPOA既要作为视频输入口,也要作为视频输出口,但这两种工作模式又不能同时使用。所以,当VPOA作为8位BT.656视频采集口时,仅需视频数据流串行时钟和采集全能控制信号,而这两个信号分别由TVPS 1 SOPBS的SCLK和INTREQ/GPCL/VBLK引脚来控制。此时SAA7121H不起作用。

  视频解码接口设计

  TVPS 150PBS是一款高性能视频解码器,可将NTSC、PAL视频信号转换成数字色差信号,并支持两路复用视频端子输入,输出格式为ITU-R BT.656,同时它也支持Macrovision复制保护以及高级的VBI功能。

  

  图4 视频输入接口电路图

  由图4可见,TVP5150的INTREQ引脚用于控制视频数据流的采集。当INTREQ为1时,允许VP口对输入的视频数据流进行采集;为0则禁止VP口对输入的视频数据流进行采集。VPOA在本系统中还与视频输出SAA7121H相连接,因而VPOA需要工作在Capture与Display两种工作模式。

  

  图5 DSP软件模块结构图

  视频处理的软件设计

  如前所述,DSP视频处理的软件开发包括应用程序和设备驱动程序两部分。DSP模块软件的结构如图5所示,包括视频采集与回放、ATA硬件存储的设备驱动程序等。

  视频采集与回放的设计

  DSP的工作状态有三种:一是采集监控状态,即将视频输入和音频采集进程得到的音视频数据经过编码后只保存到内存中,而不写入ATA设备;二是采集保存状态,即将输入的音视频数据经过编码后直接写入到ATA设备中保存;三是回放状态,即从ATA设备中读取以前保存的音视频数据,再解码回放。在第一种工作状态下,DSP可以切换到第二或第三种工作状态;在其他两种工作状态下,DSP只能返回到第一种工作状态。

  视频采集模块的软件设计独立于主控模块,其应用程序建立在特定操作系统DSP BIOS之上,每一项具体的操作由主控模块的命令来决定。该模块程序主要包括采集进程、处理进程和回放进程三部分。

  其中处理进程是控制整个DSP采集模块的程序,接收主控模块送出的命令,响应具体的命令操作,同时为采集进程和回放进程传送消息,控制其操作。处理进程不仅负责与主控模块的通信,还要将采集得到的视频信息进行H.264的编码,并送给硬盘保存。

  采集进程等待处理进程的消息应答,开始采集视频信息后,以帧为单位对视频信息进行处理,将视频信息的原始色彩调整为适合系统输出的值。一帧数据处理完成后,该进程发送消息给处理进程,等待回复后,传递视频数据给处理进程,将控制权交由处理进程决定将视频信息传递给主控模块还是存储在硬盘介质上。

  回放进程是在主控模块给出相应的命令后,响应具体的命令,将已采集得到的视频数据回放在监视仪上,以备驾驶员的观察。回放程序的实现,从某种意义上说是采集进程的逆过程。回放程序首先等待处理进程的消息,当得到回放命令后,从硬盘上读取视频数据,还原采集进程处理过的颜色调整,在监视仪上显示该帧视频,如此反复。

  

  图6 视频采集流程图

  视频采集模块的软件流程关系如图6所示。

  7 结语

  ARM+DSP多处理器架构在处理视频处理等方案中可以节约大量空间,简化电路设计,独立调试与开发。本文所研究的基于ARM+DSP架构的系统已经取得了一定的成果。


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅