图像处理系统
上QQ阅读APP看书,第一时间看更新

4.2 图像帧存储体的管理

4.1节已经提过,图像帧存像是存储图像数据的仓库,诸如A/D、D/A、计算机以及硬件处理器,用户都要访问,每个用户访问帧存时,都要提出访问请求、提供读写标识、提供地址。为了做到有序而且正确地接受用户的访问,就需要对帧存的数据总线、地址总线进行有效的管理。在图像帧存的管理方法上,大致有两种方法:一种是分时访问的管理方式;另一种是优先级访问的管理方式。

4.2.1 存储体分时访问方式

所谓分时访问,就是规定确定的用户以确定的时间来访问存储体。我们以图4.1.1所示的单帧单通道存储体的结构作为分时访问的例子,这也曾是一个实际系统使用的方法。这里选用DRAM芯片来构成帧存,这时系统规定A/D、D/A在电视正程时间里访问帧存,而安排计算机在电视逆程时间里访问帧存。在电视逆程里,允许计算机访问帧存,当计算机在限定的时间里访问帧存时,则把帧存的相应总线切换给计算机,并把计算机存取帧存的时序送入帧存。要实现在电视逆程内允许计算机访问帧存这一限定,就必须要让计算机知道何时处于电视逆程,一种办法是电视逆程内产生DMA申请或产生中断,另一种办法是由计算机查询电视逆程状态。我们知道,电视逆程分为行逆程和场逆程。行逆程的标准时间为12μs,场逆程的标准时间为1.6ms。行逆程时间较短,要完成诸如中断申请、中断响应、数据传输等一系列操作,时间比较紧张。相比之下,安排计算机在场逆程时间里访问帧存更为合理。具体的做法是:在电视正程时间里,进行A/D写入或D/A读出的操作,操作时,把A/D写入或D/A读出的地址送入帧存的地址总线;如果用户是A/D,则把A/D的数据送入帧存的数据总线,把A/D写入操作的时序送入帧存,帧存则进行写入操作;如果用户是D/A,则把帧存的数据读出来送入D/A,把D/A读出时序送入帧存,帧存则进行读出操作。把计算机访问帧存的时间仅仅限制在场逆程内,显然这时计算机使用的效率是很低的。这个系统的场周期为20ms,系统的场逆程时间为1.6ms,此时计算机访问帧存的数据传输效率只有8%。在有的系统中,设计了这样的分时访问:当计算机访问帧存时终止D/A读出,这样做的结果是破坏了帧存图像的正常显示,视觉效果差。显然,以上这些分时访问的方法都存在不同的缺点。在帧存的管理上,似乎分时访问还不太完善,还没有解决好诸如计算机访问帧存和帧存图像显示并发的多用户问题。

4.2.2 存储体多周期嵌套的优先级访问方式

优先级访问的存储体管理方式,是指以用户优先级的顺序来确定用户访问存储体的先后次序。在多于一个用户同时访问存储体的情况下,优先级别高的用户具有先访问的权利。在优先级访问方式中,每一个用户在访问存储体时,首先要提出申请,优先级控制电路则按照事先规定好的优先级顺序进行仲裁,以便裁定当前存储体操作的周期归谁使用,以及产生相应的地址、数据的门控信号和其他信号。显然,这个优先级控制电路具有对用户申请信号的查询、保持、响应及撤销的功能,其工作的基本思想是:先把各申请信号暂存起来且规定一个标准,即规定在暂存信号中何种电平表示申请状态,如“1”状态表示用户有效申请。设定一个周期查询脉冲,定期查询所有用户的申请信号,再根据优先级的规定来确定当前使用存储体的用户并对该用户产生出相应的申请响应信号,同时清除由该用户建立的被确认过的申请状态,及撤销被确认过的申请;对于那些需要连续申请使用存储体的用户,要给出每次被响应的标记信号,而其余没有被响应的用户,其申请状态予以保留,由下一次进行仲裁,以此来完成存储体使用权的裁定。

查询脉冲的周期时间就是帧存的一个操作周期的时间,在时间数值上要大于所用存储芯片标定的最小操作周期时间。早期的图像处理系统选用的查询周期为400ns。

帧存的用户一般有3个:A/D、D/A和计算机。考虑到DRAM芯片的刷新也要占用帧存的操作周期,所以我们把刷新也作为一个用户,这样就有4个帧存的用户了。要设计帧存的优先级控制电路,就必须了解那些使用帧存的用户的具体特点。在这些用户之中,计算机访问帧存一般是以单点随机方式来进行,在PC ISA总线中其访问帧存的速率一般在1μs/pixel左右。A/D、D/A访问帧存,一般是按电视扫描的规律,一行一行地进行存取,PAL制行周期为64μs,即64μs要存取一行数据;或者相同行的相邻几点(如四相方式的行相邻4点)并行地进行存取。刷新,是DRAM(或VRAM)芯片需要的操作,每一种这样的存储芯片,生产厂家都会给出该芯片的刷新周期时间,如TC524258BZ型的VRAM芯片,厂家给出的刷新周期时间是:512刷新周期/8ms。刷新是按行进行的,一个刷新周期刷新一行,TC524258BZ是一个512×512×4bit的VRAM芯片,共有512行,按照厂家的规定,整个存储芯片刷新完一遍需要8ms的时间,如果满足这一要求,该芯片存储的内容一定不会丢失,也就能起到它作为存储体的作用了。

在图像处理系统中,帧存主要采用两种方法刷新,即分散刷新和行集中刷新。

定义4.2.1 存储体分散刷新

在存储芯片所规范的刷新周期的全部时间内,均匀地进行刷新操作,并满足存储芯片刷新周期规范的要求。存储芯片的这种刷新方式称为存储芯片的分散刷新。

定义4.2.2 帧存行集中刷新

在存储芯片所规范的刷新周期的局部时间内,集中地进行刷新操作,并满足存储芯片刷新周期规范的要求,存储芯片的这种刷新方式称为存储芯片的集中刷新。

采用存储芯片的分散刷新方式进行刷新,就需要我们按厂家给定的参数推算出最低的分散刷新的刷新速率。这个最低的刷新速率记作Rr_min,单位为μs/line。其中,line是指存储芯片的行,如厂家给出的刷新周期时间是N刷新周期/Kms,一个刷新周期对应刷新的一行,则

例4.2 TC524258BZ是512×512×4bit的VRAM芯片,刷新周期时间是512刷新周期/8ms,用该芯片来构成帧存,系统采用分散刷新,试求存储芯片最低的刷新速率Rr_min

解:把厂家给定的参数代入式(4.2.1)得

Rr_min=(8/512)×1000≈15.6(μs/line)

从例4.2可以看出,使用TC524258BZ芯片,刷新速率不应低于15.6μs/line的最低刷新速率。确定了最低的刷新速率以后,就可以产生符合刷新要求的刷新申请信号了。形成这种信号也有两种方法:一种方法是自行产生,设计相应的硬件来产生刷新申请信号;另一种方法是借助于微机的刷新信号,以该信号作为存储芯片刷新的申请信号送到存储体优先级控制电路。因为微机的内存由DRAM芯片构成,也需要进行刷新,而且刷新时序安排得较有富裕,完全能满足一般DRAM芯片的刷新要求。

采用帧存行集中刷新方式进行刷新,常常是采用电视行集中刷新,是指在每一个电视行中进行满足要求的集中刷新。这里的电视行和存储体的行在概念上不一样,这里是指电视扫描行,它有确定的时间定义,如在PAL制里,一行为64μs;而存储体的行是指存储体芯片的物理地址,在帧存进行A/D写入或D/A读出操作时,存储体的行地址可以和帧存的行地址一一对应,但一般DRAM芯片内部设有刷新行计数器,其给出的刷新行地址不是视频行地址。要实现这种行集中刷新,就需要按厂家给定的参数推算出在每一电视行里进行最少的刷新次数。如厂家给出的刷新周期时间为N个刷新周期/Kms,图像处理系统的行周期时间为TH,单位为μs,设行集中刷新方式中在每一电视行内最低的刷新行数为Mmin,根据式(4.2.1),则

式中,Rr_min为分散平均刷新方式中最低的刷新速率。

例4.3 TC524258BZ是512×512×4bit的VRAM芯片,刷新周期时间为512刷新周期/8ms,用该芯片来构成帧存,系统采用行集中刷新方式,TH=64μs,试求在每一电视行内最低的刷新次数Mmin

解:根据例4.4计算的结果,得

Rr_min≈15.6μs/line

TH/Rr_min=64/15.6=4.1(line)

根据式(4.2.2)得Mmin=5,即在64μs内至少要在刷新5行,换句话说,64μs内至少要进行5次刷新操作。

现在再来讨论在优先级访问方式下的具体电路。图4.2.1给出了一种优先级控制电路。

图4.2.1 分散刷新方式的四用户优先级控制电路

图4.2.1采用的刷新方式是分散刷新方式,而且是借助于微机的刷新信号来进行刷新的。帧存的用户有4个:A/D、D/A、计算机和刷新,其中申请信号分别为ADR、DAR;CPR和RER;IC1、IC2是用户状态寄存器,由双D触发器芯片构成。用户状态寄存器输出信号为“高”,则表示该用户申请使用帧存,查询脉冲DCK的周期为400ns;IC3为查询状态寄存器,使用四D触发器芯片;IC4为用户优先级控制器,使用可编程逻辑芯片。IC4的输出信号/ADF、/CPF、/DAF和/REF分别是A/D、计算机、D/A和刷新申请的响应信号,低电平有效。要对用户进行仲裁,就要确定4个用户的优先级顺序,这里我们确定的优先级顺序为计算机、A/D、D/A、刷新。根据这一规定,得到IC4芯片的逻辑方程。

令输入变量:I1=ADR;

I2=CPR;

I3=DAR;

I4=RER;

令输出变量:O1=/ADF;

O2=/CPF;

O3=/DAF;

O4=/REF;

逻辑方程式:/CPF=CPR;

/ADF=/CPR*ADR;

/DAF=/CPR*/ADR*DAR;

/REF=/CPR*/ADR*/DAR*RER;

从图4.2.1可以看出,各申请信号是一个脉冲信号,靠其上升沿来建立申请状态,IC1、IC2具有申请信号的建立、保持及撤销功能,IC3则定期查询IC1、IC2的状态,在查询脉冲DCK的上升沿时把各用户申请信号的状态锁存起来,并保证在该查询周期里不发生变化;IC4则根据事先的优先级规定进行总线仲裁,从而产生所选中的一个用户的响应信号。从上面的逻辑方程式也可以看出,每个查询周期最多只能产生出一个选中的响应信号。响应信号不仅去清除各自的申请状态,而且还要送去作为该用户的数据、地址的选通信号。在实际应用中,IC4还会输出一些其他信号,如存储体操作的分类信号,即把用户的操作归纳为常规读、常规写、刷新等类别,再送到时序发生器,以便产生所选中用户的相应帧存操作时序。

图4.2.1里采用的刷新方式是分散刷新方式,图4.2.2给出了行集中刷新方式的四用户优先级控制电路。

图4.2.2 行集中刷新方式的四用户优先级控制电路

图4.2.2所示的四用户优先级控制电路和图4.2.1所示的四用户优先级控制电路之间的区别在于刷新电路上。在图4.2.2所示的四用户优先级控制电路中,刷新电路采用了行集中刷新方式,例4.2计算的结果说明,在64μs内至少要在刷新5行,即在64μs内至少要进行5次刷新操作,为了便于实现,这个电路确定了在一个电视扫描行中刷新存储体8行的刷新速率。在行同步/HS为下跳沿时,经反相器后送到IC2的2CK端,建立起刷新申请的状态,因为刷新的优先级最低,只有其他用户都不申请时才能进行刷新操作,当用户优先级控制器响应刷新操作时,则输出一个RECK脉冲,作为刷新计数器的CK脉冲。IC0是刷新计数器,当计数器计数到“8”时,QD端则产生一个上升沿,此信号经反相器加至IC2的2R端,使IC2的2Q端为零,从而撤销了这一扫描行的刷新申请状态,在这一扫描行里累计刷新了8行存储体,满足了存储芯片的刷新要求。

我们知道,如果DRAM芯片刷新速率低于标称刷新频率,则芯片工作不正常;如果高于标称刷新频率过多,则功耗增大。例4.2计算的结果要求在64μs内至少要刷新5行,将图4.2.2所示的电路稍加改变即就可以实现这一指标。具体的做法是将刷新计数器IC0的QA、QB、QC端连到用户优先级控制器IC4上。IC4将根据IC0的QA、QB、QC表示的刷新5行的状态而给出一个刷新结束信号。电路的具体改动,这里不再赘述。

采用行集中刷新方式进行刷新,可以合理地安排各用户访问帧存的时间,具体内容将在后面描述。

虽然我们解决了多用户访问帧存的优先级控制问题,但是仍然没有解决图像显示时读帧存和计算机访问帧存时读写帧存所存在的并发性的矛盾。为此,我们提出了一种用于帧存管理的多周期嵌套的优先级访问方式。

定义4.2.3 存储体多周期嵌套访问

在一个确定的周期时间Tτ中,包含N个独立的存储体读写操作周期(非页面操作方式且N为正整数,N≥2),在其中任何一个存储体读操作周期的时间内,能够读出N个用户中的任何一个用户在Tτ时间内所需要读出的全部存储体数据;或将N个用户中的任何一个用户在Tτ时间内将所需要写入的数据全部写入存储体。存储体的这种大周期包含多个读操作周期或包括多个写操作周期的访问称为多周期嵌套访问。

针对确定的N,可以直接称为N周期嵌套。在多周期嵌套的周期时间内,同时访问存储体的用户个数M应满足

在实际设计中,一般选择M=N

优先级控制电路按照多周期嵌套的周期时间对存储体用户的申请信号进行查询,当两个或两个以上的用户同时申请存储体的读写操作时,应当按预先规定的优先级顺序进行仲裁,由此确定使用当前存储体读写操作周期的用户,被允许的用户则进行读写存储体的操作,优先级控制电路并撤销该用户的申请。在该次存储体操作周期内,读出用户所需的存储体数据,或将用户的数据写入帧存。而未被响应的用户则按预先规定的优先级顺序,顺延到下一个存储体读写操作周期给予重新仲裁,直至完成在该嵌套周期内全部用户对存储体的读写操作。

针对实时显示的需要设计帧存的嵌套周期,其关键在于在一个帧存读操作周期内能够读出帧存的满足正常显示所需要的图像数据。帧存的一个读写操作周期时间为TAC。在Tτ时间内包含有帧存的N个读写操作周期,则

显然,对于帧存嵌套周期,总有N≥2。

式(4.2.4)给出了嵌套周期时间Tτ和帧存的一个读写操作周期时间TAC的关系,并不是说Tτ越大越好,显然Tτ与用户的个数以及各用户的数据传输速率有关。设用户的个数为4,TCADTCDATCPU分别为A/D、D/A和计算机的数据传输的周期时间,TCRE为刷新的周期时间,令

显然,TCTACTτ≥2TAC

PC在IAS总线的传输方式下,一般TCPU≥1μs。A/D和D/A的数据传输速率均取为100ns。帧存刷新速率设定为15.6μs。TC=100ns。如果取TAC=400ns,那么Tτ=800ns,为两周期嵌套。根据优先级控制的多周期嵌套的定义,要满足实时显示的要求,在800ns时间内需从帧存中读出8点数据。参照图4.1.5所示的电路,采用并行交叉存取技术,在一个读周期中把帧存中8个水平相邻的像素读出来。当然,电路的规模更大,但对于大规模逻辑阵列芯片来讲,这点资源开销真是微不足道。如果在帧存使用VRAM芯片的情况下,D/A读出帧存一行的图像数据只花一个存储体的读传输周期时间,那么TCDA=64μs,电路设计会更加简单。

在设计帧存电路时,应以用户并发数的数量来确定嵌套周期,以每个用户存取数据的多少来确定并行每周期存取的数据量,以最快的用户确定每周期存取的最大数据量。

在设计帧存电路时,也应合理地安排各个用户访问帧存的时间,以做到负载均衡。首先要根据用户的特点加以分类。我们注意到A/D图像写入帧存的操作并不是一种周期性的操作,常常是只写入一帧图像,即便写入连续的多帧图像也是有限的,这样我们可以特殊地对待A/D申请。一种考虑是A/D访问帧存时微机不访问帧存,在A/D访问帧存的一帧时间(如40ms)内,D/A所需要的显示图像数据可以不从帧存里读出而直接使用A/D送来的数据,这样,在视频正程的时间段,A/D、D/A只作为一个用户,包括计算机访问帧存在内,也只有两个用户:计算机和D/A。采用行集中刷新方式进行刷新,我们把DRAM芯片的刷新安排在行消隐期间,在视频逆程的时间段,此时没有A/D和D/A的访问,在这期间,如果计算机要访问帧存,也只有两个用户:计算机和刷新。从上面的安排中可以看出,计算机可以随时访问帧存,其数据传输速率很高。这样,仅仅采用两周期嵌套,各用户就可以高效地访问图像帧存了。图4.2.3给出了视频正程的两周期嵌套的波形。图中,DCK为查询脉冲,周期时间设为400ns,N=2,为两周期嵌套。计算机和D/A两个用户同时申请使用帧存,其申请信号分别为CPR和DAR,在Tτ时间内的第一个周期里,按照优先级的规定,帧存先响应计算机的申请,于是给出了计算机的允许信号/CPF;而在在Tτ时间内的第二个周期里,再响应D/A的申请,给出D/A的允许信号/DAF,由此完成了一个嵌套周期的操作。

图4.2.3 可变的两周期嵌套

同理,在视频逆程的时间段,也得到类似的两周期嵌套的波形,这里不再赘述。

为了简化帧存的外围电路,选用VRAM芯片来构成帧存进而构造一个单帧双通道存储体,以此来说明这些控制信号。图4.2.4给出了这样的一个单帧双通道存储体及其外围电路框图。

在图4.2.4中,A/D和D/A都使用VRAM芯片的SAM端口,只有计算机访问帧存时使用VRAM芯片的DRAM端口,CA0~CA17是计算机访问帧存的地址,A0~A17是视频地址,一般情况下A0~A8恒为零,这是因为VRAM芯片的传输操作是以一行一行地进行的,列首址常常是零,视频地址是A/D、D/A共用的,三态门Ⅰ输出的计算机行地址线和三态门Ⅱ输出的视频行地址线连在一起,三态门Ⅰ输出的计算机列地址线和三态门Ⅱ输出的视频列地址线连在一起,由二选一选择器进行行列地址切换。设计时特别要注意二选一选择器的选择信号/ASL的时间关系,这个信号可以用加到存储芯片的/RAS再经过两级门延迟来产生。/TEF是传输申请的允许信号,/CPF、/ADF是计算机和A/D访问的允许信号,这些允许信号分别去作为相应的地址驱动器和数据驱动器的输出使能。从图4.2.4中可以看出,使用VRAM芯片的这种帧存的外围电路结构很简单,显然这是一种高效的结构。当然,应用DRAM芯片,采用并行交叉存取技术和可变的两周期嵌套的优先级控制技术,也很容易实现多用户的高效管理。

图4.2.4 一个单帧双通道存储体及其外围电路框图

在4.2.1节分时控制的论述中提到,计算机访问帧存的时间被限制在场消隐期间的时间段,即计算机在20ms时间中的1.6ms才能访问帧存。当我们采用两周期嵌套的优先级控制电路时,把计算机访问帧存的效率从8%提高到100%。当计算机以100%的效率访问帧存时,图像显示十分稳定、刷新也正确,由此带来帧存工作稳定。显然,多周期嵌套的优先级控制方式,有效地解决了帧存的总线竞争问题,在实际系统的应用上,进步是非常明显的。

值得指出的是,多周期嵌套技术包括了并行交叉存取技术、优先级控制技术。在嵌套周期时间Tτ内,包含有N个帧存操作周期,也就是包含有N个查询脉冲,这段时间可以容纳N个用户访问帧存。其意义在于为多用户系统提供了一种有效的解决方案,不仅适应图像帧存的设计,也可在其他的一些复杂多用户系统中发挥重要作用。