【具体实施方式】
下面参照附图结合实施例对本发明作进一步的说明。
一种滚筒特效显示控制的系统,如图1所示,包括CPU和存储有图像原始数据的存储单元,所述CPU和存储单元经总线与配置寄存器连接,所述的配置寄存器为总线读取单元和地址计算单元提供配置信息,所述的配置信息包括:滚筒起始坐标(x和y值)、实取(实际需取)图像的尺寸(高度和宽度)、原始图像的尺寸(高度和宽度)、原始图像的起始地址、实取图像的起始地址、总线突发传输的长度;所述地址计算单元计算每次传输图像原始数据的起始地址,并将得到的起始地址传输给总线读取单元;所述的总线读取单元负责通过总线从存储单元读取图像数据,并将图像数据传送给图像缓存单元;所述图像缓存单元与屏幕显示控制器连接;所述的屏幕显示控制器的数据输出端与屏幕连接。
如图2所示,所述地址计算单元由模式判断单元、水平模式计算单元、垂直模式计算单元、四角模式计算单元以及选通器组成,所述模式判断单元用于判断此次图像数据的滚筒显示模式;所述水平模式计算单元用于计算水平模式下的图像数据的起始地址;所述垂直模式计算单元用于计算垂直模式下的图像数据的起始地址;所述四角模式计算单元用于计算四角模式下的图像数据的起始地址;所述模式判断单元根据当前的模式在水平模式计算单元、垂直模式计算单元、四角模式计算单元中选择对应的模式计算单元计算出的起始地址,再由所述选通器传输给总线读取单元。
其中所述模式判断单元通过所述配置信息来判断将要进行的滚筒模式:
首先判断是否会出现滚筒和滚筒的模式,如果实取图像宽度+滚筒起始坐标x>原始图像宽度,则出现水平滚筒,反之水平方向不会出现滚筒;
如果实取图像高度+滚筒起始坐标y>原始图像高度,则出现垂直滚筒,反之垂直方向不会出现滚筒;
如果以上两个条件同时满足,则是四角的滚筒。
其中存储单元负责存储原始的图像数据;
CPU负责系统整体的时序控制和对寄存器进行配置;
配置寄存器负责通知地址计算单元本次读取任务的所有配置信息,如滚筒起始坐标,实取图像的尺寸,原始图像的尺寸等等,用户使用CPU通过总线对寄存器中的值进行配置;
总线读取单元负责通过总线从存储单元读取图像数据到图像缓存,通过用户的配置可以使用各种长度的突发(burst)传输;
地址计算单元负责每次传输的实取图像起始地址的计算;
图像缓存单元负责存储将要显示到屏幕的图像;
屏幕显示控制器负责放大缩小缓存中的图像尺寸使之适应屏幕的尺寸并且按照屏幕需要的格式和时序传输图像数据到屏幕输出。
本发明系统操作流程如下:
1、当用户希望使用滚筒特效时,CPU通过总线配置寄存器,首先将滚筒开关位打开,然后再配置滚筒起始坐标,实取图像的尺寸,原始图像的尺寸等必须的信息;
2、在配置完毕后,总线读取单元开始从存储单元取数,取数的地址由地址计算单元提供;
3、总线读取单元从存储单元取出图像数据后存放到图像缓存单元;
4、屏幕显示控制器从已经准备好数据的图像缓存单元中将图像数据读出,根据对应屏幕所需要的时序和尺寸将处理好的图像数据按照屏幕要求的格式输出到屏幕显示。
下面结合一具体实施例对本发明作进一步说明。
图3为本发明正常显示模式下滚筒特效显示的原理示意图,其配置寄存器为总线读取单元和地址计算单元提供配置信息中,实取图像的宽高比实际图像(原始图像)的宽高小就可以实现部分原始图像的滚筒效果。
图4为本发明水平滚筒模式下滚筒特效显示的原理示意图,在水平模式下计算图像数据的起始地址并传输:首先计算先传输第一部分的实取图像宽度即第一部分实取图像水平方向有效点数,假设原始图像宽度为8,高度为10,滚筒起始坐标x为5,则所述有效点数=原始图像宽度-滚筒起始坐标x=8-5=3;
从滚筒起始点为(5,3),则从横坐标5开始传输,在传输的图像像素到达所述第一部分实取图像水平方向有效点数时(即从坐标5开始传输有效点3,此时传输点到横坐标的8位置),开始传输第二部分实取图像的数据,即从原始图像中本行的第一个图像像素(0,0)开始传输;
在总线读取单元开始传输第二部分实取图像的数据时,一直读取该行,直到该行的总传输宽度到达实取图像宽度3,然后开始传输下一实取图像行;
假设实取图像有20行组成,实取图像的高为4,则图像每行的地址为0.2,则下一实取图像行的起始地址=滚筒起始点+原始图像一行的地址=3+0.2=3.2,按所述下一实取图像行的起始地址3.2开始传输下一行,如此一行一行的循环,直到所有行传输完毕;
所述在水平模式下计算图像数据的起始地址并传输的过程中:在总线突发传输时,传输的图像像素到达第一部分实取图像水平方向有效点数时,突发传输还没有结束,则通知所述图像缓存单元不再接收数据,直到下一个突发传输启动开始传输第二部分实取图像数据时,再开始接收数据。
图5为本发明垂直滚筒模式下滚筒特效显示的原理示意图,在垂直模式下计算图像数据的起始地址并传输:首先计算先传输第一部分的实取图像高度即第一部分实取图像垂直方向有效点数,假设原始图像宽度为8,高度为10,滚筒起始坐标x为4,y为7,所述有效点数=原始图像高度-滚筒起始坐标y=10-7=3;
从滚筒起始点(4,7),则从横坐标4开始传输,直到该行的总传输宽度到达所述第一部分实取图像宽度,即该行传输结束;
接着开始传输下一行,不断重复,直到已传输行计数器的值到达所述第一部分实取图像垂直方向有效点数3(即整个图像的的高度3全部传输完毕);
此时下一行的起始地址=原始图像起始地址+滚筒起始坐标x=0+4=4,开始第二部分实取图像第一行的传输;
当总的已传输行数等于实取图像高度3时,传输结束;
图6为本发明四角滚筒模式下滚筒特效显示的原理示意图,在四角模式下计算图像数据的起始地址并传输:首先计算先传输第一部分的实取图像宽度即第一部分实取图像水平方向有效点数,假设原始图像宽度为8,高度为10,滚筒起始坐标x为5,y为7,所述实取图像水平方向有效点数=原始图像宽度-滚筒起始坐标x=8-5=3;计算先传输第一部分的实取图像高度即第一部分实取图像垂直方向有效点数,所述实取图像垂直方向有效点数=原始图像高度-滚筒起始坐标y=10-7=3;
从滚筒起始点(5,7)则从横坐标5开始传输,在传输的图像像素到达所述第一部分实取图像水平方向有效点数3后,开始传输第二部分实取图像数据,即从原始图像中本行的第一个图像像素(0,0)开始传输;
在总线读取单元开始传输第二部分实取图像时,一直读取该行,直到该行的总传输宽度到达所述第一部分的实取图像宽度3后,开始传输下一实取图像行;
如此不断重复,直到已传输行计数器的值到达所述第一部分实取图像垂直方向有效点数3(即整个图像的的高度3全部传输完毕);
此时下一行的起始地址=原始图像起始地址+滚筒起始坐标x=0+5=5,开始第三部分实取图像数据的第一行的传输;
下一行从第三部分实取图像的起始点开始传输,在传输的图像像素到达第三部分实取图像水平方向有效点数3后,所述第三部分实取图像水平方向有效点数等于所述第一部分实取图像水平方向有效点数3,开始传输第四部分实取图像的数据,即从原始图像中的第一个图像像素开始传输(0,0),传输起始地址变为原始图像起始地址(即二者是重合的);
如此每行循环,直到总的已传输行数等于所述第一部分的实取图像高度3,即传输结束。
上述图中,原始图像是存储在存储单元的原始图像数据,实取图像是总线读取单元实际需要从原始图像中读取出来的要显示在屏幕上的那部分图像;
如果配置实取图像的宽高和实际图像的宽高一样就可以实现整个原始图像的滚筒效果,如果配置实取图像的宽高比实际图像的宽高小就可以实现部分原始图像的滚筒效果;
值得一提的是:在突发(burst)模式传输时,如何解决突发传输过程中传输的图像数据已经跨越边界的问题:
在传输数据到数据缓存单元时,总线读取单元会产生一个数据有效信号来通知图像缓存单元数据的有效性。
当在突发(burst)模式传输时,如果突发传输过程中传输的数据已经跨越边界,但是突发传输又不能停止时,必须等到本次突发传输进行完毕。此时在边界上最后一个有效的数据读取完毕之后,总线读取单元就将数据有效信号降低,来通知图像缓存单元不要将本次突发传输剩余的部分存入缓存中,直到下一次突发传输开始后再将数据有效信号恢复。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。