微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 视频并行处理系统分析与设计

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

时间:08-06 来源:电子产品世界 点击:

3 视频并行处理方法

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

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

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

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

在T1时间周期内,由视频处理系统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 同步机制与异常处理

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

图4为同步模块处理流程,每次进入一个新的视频图像处理流程

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top