具有裁入或裁出功能的区域式位区域转移方法与装置的制作方法

文档序号:2613656阅读:262来源:国知局
专利名称:具有裁入或裁出功能的区域式位区域转移方法与装置的制作方法
技术领域
本发明是有关于一种具有裁入(clipping-in)或裁出(clipping-out)的区域式bitblt(位区域转移,bit block transfer)方法与装置。
背景技术
在二维式影像显示中,bitblt(位区域转移,bit block transfer)与裁剪(clipping)属于必要功能。位区域转移是指,将存储器某一地址的数据移动至另一地址。如图1a所示,存储器110的来源地址src_ba的数据要利用bitblt功能而移动至目标地址dst_ba。图1b显示在执行bitblt功能后显示于屏幕120的影像。一般来说,bitblt功能所用到的参数包括来源地址,目标地址,以及影像宽度与影像高度。
甚至,有时可能要连同bitblt功能一起执行裁剪功能。裁剪功能可能是裁入或裁出。参考图2a,其显示在来源地址src_ba的来源bitblt区域(region),在目标地址dst_ba的目标bitblt区域,以及在目标bitblt区域内的裁剪窗口。图2b显示执行bitblt功能后的结果。裁入代表要显示落于裁剪窗口内的目标bitblt区域。裁出代表要显示裁剪窗口外部的目标bitblt区域。图2c显示同时执行bitblt功能与裁入功能(下面称为“裁入bitblt(bitblt with clipping-in)”)所得的影像;图2d显示同时执行bitblt功能与裁出功能(下面称为“裁出bitblt(bitblt with clipping-out)”)所得的影像。
在现有技术中,在裁入bitblt或裁出bitblt中,必需检查来源bitblt区域内的各点(即各像素)以决定是否要移动与显示。此现有技术称为逐点式裁入bitblt或裁出bitblt。
在裁入bitblt中,必需检查来源bitblt区域内的各点是否位于目标bitblt区域内的裁剪窗口的内部。如果是,要bitblt此点,否则,不要bitblt此点。
相似地,在裁出bitblt中,必需检查来源bitblt区域内的各点是否位于目标bitblt区域内的裁剪窗口的外部。如果是,要bitblt此点,否则,不要bitblt此点。
然而,此种逐点式裁入bitblt或裁出bitblt的效能不佳且较复杂。
因而,本发明提供一种区域式裁入bitblt或裁出bitblt的方法与装置,其复杂度低且效能较佳,也不会额外增加电路面积。

发明内容
有鉴于此,本发明提供一种具有裁入或裁出功能的区域性位区域转移(bitblt)装置与方法。在一第一来源地址的一来源bitblt区域内的数据会被选择性移动至在一第一目标地址的一目标bitblt区域内。如果要移动上述来源bitblt区域内的一个或多个区域时,产生一个或多个bitblt指令。暂时储存上述bitblt指令于多个缓冲存储器内。将各bitblt指令译码成一第二来源地址,一第二目标地址,一高度参数与一宽度参数。根据上述第二来源地址,上述第二目标地址,上述高度参数与上述宽度参数将待移动区域移动至上述目标bitblt区域。
当执行裁入bitblt时,落于来源bitblt区域内的各区域要被移动,如果有的话;而且待移动区域的数量可为0或1。当执行裁出bitblt时,落于来源bitblt区域外部的各区域要被移动,如果有的话;而且待移动区域的数量可为0、1、2、3或4。
为使本发明的上述和其它目的、特征和优点能更明显易懂,下文特举本发明的较佳实施例,并结合附图详细说明如下。


图1a显示对存储器数据进行bitblt功能。
图1b显示在执行完bitblt功能所得的影像。
图2a显示来源bitblt区域,目标bitblt区域与裁剪窗口。
图2b显示在执行完bitblt功能所得的影像。
图2c显示在执行完裁入bitblt功能所得的影像。
图2d显示在执行完裁出bitblt功能所得的影像。
图3a至3z,以及图3a-1至3j-1显示目标bitblt区域与裁剪窗口间的位置关系。
图4显示在执行裁入bitblt过程中,位置码,待移动区域数量与待移动区域坐标。
图5显示在执行裁出bitblt过程中,位置码,待移动区域数量与待移动区域坐标。
图6显示本发明第一实施例的裁入bitblt与裁出bitblt的电路方块图。
图7显示第一实施例的处理器如何产生bitblt指令的示意图。
图8显示第一实施例的指令引擎的示意图。
图9显示第一实施例的有限状态机器(FSM)的示意图。
图10显示第二实施例的有限状态机器(FSM)的示意图。
图11显示第二实施例的示意图。
附图符号说明110存储器120屏幕610处理器620图形单元630指令引擎640区域性位区域转移(bitblt)单元801、823触发器811~817缓冲存储器821、831多任务器825加法器827比较器841指令译码单元具体实施方式
为了使本发明的内容更为明了,以下特举实施例作为本发明确实能够据以实施的范例。
为克服现有技术的缺点,在此提出具有裁入功能与裁出功能的区域式bitblt。当需要执行裁入bitblt时,要移动位于裁剪窗口内的来源bitblt区域内的各区域,如果有的话;而待移动区域的数量可能是0或1。当需要执行裁出bitblt时,要移动位于裁剪窗口外部的来源bitblt区域内的各区域,如果有的话;而待移动区域的数量可能是0、1、2、3或4。
在下面描述中,来源bitblt区域、目标bitblt区域、裁剪窗口与待移动区域的形状是矩形,但本发明并不受限于此。为方便描述,各矩形区域由其左上角坐标与右下角坐标代表。裁剪窗口的左上角坐标定为(lt,tp)而其右下角坐标定为(rt,bt)。目标bitblt区域的左上角坐标定为(x0,y0)而其右下角坐标定为(x0+W,y0+H)。W与H代表目标bitblt区域的宽度与高度。
为定义目标bitblt区域与裁剪窗口间的位置关系,在此定义四个位置码B1,B0,A1与A0。位置码的值可为L,M或H。
B1=Llf<x0B1=Mx0≤lf≤x0+WB1=Hx0+W<lfB0=Lrt<x0B0=Mx0≤rt≤x0+WB0=Hx0+W<rtA1=Ltp<y0A1=My0≤tp≤y0+HA1=Hy0+H<tpA0=Lbt<y0A0=My0≤bt≤y0+HA0=Hy0+H<bt请参考图3a至3z,以及图3a-1至3j-1,其显示目标bitlt区域与裁剪窗口间的位置关系。在图3a至3z,以及图3a-1至3j-1中,由实线所框起的区域是目标bitblt区域,而由虚线所框起的区域是裁剪窗口。在图3a至3z,以及图3a-1至3j-1中,当有重迭情况发生时,目标bitblt区域或裁剪窗口的界线可能不会显示出,但目标bitblt区域或裁剪窗口的位置仍可由其左上角坐标与右下角坐标得知。甚至,在图3a至3z,以及图3a-1至3j-1中,虽然显示出目标bitblt区域与裁剪窗口的相对位置,但目标bitblt区域与裁剪窗口的相对大小则不受限于图示。
从图3a至3z,以及图3a-1至3j-1可看出,在裁入bitblt过程中,待移动区域的数量是0或1。以图3a为例,因为目标bitblt区域位于裁剪窗口的外部,所以在裁入bitblt过程中,不需要移动任何区域。以图3h为例,在裁入bitblt过程中,有一个区域需要移动,也就是由坐标(x0,y0)与(rt,bt)所标出的区域。
从图3a至3z,以及图3a-1至3j-1可看出,在裁出bitblt过程中,待移动区域的数量是0、1、2、3或4。以图3o为例,在裁出bitblt过程中,不需要移动任何区域。以图3n为例,在裁出bitblt过程中,有一个区域需要移动,也就是由坐标(rt,y0)与(x0+W,y0+H)所标出的区域。以图3u为例,在裁出bitblt过程中,有两个区域需要移动,也就是由坐标(x0,y0)与(x0+W,tp)所标出的区域,以及由坐标(x0,bt)与(x0+W,y0+H)所标出的区域。以图3j为例,在裁出bitblt过程中,有三个区域需要移动,也就是由坐标(x0,y0)与(lf,bt)所标出的区域,由坐标(rt,y0)与(x0+W,bt)所标出的区域,以及由坐标(x0,bt+1)与(x0+W,y0+H)所标出的区域。以图3v为例,在裁出bitblt过程中,有四个区域需要移动,也就是由坐标(x0,y0)与(x0+W,pt)所标出的区域,由坐标(x0,tp+1)与(lf,bt)所标出的区域,由坐标(rt,tp+1)与(x0+W,bt)所标出的区域,以及由坐标(x0,bt+1)与(x0+W,y0+H)所标出的区域。
参考图4以了解显示在执行裁入bitblt过程中,位置码,待移动区域数量与待移动区域的左上角坐标与右下角坐标。在图4中,数量参数clip_num代表待移动区域数量,其可能是1或0。b_lf与b_tp代表待移动区域的左上角坐标;而b_rt与b_bt代表待移动区域的右下角坐标。要注意,当没有待移动区域时,b_lf、b_tp、b_rt与b_bt的值乃是设为0。
参考图5以了解显示在执行裁出bitblt过程中,位置码,待移动区域数量与待移动区域的左上角坐标与右下角坐标。在图4中,数量参数clip_num代表待移动区域数量,其可能是4、3、2、1或0。b_lf与b_tp代表待移动区域的左上角坐标;而b_rt与b_bt代表待移动区域的右下角坐标。要注意,当没有待移动区域时,b_lf、b_tp、b_rt与b_bt的值乃是设为0。
下面将描述本发明第一实施例与第二实施例。
请参考图6,其显示本发明第一实施例的裁入bitblt与裁出bitblt的电路方块图。本发明第一实施例的电路包括处理器610,图形单元620,指令引擎630与bitblt单元640。在图6中,处理器610比如是计算机中的中央处理器(CPU)。处理器610用于产生指令并将指令送至指令引擎630。一旦接收到处理器6l0所送出的指令,指令引擎630对指令进行多任务,暂存与译码,并将所得到的参数送至bitblt单元640。bitblt单元640根据由指令引擎630所送出的参数进行裁入bitlbt或裁出bitlbt。之后,图形单元620将进行裁入bitlbt或裁出bitlbt后所得的影像显示于屏幕(如个人计算机的监视器)上。
下面将解释处理器610如何产生指令。从上述描述中可得知,当进行裁入bitlbt时,待移动区域的最大数量是1;而在进行裁出bitlbt,待移动区域的最大数量是4。因而,在第一实施例中,指令引擎630的深度定为4(也就是其包括4个缓冲存储器),万一有四个区域需要进行bitblt时,指令引擎630可储存4个指令。各指令对应于一个待移动区域。
请参考图7,其显示第一实施例的处理器如何产生bitblt指令的示意图。在图7中,参数lf与tp代表裁剪窗口的左上角坐标;参数rt与bt代表裁剪窗口的右下角坐标。参数x0与y0代表目标bitblt区域的左上角坐标;参数W与H代表目标bitblt区域的宽度与高度。裁剪类型参数CLIP代表要进行裁入或裁出,比如,当裁剪类型参数CLIP为逻辑1时,代表要进行裁入;反之则代表要进行裁出。参数dst_ba代表目标地址;参数src_ba代表来源地址。
位置码B1,B0,A1与A0根据参数lp,tp,rt,bt,x0,y0,H与W间的关系而决定。因为上述描述可得知如何决定位置码B1,B0,A1与A0,于此不再重述。在决定好位置码B1,B0,A1与A0后,根据从图4的查表(如果进行裁入bitlbt时)或图5的查表(如果进行裁出bitlbt时)可得知待移动区域的左上角坐标与右下角坐标。在图7中,b_lf、b_tp、b_rt与b_bt的意义相似于图4与图5。因为可能有高达4个待移动区域,可使用4组b_lf、b_tp、b_rt与b_bt,也就是b_lf(0)~b_lf(3)、b_tp(0)~b_tp(3)、b_rt(0)~b_rt(3)与b_bt(0)~b_bt(3),来分别代表待移动区域的坐标。
接着,参数x(i),y(i),W(i)与H(i)可根据b_lf(i)、b_tp(i)、b_rt(i)与b_bt(i)(i为0,1,2或3)而决定。x(i)与y(i)代表第i个待移动区域的左上角坐标;W(i)与H(i)代表第i个待移动区域的宽度与高度。
x(i)b_lf(i)y(i)=b_tp(i)W(i)=b_rt(i)-b_lf(i)H(i)=b_bt(i)-b_tp(i)(1)此外,第i个待移动区域的来源地址src_ba(i)仍然为src_ba,而第i个待移动区域的目标地址dst_ba(i)则可用下列公式表示dst_ba(i)=x(i)+y(i)*pitch+dst_ba(2)其中参数pitch代表来源/目标数据的宽度,其以来源/目标数据的每条扫描线的位数为单元。
因此,可将第i个待移动区域的参数x(i),y(i),W(i)与H(i),来源地址src_ba(i),目标地址dst_ba(i)与方向参数dir编码成第i个bitblt指令,其中方向参数dir用于避免在裁入bitblt或裁出bitblt时的错误覆写。
此外,从图4或图5的查表可看出,参数clip_num代表待移动区域的数量,其值介于0~4之间。如果参数clip_num的值不为0,则代表需要进行裁入bitblt或裁出bitblt,所以致能信号EN将被致能。否则,如果参数clip_num的值为0,则代表不需要进行裁入bitblt或裁出bitblt,所以致能信号EN将被失能。
从上述可知,处理器可将参数br,rt,tp,lf,x0,y0,H,W,CLPI,dst_ba,src_ba与pitch编码成多个(最多4个,最少0个)bitblt指令,数量参数clip_num与致能信号EN,接着将的送至指令引擎与bitblt单元。
图8显示第一实施例的指令引擎的示意图。如图8所示,指令引擎630包括触发器801,缓冲存储器811~817,多任务器821,触发器823,加法器825,比较器827,多任务器831以及指令译码单元841。指令引擎630接收由处理器610所送出的致能信号EN、bitblt指令COM与参数clip_num。
触发器801接收致能信号EN,以当成控制信号cmode_ctrl。此控制信号cmode_ctrl用于控制指令引擎630是否需要运作。
缓冲存储器811~817接收由处理器610所送出bitblt指令COM。各bitblt指令COM储存于缓冲存储器811~81之一。缓冲存储器811~817的规格已如上所述。
多任务器821由bitblt单元640所回传的信号bitblt_done所控制。一旦bitblt单元640完成一个bitblt指令,其会回传一个有效的信号bitblt_done。当出现有效的信号bitblt_done时,多任务器821输出参数cmode_pc-1;反之,多任务器821则输出参数clip_num。多任务器821的输出信号被设成参数cmode_pc。
触发器823用于暂存多任务器821的输出参数cmode_pc,并将之输出至加法器825,比较器827与多任务器831。
加法器825将参数cmode_pc减1,并将所得的值当成参数cmode_pc-1回传至多任务器821。利用加法器825的操作,当有数个(多于1个)bitblt指令且bitblt单元完成某一个指令时,多任务器831会选择存于另一个缓冲存储器内的bitblt指令。亦即,将数量参数cmode_pc减去1,以选择另一缓冲存储器。
比较器827比较参数cmode_pc与一参考值(比如0)。如果参数cmode_pc的值不为0,则输出一有效的致能信号bitblt_enable以致能该bitblt单元640。当参数cmode_pc的值不为0,代表并非所有的bitblt指令都已被执行。如果参数cmode_pc的值为0,则输出一无效的致能信号bitblt_enable以失能该bitblt单元640。当参数cmode_pc的值为0,代表所有的bitblt指令都已被执行。
多任务器831根据参数cmode_pc而选择存于缓冲存储器811~817之一的bitblt指令。比如,当参数cmode_pc为4时,可能可以选择缓冲存储器817;其余可依此类推。
指令译码单元841将多任务器831所传来的bitblt指令译码成参数dir,dst_ba,src_ba,height与weight,并将之送至bitblt单元640。
依上述看来,根据图8的架构,指令引擎630将处理器610所送出的致能信号EN,bitblt指令COM与数量参数clip_num处理成bitblt致能信号bitblt_enable以及参数dir,dst_ba,src_ba,height与weight,并将之送至bitblt单元640。因此,当bitblt致能信号bitblt_enable为有效时,bitblt单元640可执行bitblt。
图9显示第一实施例的有限状态机器(FSM)的示意图。触发指令引擎,并检查待移动区域的数量(也就是参数clip_num)是否为0。如果是,指令引擎将回至待机状态;否则,指令引擎会主动撷取由处理器所准备好的第一bitblt指令。接着,致能bitblt单元以执行此第一bitblt指令。在bitblt单元执行完此第一bitblt指令后,bitblt单元会回传一结果(图8的信号bitblt_done)至指令引擎。在执行完此第一bitblt指令后,如果更新后参数comde_pc不为0,这代表还有一个或多个bitblt指令要被执行,指令引擎会主动撷取第二bitblt指令。bitblt单元会再度被致能以执行第二bitblt指令。直到指令引擎主动撷取完所有bitblt指令,以及bitblt单元执行完所有bitblt指令后,即已完成裁入bitblt或裁出bitblt功能。在图9中,虚线代表软件组件与硬件组件间的界线,也就是,虽然是由实体处理器来准备指令,处理器并不需要任何准备指令的专用电路,因为处理器的内部功能或新增功能即已足够。然而,在本发明第一实施例中,指令引擎属于专用电路。
比如,在图3v中,在裁出bitblt过程中,有四个待移动区域,也就是由坐标(x0,y0)与(x0+W,pt)所标出的区域,由坐标(x0,tp+1)与(lf,bt)所标出的区域,由坐标(rt,tp+1)与(x0+W,bt)所标出的区域,以及由坐标(x0,bt+1)与(x0+W,y0+H)所标出的区域。所以,执行第一bitblt指令以移动由坐标(x0,y0)与(x0+W,pt)所标出的区域。执行第二bitblt指令以移动由坐标(x0,tp+1)与(lf,bt)所标出的区域。执行第三bitblt指令以移动由坐标(rt,tp+1)与(x0+W,bt)所标出的区域。执行第四bitblt指令以移动由坐标(x0,bt+1)与(x0+W,y0+H)所标出的区域。因此,依序执行这四个bitblt指令可完成裁出bitblt功能。
本发明第二实施例的架构示意图相同或相似于第一实施例的图6。差异处在于,第二实施例的指令引擎以软件方式实施。
图10显示第二实施例的有限状态机器(FSM)的示意图。首先,触发伪指令引擎,并检查待移动区域的量(亦即参数clip_num)的值是否为0。如果为0,伪指令引擎会回复至待机状态;否则,处理器会主动将第一bitblt指令送至伪指令引擎内的某一缓冲存储器,但bitblt指令仍是由处理器所准备。接着,致能bitblt单元以执行第一bitblt指令。在bitblt单元完成第一bitblt指令的执行时,bitblt单元会回传结果至指令引擎。接着,处理器会主动将第二bitblt指令送至伪指令引擎内的另一缓冲存储器。再次致能bitblt单元以执行第二bitblt指令。直到指令引擎接收所有bitblt指令且bitblt单元已执行所有bitblt指令后,即已完成裁入bitblt或裁出bitblt功能。
比如,在图3v中,在裁出bitblt过程中,有四个待移动区域,也就是由坐标(x0,y0)与(x0+W,pt)所标出的区域,由坐标(x0,tp+1)与(lf,bt)所标出的区域,由坐标(rt,tp+1)与(x0+W,bt)所标出的区域,以及由坐标(x0,bt+1)与(x0+W,y0+H)所标出的区域。所以,第一bitblt指令用于移动由坐标(x0,y0)与(x0+W,pt)所标出的区域。第二bitblt指令用于移动由坐标(x0,tp+1)与(lf,bt)所标出的区域。第三bitblt指令用于移动由坐标(rt,tp+1)与(x0+W,bt)所标出的区域。第四bitblt指令用于移动由坐标(x0,bt+1)与(x0+W,y0+H)所标出的区域。因此,可完成裁出bitblt功能。
从图10的下半部可看出,在第二实施例中,指令准备与伪指令引擎是由处理器所执行,也就是,指令准备与伪指令引擎是由处理器的原有或新增功能所执行。然而,bitblt单元是由硬件实现。在图10中,虚线代表软件组件与硬件组件间的界线。
图11显示第二实施例的示意图。bitblt指令由处理器所准备。接着,处理器会轮询bitblt单元。如果bitblt单元有响应的话,则处理器会将所准备好的指令送至伪指令引擎,并告知bitblt单元要接收此bitblt指令。或者,藉由主动送出中断信号至处理器,bitblt单元可要求处理器将所准备好的指令送至伪指令引擎。
接着,读取参数clip_num的值。如果参数clip_num的值为4,bitblt单元会接收某一缓冲存储器(比如,第四缓冲存储器)所存的第四指令。如果参数clip_num的值为3,bitblt单元会接收第三缓冲存储器所存的第三指令。如果参数clip_num的值为2,bitblt单元会接收第二缓冲存储器所存的第二指令。如果参数clip_num的值为1,bitblt单元会接收第一缓冲存储器所存的第一指令。
甚至,伪指令引擎(或处理器)送出参数clip_num与致能信号EN至bitblt单元。因此,bitblt单元可完成bitblt功能。
本发明第一与第二实施例中的处理器亦可命名为指令准备单元。
依此,通过本发明第一与第二实施例的软件与硬件架构,可实现区域式裁入bitblt与裁出bitblt功能。因此,可降低现有技术的逐点式检查法的缺点。
现有逐点式检查法与本发明第一与第二实施例的区域式裁入bitblt与裁出bitblt功能间的比较如下

从上表与实施例描述可得知,现有的逐点式裁入bitblt或裁出bitblt功能只能以硬件方式实现,但本发明实施例可用硬件或软件实现之。第一实施例的性能略差于第二实施例的原因在于,当处理器轮询bitblt单元或bitblt单元中断处理器时,可能会浪费某些时钟周期。
虽然本发明已以较佳实施例披露如上,然其并非用以限定本发明,本领域的技术人员在不脱离本发明的精神和范围的前提下可作若干的更动与润饰,因此本发明的保护范围以本发明的权利要求为准。
权利要求
1.一种具有裁入或裁出功能的区域性位区域转移装置,在一第一来源地址的一来源位区域转移区域内的数据被选择性移动至在一第一目标地址的一目标位区域转移区域内,上述装置包括一指令准备单元,如果在上述来源位区域转移区域内的一个或多个区域要被移动时,上述指令指备单元产生一个或多个位区域转移指令;一指令引擎,包括多个缓冲存储器以储存上述位区域转移指令,将各位区域转移指令译码成一第二来源地址,一第二目标地址,一高度参数与一宽度参数;以及一位区域转移单元,根据上述第二来源地址,上述第二目标地址,上述高度参数与上述宽度参数将待移动区域移动至上述目标位区域转移区域。
2.如权利要求1所述的装置,其中上述指令准备单元根据一裁剪窗口与上述目标位区域转移区域间的一位置关系而决定第一至第四位置码。
3.如权利要求2所述的装置,其中上述指令准备单元根据上述第一至第四位置码及一裁剪类型,决定一第一数量参数与上述待移动区域的坐标参数,上述第一数量参数代表上述待移动区域的数量。
4.如权利要求3所述的装置,其中如果上述来源位区域转移区域的至少一区域需要位区域转移时,上述指令准备单元产生一指令致能信号。
5.如权利要求4所述的装置,其中上述指令引擎还包括一第一触发器,暂存上述指令致能信号。
6.如权利要求4所述的装置,其中上述指令引擎还包括一第一多任务器,由上述位区域转移单元所回传的一结果信号所控制,以选择上述第一数量参数或一第二数量参数为一第三数量参数;一第二触发器,暂存与输出上述第三数量参数;一加法器,减少上述第三数量参数以产生上述第二数量参数,并将上述第二数量参数回馈至上述第一多任务器;以及一比较器,比较上述第三数量参数与一参考值以决定是否上述来源位区域转移区域的至少一区域需要位区域转移。
7.如权利要求6所述的装置,其中上述指令引擎还包括一第二多任务器,耦合至上述缓冲存储器,根据上述第三数量参数以选择上述缓冲存储器的一所存的上述位区域转移指令之一。
8.如权利要求7所述的装置,其中上述指令引擎还包括一指令译码单元,接收并译码由上述第二多任务器所选择的上述位区域转移指令,并将一译码结果送至上述位区域转移单元。
9.如权利要求1所述的装置,其中上述缓冲存储器的数量等于位区域转移指令的数量上限。
10.一种具有裁入或裁出功能的区域性位区域转移方法,在一第一来源地址的一来源位区域转移区域内的数据会选择性移动至在一第一目标地址的一目标位区域转移区域内,上述方法包括如果在上述来源位区域转移区域内的一个或多个区域要被移动时,产生一个或多个位区域转移指令;储存上述位区域转移指令;将各位区域转移指令译码成一第二来源地址,一第二目标地址,一高度参数与一宽度参数;以及根据上述第二来源地址,上述第二目标地址,上述高度参数与上述宽度参数将待移动区域移动至上述目标位区域转移区域。
11.如权利要求10所述的方法,其中产生上述位区域转移指令的上述步骤还包括根据一裁剪窗口与上述目标位区域转移区域间的一位置关系而决定第一至第四位置码;根据上述第一至第四位置码及一裁剪类型,决定一数量参数与上述待移动区域的坐标参数,上述数量参数代表上述待移动区域的数量;以及位区域转移指令。
12.如权利要求11所述的方法,其中如果上述来源位区域转移区域的至少一区域需要位区域转移时,致能上述位区域转移步骤。
13.如权利要求10所述的方法,其中上述解码步骤还包括(a)将上述位区域转移指令加载至复数缓冲存储器中;(b)依序选择一位区域转移指令;以及(c)从上述位区域转移指令取出上述第二来源地址,上述第二目标地址,上述高度参数与上述宽度参数。
14.如权利要求13所述的方法,其中上述缓冲存储器的数量足够储存上述位区域转移指令的数量上限。
全文摘要
本发明披露一种具有裁入或裁出功能的区域性位区域转移(bitblt)装置与方法。在一第一来源地址的一来源bitblt区域内的数据会被选择性移动至在一第一目标地址的一目标bitblt区域内。如果要移动上述来源bitblt区域内的一个或多个区域时,产生一个或多个bitblt指令。暂时储存上述bitblt指令于多个缓冲存储器内。将各bitblt指令译码成一第二来源地址,一第二目标地址,一高度参数与一宽度参数。根据上述第二来源地址,上述第二目标地址,上述高度参数与上述宽度参数将待移动区域移动至上述目标bitblt区域。
文档编号G09G5/393GK101086836SQ20061015439
公开日2007年12月12日 申请日期2006年9月25日 优先权日2006年6月6日
发明者蔡周良, 蔡伟鹏, 王宗仁 申请人:奇景光电股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1