CN101236740B - 一种显示数据的传输方法及装置 - Google Patents
一种显示数据的传输方法及装置 Download PDFInfo
- Publication number
- CN101236740B CN101236740B CN2008100821648A CN200810082164A CN101236740B CN 101236740 B CN101236740 B CN 101236740B CN 2008100821648 A CN2008100821648 A CN 2008100821648A CN 200810082164 A CN200810082164 A CN 200810082164A CN 101236740 B CN101236740 B CN 101236740B
- Authority
- CN
- China
- Prior art keywords
- video data
- storage
- data
- address
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
本发明实施例公开提供了一种显示数据的传输方法及装置。其中,本发明实施例提供的一种显示数据的传输方法包括:依次读取每个子带的显示数据,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据;按列方向将突发读取的显示数据进行旋转存储;按行方向读取所述旋转存储的显示数据,并将所述读取的显示数据发送给显示设备进行显示。本发明实施例与现有技术相比,具有可降低访问显示内存的负载和功耗,并提高显示帧的分辨率的优点。
Description
技术领域
本发明涉及通信领域,尤其涉及一种显示数据的传输方法及装置。
背景技术
目前很多移动终端都可支持横屏和竖屏两种显示方式,且两种显示方式之间可以无缝切换。一般选定其中一种为默认显示方式,而另一种为非默认方式,在默认方式下显示图像不需要进行90度/270度旋转处理,而在非默认方式下(横屏或者竖屏)旋转引擎需要对图像进行90度/270度旋转后送给液晶显示屏(LCD)显示。
图像的旋转显示一般分为两类,非实时旋转和实时旋转。非实时旋转是旋转引擎(可以是由软件或者硬件实现)先对显示内存中的每帧图像进行旋转处理后写回显示内存,显示控制器(Display Controller)按正常的逐行扫描顺序从显示内存中读取已经过旋转的图像送往LCD显示,非实时旋转引擎的处理速率必须至少能满足显示内存的更新帧率,以Video(视频)播放为例一般为15帧/秒~30帧/秒。实时旋转是把旋转引擎集成到Display Controller中,DisplayController在把图像读入的同时进行旋转处理,然后把旋转后的图像送往LCD,对于这种方式而言,旋转引擎的处理速率必须满足LCD的显示帧率(一般60帧/秒)。
图1.a和图1.b是现有技术一采用实时旋转(图1.a为90度,图1.b为270度旋转),片内集成静态随机访问存储器(SRAM,Static Random Access Memory)作为显示内存使用实现旋转显示的方案。如图1.a和图1.b所示,对显示数据以正常的逐行扫描顺序写入显示内存(图中虚线1表示写入显示内存的轨迹),DisplayController按逐列扫描Single(单模)传输方式的顺序从显示内存中读出(虚线2表示从Display Controller中读出数据的扫描轨迹),比如,Display Controller可采用局部总线对显示内存进行读访问。
现有技术一中,显示内存至少要能存放完整的一帧显示图像,如果在Video播放应用场景下需要支持Flip(翻转)操作,那么需要缓存2~3帧,因此现有技术一的该技术方案中作为显示内存的存储器容量大,占用片上的面积大,成本高。以显示绘图阵列(VGA,Video Graphic Array)片源分辨率,像素16bpp为例,片内SRAM显示内存至少需要600Kbyte缓存一帧。
现有技术二的功能实现与现有技术一类似,不同之处在于,采用片外的动态RAM,比如,同步动态随机访问存储器(SDRAM,Synchronous DynamicRandom Access Memory)或双倍率同步动态随机访问存储器(DDR SDRAM,Double Data Rata Synchronous Dynamic Random Access Memory)代替片内的SRAM作为显示内存,该方案与现有技术一相比节省了片内SRAM的面积,进而降低了芯片成本,但该技术方案需要片外动态随机访问存储器(DRAM,DynamicRandom Access Memory)作为显示内存,旋转读入时Display Controller对显示内存按列方向进行扫描,每次以Single传输从DRAM读入一个像素,读地址按行偏移量line_offset(一行像素所占的地址空间)递增。假设四通道同时访问DRAM的任意块(Bank)任意行,则一次Single读操作平均延迟为35~40个总线时钟周期,那么总线时钟频率为133MHz的条件下,显示帧分辨率的典型值仅为常用的图像标准化格式(QCIF,Quarter common intermediate format)。另外,由于每次读地址几乎都要跨DRAM的ROW(行),需要进行激活行(Activate Row)的操作,因此耗电比较大。综上所示现有技术二的访问DRAM的负载重,功耗大,显示分辨率低。
发明内容
本发明实施例所要解决的技术问题在于,提供一种显示数据的传输方法及装置。降低访问显示内存的负载和功耗,提高显示帧的分辨率。
为了解决上述技术问题,本发明实施例提供了一种显示数据的传输方法,该方法包括:
依次读取每个子带的显示数据,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据;
并按列方向将突发读取的显示数据进行旋转存储;
按行方向读取所述旋转存储的显示数据,并将所述读取的显示数据发送给显示设备进行显示。
相应的,本发明实施例还提供了一种显示数据的传输装置,该装置包括:
数据获取单元,用于依次读取每个子带的显示数据,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据;
存储器,用于按列方向将突发读取的显示数据进行旋转存储;
读控制器,用于按行方向读取所述旋转存储的显示数据,并将所述读取的显示数据发送给显示设备进行显示。
本发明实施例通过依次读取每个子带的显示数据,其中,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据后按列方向进行存储,并且,每次以一个子带为扫描对象,降低了访问显示内存的负载和功耗,突发方式的传输方式降低了时钟延时,提高显示帧的分辨率。
附图说明
图1.a是现有技术一采用实时90度旋转,SRAM作为显示内存实现旋转显示的方案的原理示意图;
图1.b是现有技术一采用实时270度旋转,SRAM作为显示内存实现旋转显示的方案的原理示意图;
图2.a是本发明的显示数据的传输装置的第一实施例的结构组成示意图;
图2.b是本发明的显示数据的传输装置的第二实施例的结构组成示意图;
图3是本发明的显示数据的传输方法的一个流程示意图;
图4.a和图4.b分别是本发明采用实时90度旋转和270度旋转实现旋转显示的方案的第一实施例的原理示意图;
图4.c是本发明的DMA通道的状态转移机制的一个实施例示意图;
图5.a和图5.b分别是本发明采用实时90度旋转和270度旋转实现旋转显示的方案的第二实施例的原理示意图;
图6.a-图6.d分别是本发明采用实时90度旋转和270度旋转实现旋转显示的方案的第三实施例的原理示意图;
图7.a-图7.d分别是本发明采用实时90度旋转和270度旋转实现旋转显示的方案的第四实施例的原理示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
图2.a是本发明的显示数据的传输装置的一个实施例的结构组成示意图;具体实现中,该显示数据的传输装置可以是一个显示控制器(Display Controller),且支持数据以RGB格式进行存储。如图2.a所示,本实施例的显示数据的传输装置包括数据获取单元1、存储器2、读控制器3,其中,
所述数据获取单元1,用于通过Z字扫描方式结合突发传输方式(Burst)依次读取显示内存中存储的多个子带(Stripe)的显示数据;具体实现中,该数据获取单元1可为直接内存访问通道(Direct Memory Access)。显示数据在显示内存中采用RGB格式进行存储。
所述存储器2,用于按列方向将突发读取的显示数据进行旋转存储;具体实现中,所述存储器2可为SRAM充当的Rotation Buffer,显示数据在RotationBuffer中采用RGB格式进行存储。具体实现中,存储器2可按90度旋转或者270度旋转法则对显示数据进行旋转存储,由于采用Z字扫描和突发传输方式以子带为单位读取显示内存中的显示数据,因此存储器2的容量满足至少可以缓存一个子带。
所述读控制器3,用于按行方向读取所述旋转存储的显示数据,并将所述读取的显示数据发送给显示设备(比如,LCD显示屏)进行显示。
仍参考图2.a,所述数据获取单元1可以进一步包括第一判断单元10、获取单元11以及存储控制单元12,其中,所述第一判断单元10用于判断所述存储器2是否已满;所述获取单元11用于在接收到所述第一判断单元10输出的否定判断结果时,通过Z字扫描方式结合突发传输方式读取显示内存中存储的显示数据;所述存储控制单元12用于采用地址连续递增的方式按列方向将突发读取的显示数据旋转存储到所述存储器2中或采用地址间隔的方式按列方向将突发读取的显示数据旋转存储到所述存储器2中。进一步,在采用地址间隔的存储方式时,所述存储控制单元12包括第二判断单元和存储指示单元,所述第二判定单元用于判断所述存储器是否存储完一个子带的显示数据;所述存储指示单元用于在所述第二判断单元输出肯定的判断时,控制进一步将数据存储到所述存储器中前一次存储地址加1后,对存储所述数据的存储器的深度取模后获得的地址处;否则,将数据存储到所述存储器中前一次存储地址加上一个子带数据的高度后,对存储所述数据的存储器的深度取模后获得的地址处,所述地址为按照像素单位计算出的逻辑地址。
仍参考图2.a,所述读控制器3可以进一步包括第三判断单元30、读取单元31以及读取控制单元32,其中,所述第三判断单元30用于判断所述存储器是否为空;所述读取单元31用于在接收到所述第三判断单元30输出的否定判断结果时,按行方向读取所述旋转存储的显示数据;所述读取控制单元32用于控制所述读取单元31采用地址连续地址的方式按行方向读取所述旋转存储的显示数据或者采用地址间隔的方式按行方向读取所述旋转存储的显示数据。
进一步在采用地址间隔的读取方式时,所述读取控制单元32包括第四判断单元和读取指示单元,其中所述第四判断单元用于判断所述读控制器是否读取完一个子带的显示数据;所述读取指示单元,用于在所述第四判断单元输出肯定的判断结果时,控制所述读控制器读取前一次读地址加1后,对存储所述数据的存储器的深度取模后获得的地址;否则,继续判断前一次读取地址对应的存储单元中所有像素是否读取完,如果判断为是,控制所述读控制器读取前一次读取地址加上一个子带数据的宽度后,对存储所述数据的存储器的深度取模后获得的地址,所述地址为按照像素单位计算出的逻辑地址。
具体实现中,可以采用空/满标志来标识所述存储器2是否已满或已空,当满标志有效的时候,标识所述存储器2已满,当空标志有效时,标识所述存储器为空。
本实施例中,Z字扫描的扫描方式可为:首先,通过突发传输方式(Burst)依次读取第一子带的每行显示数据;然后,依次读取后续子带的显示数据,针对每一子带,通过突发传输方式(Burst)依次读取所述子带的每行显示数据。具体的,Z字扫描每次以一个子带的一行数据为扫描对象,并采用外部存储器(采用片外的动态RAM,比如,SDRAM、DDR SDRAM等)作为显示内存,占用少量的SRAM作为存储器(比如,Display Controller的Rotation Buffer)旋转存储读取的数据。由于显示内存外置,可减小片内存储器的面积,且采用Burst访问方式对显示内存中的显示数据(图像或文字)进行读取和旋转存储,大大节省了总线负载,降低了功耗,且与现有方案二采用Single访问方式相比,可支持更大的显示帧分辨率。
图2.b是本发明的显示数据的传输装置的第二实施例的结构组成示意图;如图2.b所示,本实施例的显示数据传输装置与图2.a中第一实施例的不同之处在于,显示数据在显示内存及存储器中可通过RGB格式、YUV422 packet格式、YUV422 planner格式、YUV420 planner格式或者YUV420 semi planner格式进行存储,因此,本实施例的显示数据传输装置与第一实施例相比,扩展了数据获取单元的功能,如图2.b所示,本实施例的数据获取单元扩展了数据分解单元,用于根据显示数据在显示内存中的存储格式,控制所述获取单元通过Z字扫描结合突发传输方式分别读取显示数据在所述存储格式下的多个数据分量;所述存储器对所述多个数据分量分开进行旋转存储。比如,当数据包括Y、U和V三个分量时,Y、U和V三个分量可分别存储(采用YUV422 planner格式或YUV420 planner格式),也可合并存储(YUV422 packet格式),也可为U和V分量合并存储,而Y分量与它们分开存储(YUV420 semi planner格式)。则,所述数据分解单元,则可根据所述数据的存储格式控制所述获取单元分别读取所述存储格式下的各数据分量。相应的,本实施例的显示数据传输装置与第一实施例相比,扩展了读控制器的功能,如图2.b所示,本实施例的读控制器扩展了次数控制单元,用于根据所述显示数据在所述存储器中的存储格式,控制所述读取单元按行单次或按行多次分别按行方向读取所述旋转存储的显示数据的各数据分量。比如,当数据在所述存储器中按RGB格式存储时,所述次数控制单元控制所述读取单元按行单次读取所述旋转存储的显示数据,当数据在所述存储器中按Y、U和V三个分量可分别存储(采用YUV422 planner格式或YUV420 planner格式)时,对于Y分量,所述次数控制单元控制所述读取单元按行单次读取所述旋转存储的显示数据,对于U和V分量,按行两次读取所述旋转存储的显示数据。相应的,本实施例与第一实施例相比,还包括一数据转换单元,用于将所述读控制器读取的数据格式(采用YUV422 planner格式、YUV420 planner格式、YUV422 packet格式或YUV420 semi planner格式)转换为RGB格式,并将所述RGB格式数据发送给显示设备进行显示。
本实施例中,Z字扫描的扫描方式可为:首先,通过突发传输方式(Burst)依次读取第一子带的每行显示数据;然后,依次读取后续子带的显示数据,针对每一子带,通过突发传输方式(Burst)依次读取所述子带的每行显示数据。具体的,Z字扫描每次以一个子带的一行数据为扫描对象,并采用外部存储器(采用片外的动态RAM,比如,SDRAM、DDR SDRAM等)作为显示内存,占用少量的SRAM作为存储器(比如,Display Controller的Rotation Buffer)旋转存储读取的数据。由于显示内存外置,可减小片内存储器的面积,且采用Burst访问方式对显示内存中的显示数据(图像或文字)进行读取和旋转存储,大大节省了总线负载,降低了功耗,且与现有方案二采用Single访问方式相比,可支持更大的显示帧分辨率。
图3是本发明的显示数据的传输方法的一个流程示意图;如图3所示,本方法包括:
步骤S100,通过Z字扫描结合突发传输方式依次读取显示内存中存储的多个子带的显示数据;Z字扫描的扫描方式可为:首先,通过突发传输方式(Burst)依次读取第一子带的每行显示数据;然后,依次读取后续子带的显示数据,针对每一子带,通过突发传输方式(Burst)依次读取所述子带的每行显示数据。具体实现中,显示数据在显示内存中可通过RGB格式、YUV422 packet格式、YUV422 planner格式、YUV420 planner格式或者YUV420 semi planner格式进行存储,针对不同的存储格式,可采用不同的存储方式,比如包括Y、U和V三个分量进行数据存储时,Y、U和V三个分量可分别存储(采用YUV422 planner格式或YUV420 planner格式),也可合并存储(YUV422 packet格式),也可为U和V分量合并存储,而Y分量与它们分开存储(YUV420 semi planner格式)。因此,在扫描显示内存中的显示数据时,可根据所述显示数据的存储格式及存储方式对所述数据进行整体扫描或对各分量进行分别扫描,在传输所述扫描获得的显示数据时,也可将所述显示数据进行整体传输或对各分量采用独立通道,分别进行传输。进一步,在步骤S100通过Z字扫描结合突发传输方式依次读取显示内存中存储的多个子带的显示数据步骤中,在每次通过Z字扫描结合突发传输方式读取显示内存中存储的显示数据前,还可以包括如下步骤:
判断用于旋转存储所述显示数据的存储器是否已满,如果判断为否,则通过Z子扫描结合突发传输方式读取显示内存中存储的显示数据,并按列方向将所述突发读取的显示数据进行旋转存储;即,当用于旋转存储所述显示数据的存储器没有满时,才被允许发起新一次的Burst传输,这样可防止数据在用于旋转存储所述显示数据的存储器处发生丢失或错误,提高了数据传输的可靠性。具体的,可采用满标志来标识所述存储器是否已满,当满标志有效时,标识所述存储器已满。具体实现中,判定用于旋转存储所述显示数据的存储器已满的条件可设定为:所述存储器的当前存储指针等于当前读取指针,且存储指针反转标志等于读取指针反转标志。并且,为保证满标志的使用可靠性,当读控制器从用于旋转存储所述显示数据的存储器中读取一个子带的最后一行时,将所述存储器的读取更新为当前读取的列号;否则,读取指针保持不变。
另外,如前所示,显示数据在显示内存及存储器中可通过RGB格式、YUV422 packet格式、YUV422 planner格式、YUV420 planner格式或者YUV420semi planner格式进行存储,因此在步骤S100通过Z字扫描结合突发传输方式依次读取显示内存中存储的多个子带的显示数据步骤中,可根据所述显示数据在显示内部中的存储格式,通过Z字扫描结合突发传输方式分别读取显示数据在所述存储格式下的多个数据分量。比如,当Y、U和V三个分量分别存储(采用YUV422 planner格式或YUV420 planner格式)时,步骤S100中通过Z字扫描结合突发传输方式分别读取所述Y、U和V三个分量;当U和V分量合并存储,而Y分量与它们分开存储(YUV420 semi planner格式)时,步骤S100中分别读取Y分量和UV分量。
步骤S101,按列方向将突发读取的显示数据进行旋转存储;可按90度旋转或者270度旋转法则对显示数据进行旋转存储,由于采用Z字扫描和突发方式以子带为单位读取显示内存中的显示数据,因此用于存储突发读取的显示数据的存储器的容量满足至少可以缓存一个子带即可。具体实现中,显示数据在用于旋转存储读取的显示数据的存储器中可通过RGB格式、YUV422 packet格式、YUV422 planner格式、YUV420 planner格式或者YUV420 semi planner格式进行存储,因此在步骤S101,可按列方向将Z字扫描结合突发传输方式分别读取的各数据分量分开进行旋转存储;比如,步骤S100中通过Z字扫描结合突发传输方式分别读取所述Y、U和V三个分量时,在步骤S101则可将所述Y、U和V三个分量分开存储到三块存储单元中。
步骤S102,按行方向读取所述旋转存储的显示数据,并将所述读取的显示数据发送给显示设备进行显示,在步骤S102,在按行方向读取所述旋转存储的显示数据的步骤之前还可以包括:判断用于旋转存储所述显示数据的存储器是否为空,如果判断为否,则按行方向读取所述旋转存储的显示数据。即,当存储器非空时,读控制器才可从用于旋转存储显示数据的存储器中获取新的像素,这样可防止数据在读控制器处发生丢失或错误,提高了数据传输的可靠性。具体的,可采用空标志来标识所述存储器是否为空,当空标志有效时,标识所述存储器已空。具体实现中,判定用于旋转存储所述显示数据的存储器为空的条件可为:所述存储器的当前存储指针等于当前读取指针,且存储指针反转标志不等于读取指针反转标志;或者所述存储器的当前读取行号等于零,且当所述存储器为非满时,当前存储指针等于当前读取的列号。并且,为保证空标志的使用可靠性,当读控制器从用于旋转存储所述显示数据的存储器中读取一个子带的最后一行时,将所述存储器的读取更新为当前读取的列号;否则,读取指针保持不变。具体的,当数据在显示内存中采用YUV422 packet格式、YUV422planner格式、YUV420 planner格式以及YUV420 semi planner格式等进行存储时,步骤S102具体可包括:根据所述显示数据在用于旋转存储所述显示数据的存储器中的存储格式,按行单次或按行多次分别读取所述显示数据的各数据分量,比如,当显示数据在用于旋转存储所述显示数据的存储器中采用YUV420planner格式存储时,可将显示数据的Y、U、V三个分量分别进行读取,在按行方向读取所述YUV420 planner格式的数据时,Y分量采用单行单次扫描,U、V分量采用单行两次扫描。
进一步,当数据在显示内存中采用YUV422 packet格式、YUV422 planner格式、YUV420 planner格式以及YUV420 semi planner格式等进行存储时,从读控制器输出的数据可先转换为RGB格式后,然后发送给显示设备进行显示,因此本实施例的方法在按行方向读取所述旋转存储的显示数据(数据在显示内存中采用YUV422 packet格式、YUV422 planner格式、YUV420 planner格式以及YUV420 semi planner格式)后,还包括:将所述读取的显示数据的数据格式转换为RGB格式,并将所述RGB格式数据发送给显示设备进行显示。
另外,具体实现中,可以在按列方向进行数据旋转存储时,采用地址连续递增的方式按列存储所述数据;以及在按行方向读取旋转存储的数据时,按照扫描顺序,采用地址间隔的方式按行方向读取所述数据;或在按列方向进行数据旋转存储时,按照扫描顺序,采用地址间隔的方式按列存储所述数据;以及在按行方向读取旋转存储的数据时,采用地址连续递增的方式按行读取所述数据。
其中,所述的在按行方向读取旋转存储的数据时,按照扫描顺序,采用地址间隔的方式按行方向读取所述数据的步骤具体可包括:判断是否读取完一个子带的显示数据,如果判断为是,进一步读取前一次读地址加1后,对存储所述数据的存储器的深度取模后获得的地址;否则,继续判断前一次读取地址对应的存储单元中所有像素是否读取完,如果判断为是,读取前一次读取地址加上一个子带数据的宽度后,对存储所述数据的存储器的深度取模后获得的地址,所述地址为按照像素单位计算出的逻辑地址;其中,所述的在按列方向进行数据旋转存储时,按照扫描顺序,采用地址间隔的方式按列存储所述数据的步骤具体包括:判断是否存储完一个子带的显示数据,如果判断为是,进一步将数据存储到前一次存储地址加1后,对存储所述数据的存储器的深度取模后获得的地址;否则,将数据存储到前一次存储地址加上一个子带数据的高度后,对存储所述数据的存储器的深度取模后获得的地址,所述地址为按照像素单位计算出的逻辑地址。
本方法Z字扫描每次以一个子带的一行数据为扫描对象,并采用外部存储器(采用片外的动态RAM,比如,SDRAM、DDR SDRAM等)作为显示内存,占用少量的SRAM作为存储器(比如,Display Controller的Rotation Buffer)旋转存储读取的数据。由于显示内存外置,可减小片内存储器的面积,且采用Burst访问方式对显示内存中的显示数据(图像或文字)进行读取和旋转存储,大大节省了总线负载,降低了功耗,且与现有方案二采用Single访问方式相比,可支持更大的显示帧分辨率。
下面以显示数据的传输装置为Display Controller为例结合具体实施例对本发明进行详细说明。
图4.a和图4.b分别是本发明采用实时90度旋转和270度旋转实现旋转显示的方案的第一实施例的原理示意图;如图4.a和图4.b所示,本实施例中,图像显示帧在Rotation Buffer中以RGB格式存储,显示帧以Display ControllerDMA通道的Burst长度划分成多个子带(Stripe),在本实施例中,定义一轮Z字扫描完成一个Stripe的数据的读取,设图像高度为img_h(以像素为单位),DMA通道的Burst长度为burst_1,那么一轮Z字扫描(图4.a和图4.b中虚线4.0为Z字扫描的扫描轨迹)将进行img_h次Burst传输,每次Burst读入的像素按Y方向以列的形式写入(存入)Display Contoller的Rotation Buffer(用于旋转存储读取的图像数据的缓存器,虚线4.1为按列方式写入Display Contoller的轨迹),Rotation Buffer的大小至少可以缓存一个Stripe,但不限于一个Stripe也不限于Stripe大小的整数倍,其容量只要满足不小于Stripe即可。Display Controller的读控制器按X方向以行扫描的形式(虚线4.2为从Display Controller中读出数据的扫描轨迹)依次从Rotation Buffer中读出像素送往LCD显示,一次X方向的行扫描宽度就是img_h,一个Stripe需要进行burs_1次行扫描。在本实施例中,Burst长度,Rotation Buffer的地址和深度都以像素为单位,因此在32bit存储系统而采用RGB16bit存储格式时,实际物理地址是该以像素为单位的地址左移一位得到的,而移出的位为0时表示该像素存于32bit存储单元的低16bit,为1时表示存于高16bit。
本实施例中,DMA通道对显示内存按4.a和图4.b所示的Z字扫描顺序从显示内存中读取图像数据,然后按Y方向以列的形式写入Rotation Buffer,它的状态转移如图4.c所示。当系统复位(reset)后,DMA通道进入空闲(IDLE)状态,在每帧的帧起始时刻转入Burst读状态(BURST_RD),对Stripe1的第一行像素进行读入并写入Rotation Buffer中,然后转入下一行(NEXT_LINE)状态,将DMA Burst读起始地址指向Stripe1的下一行,在Rotation Buffer非满的条件下跳回BURST_RD进行下一行的Burst读操作。当DMA完成对某个Stripe的Z字扫描后,转入更新Stripe(NEW_STRIPE)状态,将DMA Burst读起始地址调整到下一个Stripe的起始点,当整帧图像扫描完毕后转回IDLE状态,等待下一帧的起始时刻。具体实现中,最后一个Stripe的宽度可能与其他Stripe不同,设Stripe1的宽度为stripe_cmw,图像的宽度为img_w,那么最后一个Stripe的宽度为stripe_lastw:如果img_w mod stripe1_cmw==0,那么stripe_lastw=stripe1_cmw,否则stripe_lastw=img_w mod stripe1_cmw,即DMA通道对一帧最后一个Stripe进行Z字扫描时取Burst长度stripe_lastw。
如图4.a和图4.b所示,DMA通道按Y方向以列的形式依次将每次Burst读入的像素写入Rotation Buffer,读控制器按X方向以行扫描的形式从RotationBuffer中读出像素。其中,所述按Y方向写入以及按X方向读取的方式可以采用如下两种不同的方式:
方式一:写入时地址连续递增,读出时地址按扫描顺序间隔。其中,读出时地址间隔的方式具体包括:判断是否读取完Stripe的显示数据,如果判断为是,读取前一次读地址加1后,对存储所述数据的存储器的深度取模后获得的地址;否则,继续判断前一次读取地址对应的存储单元中所有像素是否读取完,如果判断为是,读取前一次读取地址加上Stripe数据的宽度后,对存储所述数据的存储器的深度取模后获得的地址,本实施例中数据在32bit存储系统采用RGB16bit存储格式,因此,读出时按行扫描一次即可。
以下面的例子进一步说明本实施例中读出地址的间隔方式:
设读扫描的当前行号为rd_line,当前列号为rd_column,当前读地址为raddr_cur,前一次读地址为raddr_pre,Ratation Buffer的深度为buf_dep,当读控制器每完成一次完整的Stripe的读扫描,rd_line归零。每完成一次完整的Rotation Buffer的读扫描,rd_column归零,如前所述,定义一轮Z字扫描完成一个Stripe的数据的读取,设图像高度为img_h(以像素为单位),DMA通道的Burst长度为burst_1,那么一轮Z字扫描(图4.a和图4.b中虚线4.0为Z字扫描的扫描轨迹)将进行img_h次Burst传输,一次X方向的行扫描宽度就是img_h,一个Stripe需要进行burst_1次行扫描,那么:
如果rd_line==burst_1,且rd_column==img_h:
则raddr_cur=(raddr_pre+1)mod buf_dep;
否则:raddr_cur=(raddr_pre+burst_1)mod buf_dep;
方式二:读出时地址连续递增,写入时地址按扫描顺序间隔,
其中,写入时地址间隔的方式具体包括:
判断是否存储完Stripe的显示数据,如果判断为是,将数据存储到前一次存储地址加1后,对存储所述数据的存储器的深度取模后获得的地址;否则,将数据存储到前一次存储地址加上Stripe数据的高度后,对存储所述数据的存储器的深度取模后获得的地址,所述地址为按照像素单位计算出的逻辑地址。
以下面的例子说明进一步说明本实施例写入地址的间隔方式:
设写扫描的当前行号为wr_line,当前列号为wr_column,当前写地址为waddr_cur,前一次写地址为waddr_pre,Rotation Buffer的深度为buf_dep,当DMA每完成一次Burst的写扫描,wr_line归零。每完成一次完整的RotationBuffer的写扫描,wr_column归零,那么:
如果wr_line==burst_1,且wr_column==img_h:
则waddr_cur=(waddr_pre+1)mod buf_dep;
否则:waddr_cur=(waddr_pre+img_h)mod buf_dep。
本实施例中,Rotation Buffer的满标志用于控制DMA通道进行Burst读入的恰当时刻,即满标志无效的时候DMA通道才被允许发起新一次Burst传输。因此,本实施例在每一次通过Z字扫描结合突发传输方式读取显示内存中存储的显示数据时,需判断所述Rotation Buffer的满标识是否有效。Rotation Buffer的空标志用于通知读控制器进行读操作的恰当时刻,即空标志无效时读控制器才可从Rotation Buffer中取得新的像素,因此,本实施例在读控制器按X方向读取所述Rotation Buffer中存储的数据时,需判断所述Rotation Buffer的空标志是否有效。设wptr_toggle为Rotation Buffer的存储(写)指针反转标志,它的复位值为0,为保证所述满标志的长期可靠性,每当DMA通道按Y方向以列扫描的方式扫完Rotation Buffer的所有像素单元后,wptr_toggle自身取反;rptr_toggle为的Rotation Buffer的读取(读)指针反转标志,它的复位值为1,为保证所述空标志的长期可靠性,每当读控制器按X方向以行扫描的方式扫完Rotation Buffer的所有像素单元后,rptr_toggle自身取反。
另设rptr为读取指针、wptr为存储指针:当rd_line==burst_1,rptr=rd_column,否则rptr保持不变,wptr为当前写扫描的列号。
那么满标志有效的标志如下:
wptr==rptr,并且rptr_toggle==wptr_toggle。
空标志有效的标志如下:
wptr==rptr,并且rptr_toggle!=wptr_toggle,或者
rd_line==0且full==0时,wptr==rd_column
图5.a和图5.b分别是本发明采用实时90度旋转和270度旋转实现旋转显示的方案的第二实施例原理示意图;如图5.a和图5.b所示,本实施例与图4.a及图4.b所示实施例的不同之处是显示帧在Rotation Buffer中以YUV422 Packet格式存储,每相邻两个像素占32bit存储单元。在该存储格式下DMA通道对显示内存的扫描方式和写入Rotation Buffer的扫描方式与图4.a及图4.b所示实施例是一致的,不同之处是读控制器的扫描顺序以及Rotation Buffer的空满标志的产生。
在本实施例中Burst长度,Rotation Buffer的地址和深度都以32bit存储单元为单位。如图5.a和图5.b所示,DMA通道按Y方向以列的形式依次将每次Burst读入的像素写入Rotation Buffer,读控制器按X方向以行扫描的形式从RotationBuffer中读出像素,与图4.a及图4.b所示实施例的不同之处是,在图4.a及图4.b所示实施例中每次行扫描仅扫描一次,而本实施例中每次行扫描需要扫描两次,第一次读取32bit存储单元中的第一个像素,第二次读取32bit存储单元中的第二个像素(90度旋转时第一个像素在显示内存中位于第二个像素的后一列,270度旋转时第一个像素在显示内存中位于第二个像素的前一列)。相应的,本实施例中,读写地址的控制可以采用如下两种不同的方式:
方式一:写入时地址连续递增,读出时地址按扫描顺序间隔。其中,读出时地址间隔的方式具体包括:判断是否读取完Stripe的显示数据,如果判断为是,读取前一次读地址加1后,对存储所述数据的存储器的深度取模后获得的地址;否则,继续判断前一次读取地址对应的存储单元中所有像素是否读取完,如果判断为是,读取前一次读取地址加上Stripe数据的宽度后,对存储所述数据的存储器的深度取模后获得的地址,本实施例中数据在32bit存储系统采用RGB16bit存储格式,因此,读出时按行扫描一次即可。
以下面的例子进一步说明本实施例中读出地址的间隔方式:
设读扫描的当前行号为rd_line,当前行扫描的次数为rd_scan_num(rd_scan_num==0表示当前行的第一次扫描,rd_scan_num==1时表示当前行的第二次扫描),当前列号为rd_column,当前读地址为raddr_cur,前一次读地址为raddr_pre,Ratation Buffer的深度为buf_dep,当读控制器每完成一个完整的Stripe的读扫描,rd_line归零。每完成一个完整的Rotation Buffer的读扫描,rd_column归零,那么
如果rd_line==burst_1,且rd_column==img_h/2,rd_scan_num==1:
则raddr_cur=(raddr_pre+1)mod buf_dep
否则:raddr_cur=(raddr_pre+burst_1)mod buf_dep;
方式二:读出时每次行扫描地址连续递增,且每行扫描两次,行于行之间地址也连续。写入时地址按扫描顺序间隔,其中,写入时地址间隔的方式具体包括:
判断是否存储完Stripe的显示数据,如果判断为是,将数据存储到前一次存储地址加1后,对存储所述数据的存储器的深度取模后获得的地址;否则,将数据存储到前一次存储地址加上Stripe数据的高度后,对存储所述数据的存储器的深度取模后获得的地址,所述地址为按照像素单位计算出的逻辑地址。
以下面的例子说明进一步说明本实施例写入地址的间隔方式:
设写扫描的当前行号为wr_line,当前列号为wr_column,当前写地址为waddr_cur,前一次写地址为waddr_pre,Rotation Buffer的深度为buf_dep,当DMA每完成一次Burst的写扫描,wr_line归零。每完成一次完整的RotationBuffer的写扫描,wr_column归零,那么:如果wr_line==burst_1,且wr_column==img_h/2:
则waddr_cur=(waddr_pre+1)mod buf_dep;
否则:waddr_cur=(waddr_pre+img_h/2)mod buf_dep
本实施例中,Rotation Buffer的满标志用于控制DMA通道进行Burst读入的恰当时刻,即满标志无效的时候DMA通道才被允许发起新一次Burst传输。因此,本实施例在每一次通过Z字扫描结合突发传输方式读取显示内存中存储的显示数据时,需判断所述Rotation Buffer的满标识是否有效。Rotation Buffer的空标志用于通知读控制器进行读操作的恰当时刻,即空标志无效时读控制器才可从Rotation Buffer中取得新的像素,因此,本实施例在读控制器按X方向读取所述Rotation Buffer中存储的数据时,需判断所述Rotation Buffer的空标志是否有效。设wptr_toggle的复位值为0,为保证所述满标志的长期可靠性,每当DMA通道按Y方向以列扫描的方式扫完Rotation Buffer的所有单元后,wptr_toggle自身取反;rptr_toggle的复位值为1,为保证所述空标志的长期可靠性,每当读控制器按X方向以行扫描的方式扫完Rotation Buffer的所有单元后,rptr_toggle自身取反。
另设rptr:当rd_line==burst_1,且rd_scan_num==1时,rptr=rd_column,否则rptr保持不变;
那么满标志有效的标志如下:
wptr==rptr,并且rptr_toggle==wptr_toggle。
空标志有效的标志如下:
wptr==rptr,并且rptr_toggle!=wptr_toggle,或者
rd_line==0且full==0时,wptr==rd_column。
图6.a-图6.d分别是本发明采用实时90度旋转和270度旋转实现旋转显示的方案的第三实施例原理示意图;其中,图6.a和图6.b表示显示数据在RotationBuffer中按YUV422 Planar方式存储,图6.c和图6.d表示显示数据在RotationBuffer中按YUV420 Planar方式存储。本实施例与图5.a及图5.b所示实施例的不同之处在于,DMA通道将显示数据写入Rotation Buffer时,将Y,U,V三个分量分开,分别存入三块地址空间(该三块地址空间可以是三块物理SRAM,也可以是在同一块物理SRAM中)。
本实施例中,Burst长度以像素为单位,Rotation Buffer的地址和深度都以8bit存储单元为单位。本实施的Rotation Buffer的写扫描与图4.a及图4.b所示实施例以及图5.a及图5.b所示实施例类似,只是DMA通道需要在写入RotationBuffer时对YUV422 planner或YUV420 planner的Y、U、V分量进行分解,将Y,U,V分量分别写入三块地址空间,在Rotation Buffer按420 Planar方式存储时,DMA通道读入时丢弃偶数行(或奇数行)的UV分量,只把奇数行(或偶数行)的UV分量写入U/V Rotation Buffer。读出时Y分量按X方向进行img_h次行扫描,U,V分量按X方向分别进行img_h/2次行扫描,且对U、V分量的行扫描为每行两次,在Rotation Buffer采用420 Planar方式存储时,行扫描时每个U/V分量被连续读取两次然后扫描指针才指向下一个U/V。
相应的,本实施例中,对于Y、U、V中任一个分量的读写地址的控制可以采用如下两种不同的方式:
方式一:写入时地址连续递增,读出时地址按扫描顺序间隔。其中,读出时地址间隔的方式具体包括:判断是否读取完Stripe的显示数据,如果判断为是,读取前一次读地址加1后,对存储所述数据的存储器的深度取模后获得的地址;否则,继续判断前一次读取地址对应的存储单元中所有像素是否读取完,如果判断为是,读取前一次读取地址加上Stripe数据的宽度后,对存储所述数据的存储器的深度取模后获得的地址,
以下面的例子进一步说明本实施例中读出地址的间隔方式:
Rotation Buffer无论采用422 Planar还是420 Planar存储方式,Y分量的读地址间隔法则与第一实施例一致。U/V分量的间隔法则是:
A)422 Planar存储格式下:
设uv_buf_dep为存储U或V分量Buffer的深度
如果rd_line==burst_1/2,且rd_column==img_h,rd_scan_num==1:
则raddr_cur=(raddr_pre+1)mod buf_dep
否则:raddr_cur=(raddr_pre+burst_1/2)mod buf_dep;
B)420 Planar存储格式下:
设rd_uv_togle在每帧开始时刻复位到0,读控制器每读一次U/V Buffer进行自身取反,
如果rd_line==burst_1/2,且rd_column==img_h/2,rd_scan_num==1,rd_uv_toggle==1:
则raddr_cur=(raddr_pre+1)mod buf_dep
否则:当rd_uv_toggle==1时,raddr_cur=(raddr_pre+burst_1/2)modbuf_dep;
方式二:写入时地址间隔,读出时对于Y分量地址始终连续,对于U/V分量,每次行扫描地址连续递增,且每行被扫描两次,行于行之间地址也连续,其中,写入时地址间隔的方式包括:
判断是否存储完Stripe的显示数据,如果判断为是,将数据存储到前一次存储地址加1后,对存储所述数据的存储器的深度取模后获得的地址;否则,将数据存储到前一次存储地址加上Stripe数据的高度后,对存储所述数据的存储器的深度取模后获得的地址,所述地址为按照像素单位计算出的逻辑地址。
以下面的例子说明进一步说明本实施例写入地址的间隔方式:
Rotation Buffer无论采用422 Planar还是420 Planar存储方式,Y分量的写地址间隔法则与实施例一致。U/V分量的间隔法则是:
A)422 Planar存储格式下:
如果wr_line==burst_1/2,且wr_column==img_h:
则waddr_cur=(waddr_pre+1)mod uv_buf_dep
否则:waddr_cur=(waddr_pre+img_h)mod uv_buf_dep
B)420 Planar存储格式下:
如果wr_line==burst_1/2,且wr_column==img_h/2:
则waddr_cur=(waddr_pre+1)mod uv_buf_dep
否则:waddr_cur=(waddr_pre+img_h/2)mod uv_buf_dep。
本实施例中,Y,U,V三个分量各自的Rotation Buffer产生各自的空满标志,在三个Buffer都为非满的条件下DMA通道可启动Burst读传输,当三个Buffer都为非空时读控制器可进行读操作。Y Buffer的空满标志的产生与图4.a及图4.b所示实施例一致,而U和V Buffer空满标志的产生与Y类似,只是读指针rptr的更新规则有所区分:
A)422 Planar存储格式下;
当rd_line==burst_1/2,且rd_scan_num==1时,rptr=rd_column,否则rptr保持不变;
B)在420 Planar存储格式下:
当rd_line==burst_1/2,且rd_scan_num==1,rd_uv_toggle==1时,
rptr=rd_column,否则rptr保持不变。
图7.a-图7.d分别是本发明采用实时90度旋转和270度旋转实现旋转显示的方案的第四实施例原理示意图。其中,图7.a和图7.b为显示数据在RotationBuffer中按YUV420 Planar格式存储的原理示意图,图7.c和图7.d分别为显示数据在Rotation Buffer中按YUV420 Semi Planar格式存储的原理示意图。本实施例Rotation Buffer的读写扫描和空满标志的产生与图6.a-图6.d所示实施例中Rotation Buffer采用420 Planar存储方式时一致。不同之处是在本实施例中每个独立的DMA逻辑通道(非物理通道)对应每个独立的显示数据的分量内存块。
本发明实施例的显示内存可采用片外的DRAM,与现有技术一相比,节省了作为显示内存使用的片内SRAM。本发明只要求片内集成Rotation Buffer,该Rotation Buffer的最小容量是可以缓存显示帧内的一块Stripe,以支持VGA分辨率(640X480)的片源为例,在Stripe宽度取4个像素时,Rotation Buffer的容量仅为一帧的1/160,而现有方案一的片内SRAM则至少需要缓存完整一帧。本发明实施例对显示片源分辨率的支持更加灵活。现有技术一由于片内显示内存固定,因此只能支持分辨率小于显示内存的片源,而本发明由于可使用的片外DRAM作为显示内存使用,因此容量可灵活伸缩。与现有方案二采用Single读方式对片外的显示内存DRAM进行访问相比,本发明由于采用了高效的Burst传输方式对片外显示内存进行访问,从而减轻了DRAM的访问负载和功耗。以RGB16bit存储格式为例进行分析,假设Burst长度为8(以像素为单位),DRAM的Row激活时间是3个时钟周期,Data Read Latency为4个时钟周期,那么DRAM的访问负载是现有方案二的20%,Activate Row的功耗是现有方案二的12.5%。另外,与现有方案二相比,本发明实施例可支持更大的显示帧分辨率。假设DMA的四个通道同时访问DRAM的任意块(Bank)任意行,仿真结果表明一次Single读操作平均延迟为35~40个总线时钟周期,那么总线时钟频率为133MHz的条件下,方案二的显示帧分辨率的典型应用仅为QCIF(176X144像素的分辨率),而本发明可最大支持1024X1024的分辨率。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (24)
1.一种显示数据的传输方法,其特征在于,包括:
依次读取每个子带的显示数据,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据;
按列方向将突发读取的显示数据进行旋转存储;
按行方向读取所述旋转存储的显示数据,并将所述读取的显示数据发送给显示设备进行显示。
2.如权利要求1所述的显示数据的传输方法,其特征在于,在执行依次读
取每个子带的显示数据,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据的步骤时,每一次读取显示内存中存储的显示数据的步骤包括:
判断用于旋转存储所述显示数据的存储器是否已满,如果判断为否,则依次读取每个子带的显示数据,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据。
3.如权利要求1所述的显示数据的传输方法,其特征在于,所述的按行方向读取所述旋转存储的显示数据的步骤包括:
判断用于旋转存储所述显示数据的存储器是否为空,如果判断为否,则按行方向读取所述旋转存储的显示数据。
4.如权利要求1所述的显示数据的传输方法,其特征在于,所述依次读取每个子带的显示数据,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据的步骤包括:
根据所述显示数据在显示内存中的存储格式,依次读取每个子带的显示数据,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据以分别读取显示数据在所述存储格式下的多个数据分量;
所述按列方向将突发读取的显示数据进行旋转存储的步骤包括:按列方向将所述分别读取的各数据分量分开进行旋转存储;
所述的按行方向读取所述旋转存储的显示数据的步骤包括:
根据所述显示数据在用于旋转存储所述显示数据的存储器中的存储格式,按行单次或按行多次分别按行方向读取所述旋转存储的显示数据的各数据分量。
5.如权利要求4所述的显示数据的传输方法,其特征在于,还包括:
将所述显示数据在显示内存的存储格式中的各分量在所述显示内存中分开存储。
6.如权利要求5所述的显示数据的传输方法,其特征在于,所述的根据所述显示数据在显示内存中的存储格式,依次读取每个子带的显示数据,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据以分别读取显示数据在所述存储格式下的多个数据分量的步骤包括:
采用独立通道,依次读取每个子带的显示数据,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据以读取显示内存中存储的多个子带的显示数据的各存储格式下的各数据分量。
7.如权利要求1-4中任一项所述的显示数据的传输方法,其特征在于,所述旋转存储采用的存储方式为:采用地址连续递增的方式:
所述按行方向读取采用的读取方式为:采用地址间隔的方式;或
所述旋转存储采用的存储方式为:采用地址间隔的方式;
所述按行方向读取采用的读取方式为:采用地址连续递增的方式。
8.如权利要求7所述的显示数据的传输方法,其特征在于,当所述旋转存储采用的存储方式为采用地址间隔的方式时,所述地址间隔的方式包括:
判断是否存储完一个子带的显示数据,如果判断为是,将数据存储到前一次存储地址加1后,对存储所述数据的存储器的深度取模后获得的地址;否则,将数据存储到前一次存储地址加上一个子带数据的高度后,对存储所述数据的存储器的深度取模后获得的地址,所述地址为按照像素单位计算出的逻辑地址。
9.如权利要求7所述的显示数据的传输方法,其特征在于,当所述按行方向读取采用的读取方式为采用地址间隔的方式时,所述地址间隔的方式包括:
判断是否读取完一个子带的显示数据,如果判断为是,读取前一次读地址加1后,对存储所述数据的存储器的深度取模后获得的地址;否则,继续判断前一次读取地址对应的存储单元中所有像素是否读取完,如果判断为是,读取前一次读取地址加上一个子带数据的宽度后,对存储所述数据的存储器的深度取模后获得的地址,所述地址为按照像素单位计算出的逻辑地址。
10.如权利要求2所述的显示数据的传输方法,其特征在于,还包括:
当读控制器从用于旋转存储所述显示数据的存储器中读取一个子带的最后一行时,将所述存储器的读取指针的数值更新为当前读取的列号;否则,读取指针保持不变。
11.如权利要求10所述的显示数据的传输方法,其特征在于,所述判断用于旋转存储所述显示数据的存储器是否已满的步骤中,判定用于旋转存储所述显示数据的存储器已满的条件为:
所述存储器的当前存储指针等于当前读取指针,且存储指针反转标志等于读取指针反转标志。
12.如权利要求10所述的显示数据的传输方法,其特征在于,所述判断用于旋转存储所述显示数据的存储器是否为空的步骤中,判定用于旋转存储所述显示数据的存储器为空的条件为:
所述存储器的当前存储指针等于当前读取指针,且存储指针反转标志不等于读取指针反转标志;
或者所述存储器的当前读取行号等于零,且当所述存储器为满时,当前存储指针等于当前读取的列号。
13.如权利要求1所述的显示数据的传输方法,其特征在于,在按行方向读取所述旋转存储的显示数据的步骤后还包括:
将所述读取的显示数据的数据格式转换为RGB格式,并将所述RGB格式数据发送给显示设备进行显示。
14.一种显示数据的传输装置,其特征在于,包括:
数据获取单元,用于依次读取每个子带的显示数据,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据;
存储器,用于按列方向将突发读取的显示数据进行旋转存储;
读控制器,用于按行方向读取所述旋转存储的显示数据,并将所述读取的显示数据发送给显示设备进行显示。
15.如权利要求14所述的显示数据的传输装置,其特征在于,所述数据获取单元为显示控制器的直接内存访问通道。
16.如权利要求14所述的显示数据的传输装置,其特征在于,所述数据获取单元包括:
第一判断单元,用于判断所述存储器是否已满;
获取单元,用于在接收到所述第一判断单元输出的否定判断结果时,依次读取每个子带的显示数据,针对每一子带,通过突发传输方式依次读取所述子带的每行显示数据。
17.如权利要求16所述的显示数据的传输装置,其特征在于,所述的数据获取单元还包括:
分解控制单元,用于根据显示数据在显示内存中的存储格式,控制所述获取单元通过突发传输方式分别读取显示数据在所述存储格式下的多个数据分量;
所述存储器对所述多个数据分量分开进行旋转存储。
18.如权利要求14-17所述的显示数据的传输装置,其特征在于,所述的数据获取单元包括:
存储控制单元,用于采用地址连续递增的方式按列方向将突发读取的显示数据旋转存储到所述存储器中或采用地址间隔的方式按列方向将突发读取的显示数据旋转存储到所述存储器中。
19.如权利要求18所述的显示数据的传输装置,其特征在于,所述存储控制单元包括:
第二判断单元,用于判断所述存储器是否存储完一个子带的显示数据;
存储指示单元,用于在所述第二判断单元输出肯定的判断时,控制进一步将数据存储到所述存储器中前一次存储地址加1后,对存储所述数据的存储器的深度取模后获得的地址处;否则,将数据存储到所述存储器中前一次存储地址加上一个子带数据的高度后,对存储所述数据的存储器的深度取模后获得的地址处,所述地址为按照像素单位计算出的逻辑地址。
20.如权利要求14所述的显示数据的传输装置,其特征在于,所述读控制器包括:
第三判断单元,用于判断所述存储器是否为空;
读取单元,用于在接收到所述第三判断单元输出的否定判断结果时,按行方向读取所述旋转存储的显示数据。
21.如权利要求20所述的显示数据的传输装置,其特征在于,所述读控制器还包括:
次数控制单元,用于根据所述显示数据在所述存储器中的存储格式,控制所述读取单元按行单次或按行多次分别按行方向读取所述旋转存储的显示数据的各数据分量。
22.如权利要求20所述的显示数据的传输装置,其特征在于,所述读控制器还包括:
读取控制单元,用于控制所述读取单元采用地址连续地址的方式按行方向读取所述旋转存储的显示数据或者采用地址间隔的方式按行方向读取所述旋转存储的显示数据。
23.如权利要求22所述的显示数据的传输装置,其特征在于,所述读取控制单元包括:
第四判断单元,用于判断所述读控制器是否读取完一个子带的显示数据;
读取指示单元,用于在所述第四判断单元输出肯定的判断结果时,控制所述读控制器读取前一次读地址加1后,对存储所述数据的存储器的深度取模后获得的地址;否则,继续判断前一次读取地址对应的存储单元中所有像素是否读取完,如果判断为是,控制所述读控制器读取前一次读取地址加上一个子带数据的宽度后,对存储所述数据的存储器的深度取模后获得的地址,所述地址为按照像素单位计算出的逻辑地址。
24.如权利要求14所述的显示数据的传输装置,其特征在于,还包括:
数据转换单元,用于将所述读控制器读取的数据格式转换为RGB格式,并将所述RGB格式数据发送给显示设备进行显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100821648A CN101236740B (zh) | 2008-02-25 | 2008-02-29 | 一种显示数据的传输方法及装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810026448 | 2008-02-25 | ||
CN200810026448.5 | 2008-02-25 | ||
CN2008100821648A CN101236740B (zh) | 2008-02-25 | 2008-02-29 | 一种显示数据的传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101236740A CN101236740A (zh) | 2008-08-06 |
CN101236740B true CN101236740B (zh) | 2010-06-02 |
Family
ID=39920315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100821648A Active CN101236740B (zh) | 2008-02-25 | 2008-02-29 | 一种显示数据的传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101236740B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI493973B (zh) * | 2009-05-08 | 2015-07-21 | Mstar Semiconductor Inc | 數位電視訊號解調裝置及其方法 |
CN103377030B (zh) * | 2012-04-26 | 2016-12-21 | 华为技术有限公司 | 图像旋转控制方法及装置 |
CN106201363B (zh) * | 2016-07-26 | 2023-01-31 | 四川大学 | 视频流像素级数据随机实时访问的存储器及存储方法 |
CN107493439A (zh) * | 2017-08-16 | 2017-12-19 | 珠海全志科技股份有限公司 | 视频图像旋转方法、旋转装置和计算机存储介质 |
CN109992234B (zh) * | 2017-12-29 | 2020-11-17 | 浙江宇视科技有限公司 | 图像数据读取方法、装置、电子设备及可读存储介质 |
CN108615508A (zh) * | 2018-04-02 | 2018-10-02 | 屏丽科技成都有限责任公司 | 一种用于改变液晶屏显示方式的方法及使用该方法的lcd投影设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000089748A (ja) * | 1998-09-15 | 2000-03-31 | Seiko Epson Corp | 画像処理装置及び画像処理方法 |
CN2681228Y (zh) * | 2004-03-19 | 2005-02-23 | 北京中星微电子有限公司 | 一种用于液晶显示屏的图像旋转处理系统 |
-
2008
- 2008-02-29 CN CN2008100821648A patent/CN101236740B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000089748A (ja) * | 1998-09-15 | 2000-03-31 | Seiko Epson Corp | 画像処理装置及び画像処理方法 |
CN2681228Y (zh) * | 2004-03-19 | 2005-02-23 | 北京中星微电子有限公司 | 一种用于液晶显示屏的图像旋转处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101236740A (zh) | 2008-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101236740B (zh) | 一种显示数据的传输方法及装置 | |
US7755633B2 (en) | Loading an internal frame buffer from an external frame buffer | |
US6848011B2 (en) | Method and apparatus for displaying data of a display system | |
US20070188506A1 (en) | Methods and systems for power optimized display | |
US20010040580A1 (en) | Computer system controller having internal memory and external memory control | |
JP5079589B2 (ja) | 表示制御装置及び表示制御方法 | |
CN103377030B (zh) | 图像旋转控制方法及装置 | |
CN101958112B (zh) | 手持设备屏幕画面同时实现90度和270度旋转的方法 | |
US7554874B2 (en) | Method and apparatus for mapping memory | |
CN106846255B (zh) | 图像旋转实现方法及装置 | |
CN100437826C (zh) | 有异步缓存的双倍速动态随机存取存储器控制装置及方法 | |
CN101212680B (zh) | 图像数据的存储器存取方法及系统 | |
US20020171649A1 (en) | Computer system controller having internal memory and external memory control | |
US9019285B2 (en) | Semiconductor integrated circuit device | |
CN104469241A (zh) | 一种实现视频帧率变换的装置 | |
US8305384B2 (en) | System and method for storing and accessing pixel data in a graphics display device | |
CN102110430A (zh) | 用于多窗口显示的方法和系统 | |
US7523250B2 (en) | Semiconductor memory system and semiconductor memory chip | |
CN100423081C (zh) | 硬件加速显示水平线段的装置及其方法 | |
JP2007047750A (ja) | Ddrを用いたデータのスキャンシステムおよびその方法 | |
JP2003177958A (ja) | 特殊メモリデバイス | |
CN102023807B (zh) | 一种实现屏幕顺时针270度旋转的系统 | |
US20080055327A1 (en) | Highly Efficient Display FIFO | |
CN207854046U (zh) | 一种激光测距仪及其激光测距显示控制系统 | |
US8098254B2 (en) | Power savings in a computing device during video playback |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |