视频并行处理系统分析与设计

时间:2024-10-21 10:47:37 计算机软件毕业论文 我要投稿
  • 相关推荐

视频并行处理系统分析与设计

  摘要:视频数据处理的特点是数据量大,而且各种视频处理模块的数据交换频繁,实时性要求高。为了满足海量视频数据的处理,提出了一种利用非透明桥连接多个CPU桥连的硬件架构及其并行处理方法,实现视频的并行处理。本系统突破了单个高性能CPU的计算能力,大大提高了海量视频信号的处理能力;而且该处理方法不会单纯地依靠硬件技术如CPU处理速度等的发展,可以通过合理调节视频处理步骤来实现快速视频处理的功能。

  关键词:非透明桥;并行运算;视频;同步机制;PCI-E协议

  引言

  图像与人们的生产生活息息相关,是人类获取和交换信息的主要来源,据统计人类有80%以上的信息来自于图像。随着数字化进程的加速普及,人们对视频的需求提出了更高要求,电视、内容、数字摄像机等提供的各种形式视频正在向高清转变。高清晰度的视频在各个领域的应用越来越广,3D技术也日趋成熟,需要对海量视频数据进行复杂处理的应用越来越多,这对视频处理技术提出了一个新的挑战。传统的视频处理多采用GPU( Graphic Processing Unit图形处理器)进行,限于目前单个显卡的处理能力有限,需要同时对一个大屏幕的高清视频数据进行纹理映射、颜色混合、3D渲染等操作的场合已经很难胜任了。近年来,对于视频并行运算的研究取得了很多进展,提出了很多的解决办法,但是这些办法都是仅仅解决了视频处理中的某一个问题。例如目前利用网络进行并行运算的计算机系统,虽然其并行运算的能力较强,但是对于海量的视频数据,其数据传输能力有很大的局限|生:网络带宽不足以实时地传输信号,这导致出现图像无法流畅显示的问题,随着目前需要处理的视频数据量的增加,这种缺陷已越来越严重。

  一、非透明桥技术

  非透明桥顾名思义是一座连接两端处理器的桥梁,且两端的处理器均有独立的地址空间,桥两端的主机不能看到另外一个主机完整的地址或者I/O空间。在非透明桥环境中,PCIExpress系统需要在从一个内存地址空间穿越到另一个地址空间时进行地址翻译。每一个非透明桥(NTB)端口都有两套基地址寄存器(BAR),一套是给主设备端用的,另一套是给从设备端用的。基地址寄存器可用来定义在非透明桥另一端的内存地址空间的地址翻译窗口,并允许这个翻译被映射到本地的内存或I/O空间。

  非透明桥允许桥两边的主机通过便笺寄存器、门铃寄存器和心跳消息来交换一些状态信息。便笺寄存器在非透明桥的两端都是可读写的,但是,便笺寄存器的数量在具体的实现中是可以不同的。他们可以被桥两边的设备用来传送一些状态信息,也可作为通用的可读可写寄存器使用。门铃寄存器被用来从非透明桥的一边向另一边发送中断。非透明桥的两边一般都有软件可以控制的中断请求寄存器和相应的中断屏蔽寄存器。这些寄存器在非透明桥的两边都是可以被访问的。心跳消息一般来自主设备端往从设备端的主机,可用来指示它还活着。从设备主机可监控主设备主机的状态,如果发现出错,它就可以采取一些必要的措施。通过门铃寄存器可以传送心跳消息。当从设备主机没有收到一定数量预先规定好的心跳消息时,就可以认为主设备的主机出错了。

  二、视频处理系统架构

  本文提出了一种并行视频处理的系统架构,具体见图1,该并行视频处理系统包括了多个视频处理系统,一个非透明桥和一个视频输出系统。视频处理系统主要完成规定的各种视频处理,视频输出系统负责完成视频数据对屏幕的输出。非透明桥(NTB)用于连接视频处理系统和视频输出系统,控制数据和视频数据的交互通过非透明桥芯片实现:非透明桥为系统之间提供一个高速的数据交换通道和通信的桥梁。多个视频处理系统和一个视频输出系统通过PCI-E总线和非透明桥(NTB)相连接,利用NTB的交换( switch)功能,实现多个视频系统之间的点对点通信。各个视频处理系统之间相互连接,每个视频处理系统都可以单独和任意一个视频处理系统之间通信和进行海量数据传输:视频输出系统通过非透明桥的连接,也可以和任意一个视频处理系统连接,视频处理系统可以将任意一个视频处理系统的数据输出给屏幕显示。每个视频处理系统具有一个或多个外围设备相关联的信息处理模块,外围设备信息通过PCI-E协议进出传输。

  数据传输中采用了高速的PCI-E传输通道,该并行架构系统解决了海量视频数据传输的瓶颈问题,为并行处理提供了硬件基础。单通道的PCI―E总线带宽可以达到lOGbps,该总线有Xl、X2、X4、X8和X16、X32(X32目前还不支持)通道规格可选,如果采用X4,通道的总带宽可以达到40Gbps(PCI-E 2.0协议),单方向带宽可以达到20Gbps。超宽的P CI-E数据传输通道为海量视频数据提供了高速通道。例如逐行扫描制式,帧率通常为60Hz的1080P无压缩视频,传输需要3Gbps的数据通道,采用PCI-E通道可以传输多个1080P视频数据,保证了视频信号传输的流畅。

  三、视频并行处理方法

  在图像处理的过程中,需要对图像进行纹理映射、颜色混合、深度缓冲、模板缓冲等步骤。这些串行步骤的执行均需要非常大的计算量,并且耗时。因此,在上述的并行视频处理系统的基础上,提出了一种并行视频处理的方法。我们这里将视频图像的处理分成若干个步骤,分别由不同的视频处理系统来处理,最后完成视频图像的处理并通过视频输出系统进行输出显示。每个视频处理系统都具备任意一个图像处理步骤的功能,它根据上一个数据流携带的处理命令来执行相应的处理。我们在传输过程中对视频流数据进行打包,一包数据可以包含一帧图像或者几十帧图像,这可以根据实际的需求而定,原则是数据交换的次数越少越好,但是数据包也不能太大,以至于影响到图像处理的时间。在数据包里边,专门指定了一个位置用于包含视频数据处理命令。该处理命令在该包数据被成功处理后,该位置的处理命令改为下一个处理命令。若该包数据没有被成功处理,该处理命令不变。

  该方法人为地将需要使用的视频处理过程分为若干个步骤,每个步骤分块的原则是处理时间基本相等:视频处理步骤的粒度可大可小,小至包括一个视频数据的深度缓冲或者对数变换,大至视频数据的整个3D渲染过程:每个视频处理步骤由系统内的单个视频处理系统进行处理,同时考虑到每个处理步骤的时间差异性问题,提出了一种同步机制:在处理过程中,同一个时间内,每个视频处理步骤是同时在每个视频处理系统进行的,达到了并行处理的效果:最后处理好的数据统一由高速的PCI-E通道送至视频输出系统进行输出显示。

  因为有了各个视频处理系统间的高速PCI-E通道,所以数据包传送的时间相对于图像处理步骤的时间来说非常少。每个图像处理步骤都包含了一个完整的流程,如图2所示。

  我们可以将图像处理的过程分为A、B、C、D四个步骤,每个步骤在一个视频处理系统中执行。如图3所示,我们采用视频处理系统并行做图像处理。

  在Tl时间周期内,由视频处理系统1发起图像处理的命令,并且将完成了图像处理步骤A后的数据打包,同时加上图像处理步骤B的处理命令,发送到视频处理系统2。发送完数据以后,视频处理系统1继续对后续进来的视频流信号做处理。在T2时间周期内,视频处理系统2接收到视频处理系统1发送过来的数据包后,首先分析其图像处理命令,发现是图像处理的步骤B,便完成步骤B,同时打包该处理完的数据并加上图像处理步骤C的处理命令,将数据发送到视频处理系统3。发送完数据后视频处理系统2继续完成其后续视频流的处理。在T3时间周期内,视频处理系统1和视频处理系统2在进行视频图像处理的同时,视频处理系统3接收到发过来的视频数据包后,对处理步骤命令进行分析,完成步骤C的处理:处理完毕,数据打包并添加步骤D的处理命令后发送到视频处理系统4。视频处理系统3继续完成后续的视频流的处理。在T4时间周期内,视频处理系统1和视频处理系统2在进行视频图像处理的同时,视频处理系统3接收到发过来的视频数据包后,对处理步骤命令进行分析,完成步骤C的处理:处理完毕,数据打包并添加步骤D的处理命令后发送到视频处理系统4。视频处理系统3继续完成后续的视频流的处理。在T4的时间周期内,视频处理系统1、视频处理系统2和视频处理系统3同时在做视频图像处理:视频处理系统4接收到数据后,判断处理命令,完成步骤D的处理,此时该包图像全部处理完毕,便送视频输出系统进行显示。

  上述的处理过程只是一个基本视频数据并行处理方法,它的一个关键在于整个图像处理步骤时间的合理安排,要求每个操作步骤的划分合理。如果前级操作时间恰好等于后级的操作时间,则最为简单,前级的输出直接汇入后级的输入即可:如果前级操作时间大于后级的操作时间,则需要对前级的输出数据适当缓存才能汇入到后级输入端:如果前级操作时间恰好小于后级的操作时间,则必须通过复制逻辑,将数据流分流,或者在前级对数据采用存储、后处理方式,否则会造成后级数据溢出。

  四、同步机制与异常处理

  为了解决数据溢出问题,本文在对图像处理步骤进行划分时,尽量使得每个步骤的处理时间都相同,这样可以很大程度上缓解前后级之间处理时间不一致造成的矛盾:同时引入同步机制,在多个视频处理系统之间建立一个同步信息传递机制,每个视频数据包被处理后往同步处理模块发送一个值,当在一个时间周期内所有的处理步骤往同步处理模块发送了处理完毕的值后,由同步处理模块发送视频数据流统一下传的命令。

  图4为同步模块处理流程,每次进入一个新的视频图像处理流程后,同步模块开始计数;在同步模块计数器件,图像处理的每个步骤处理完毕后,视频处理系统均会发出处理完毕命令:同步模块接收该命令,并对此进行判断在该图像处理周期中所有的处理步骤是否处理完毕:如果处理完毕则发出下个处理步骤的同步信号:若没有处理完毕则通过计数器判断该次处理周期时间是否达到T,如果达到时间T则强制完成该处理周期,发出下一个处理步骤的同步信号,如果没有达到时间T则转入判断所有步骤是否处理完毕的流程中。

  当强制同步信号到来时,由于某种特殊情况,视频处理系统对于本系统的图像处理步骤无法完成,如图5所示,在T3周期,视频处理系统3处理出错。此时,为了不影响整个处理流程的时间,将数据包继续往下一级发送,并且执行相同的处理步骤。在T3时间周期,本来由视频处理系统3完成的处理步骤C,出错后,在T4时间周期,由视频处理系统4完成。上述提到图像处理步骤A、B、C、D可以根据不同的应用来定义,处理步骤的粒度可大可小。对于一些比较大粒度的功能分工,如3D处理和GIS等,也可以采用上述提到的并行处理方法完成。如图3历示,可以用步骤A表示3D处理,步骤B表示GIS处理,由两个视频处理系统分别完成,同时在视频输出进行叠加显示:并采用方法中提到的同步机制使得两个系统处理后的图像能同时显示。

  五、结果与分析

  本文根据目前一些海量数据并行处理的应用限制,提出了通过非透明桥连接的多CPU并行出现系统架构,并提出了一种并行处理的方法。该并行处理方法在笔者设计的系统平台中得到了实际应用和验证,运行效果良好,突破了单个高性能CPU计算能力,大大提高了海量视频信号的处理能力:而且该处理方法不会单纯地依靠硬件技术如CPU处理速度等的发展,可以通过合理调节视频处理步骤来实现快速视频处理的功能,具有很高的产品推广价值。

【视频并行处理系统分析与设计】相关文章:

视频监控系统中多画面处理器的设计03-19

在DSP处理器上并行实现ATR算法03-18

一种新型多DSP并行处理结构03-19

异地并行设计中WEB数据库设计*03-18

视频压缩IPcore设计03-18

基于图形处理器的可变形部件模型算法的并行化03-17

一种基于聚焦型SAR相位修正的并行处理方法03-07

浅论无线校园网系统分析与设计03-05

探析视频设计的平面化趋势03-20