CN106875884B - 一种绘制单色屏幕的方法和装置及一种电子设备 - Google Patents
一种绘制单色屏幕的方法和装置及一种电子设备 Download PDFInfo
- Publication number
- CN106875884B CN106875884B CN201611263444.XA CN201611263444A CN106875884B CN 106875884 B CN106875884 B CN 106875884B CN 201611263444 A CN201611263444 A CN 201611263444A CN 106875884 B CN106875884 B CN 106875884B
- Authority
- CN
- China
- Prior art keywords
- screen
- bit
- video memory
- memory
- pixel
- 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
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/20—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种绘制单色屏幕的方法和装置及一种电子设备,该方法包括:定义符合屏幕分辨率的显存,显存中的每一位与屏幕的每一个像素点是一一对应的,通过控制显存中每一位的值为1或0,即可控制屏幕每个像素点点亮或熄灭;定义符合位带结构的二维数组指针,将该二维数组指针指向显存起始位对应的位带别名区的地址,利用Cortex‑M提供的位带技术,将显存映射到位带别名区,实现对显存任意位的直接访问,避免了移位置位、移位清零、坐标计算等操作,提高绘制效率;当显存逐像素填充满之后,将显存数据发送到屏幕,最终完成屏幕的绘制,解决了现有的对单色屏幕的绘制方案不够灵活、效率不高的问题。
Description
技术领域
本发明涉及虚拟现实技术领域,具体涉及一种绘制单色屏幕的方法和装置及一种电子设备。
背景技术
近年来,智能穿戴设备迅速发展,其中很多都配备了自发光的单色oled屏幕,这种屏幕在阳光下有很好的显示效果,且体积小。通常智能穿戴设备上配置的单色屏幕没有灰度等级,信息的显示是通过控制屏幕上像素点的点亮与熄灭实现的。待显示的文字、图像信息需要转换成与屏幕上像素点对应的单色bmp格式的位图图片,然后将位图图片信息取出,逐像素输出绘制到屏幕上,这样就实现了文字、图像等信息的最终显示。
程序中要实现逐像素绘制单色屏幕,往往需要内存中的一段与屏幕像素点数匹配的内存作为临时绘制bmp位图的显存。当程序绘制完这段显存空间后,再由相关的硬件驱动一次性传输到屏幕上,实现最终绘制信息的显示。
现有的将bmp信息绘制到单色屏幕的显存的方法有如下两种:
第一种,逐像素绘制的方式:显存的最小的存储访问单元的大小是字节,一个字节由8位组成,显存中各个位与屏幕的像素点一一对应,当想要将一个像素进行点亮或熄灭时,只要向对应显存字节中的对应bit位进行置位或清零操作。但是置位、清零操作通常是利用编程语言提供的移位、逻辑或、逻辑与等操作实现的,虽然使用起来比较灵活,但效率不高,仅能做一些简单的显示的动画,对复杂的动画效果,这种绘制显存的方式显然不是最优的。
第二种,内存copy绘制的方式:将待显示的bmp信息按照内存字节对齐的方式直接向显存中copy绘制,避免繁琐的移位、坐标查找、逻辑运算等操作,实现一次性将1个字节8个bmp bit位绘制到显存中,效率比逐像素绘制高,但是因为需要将文字、图片等信息按照8的倍数进行、列转换,确保生成的bmp位图的行、列是8的整数倍数,因此失去了显示的灵活性。当显示静态图像时,有非常大的优势,但当显示动画特效时,此种方法却无能为力。如果屏幕的分辨率尺寸不是8的整数倍,则此种方式也是不可取的,比如分辨率100*90的情况。
发明内容
本发明提供了一种绘制单色屏幕的方法和装置及一种电子设备,以解决现有的对单色屏幕的绘制方案不够灵活、效率不高的问题。
根据本发明的一个方面,本发明提供了一种绘制单色屏幕的方法,包括:
定义符合屏幕分辨率的显存,显存的每一位与屏幕的每一个像素点一一对应;
定义符合位带结构的二维数组指针,将所述二维数组指针指向显存起始位对应的位带别名区的地址,将显存映射至位带别名,显存的每一位分别与位带别名区中的一个字对应;
通过操作位带别名区中与显存对应的每个字填充显存,之后将显存中的数据发送给屏幕,完成屏幕绘制。
根据本发明的另一个方面,本发明提供了一种绘制单色屏幕的装置,包括显存定义模块、映射模块、绘制模块;
所述显存定义模块,用于定义符合屏幕尺寸的显存,显存的每一位与屏幕的每一个像素点一一对应;
所述映射模块,用于定义符合位带结构的二维数组指针,将所述二维数组指针指向显存起始位对应的位带别名区的地址,显存的每一位分别与位带别名区中的一个字对应;
所述绘制模块,用于通过操作位带别名区中与显存对应的每个字填充显存,之后将显存中的数据发送给屏幕,完成屏幕绘制。
根据本发明的又一个方面,本发明提供了一种电子设备,所述电子设备上设置有单色屏幕,所述电子设备还包括上述的绘制单色屏幕的装置。
本发明的有益效果是:本发明实施例首先定义了大小与屏幕分辨率相等的显存,显存中的每一位与屏幕的每一个像素点是一一对应的,通过控制显存中每一位的值为1或0,即可控制屏幕每个像素点点亮或熄灭;然后利用Cortex-M提供的位带技术,将显存映射到位带别名区,实现对显存任意位的直接访问,避免了移位置位、移位清零、坐标计算等操作,提高绘制效率;当显存逐像素填充满之后,将显存数据发送到屏幕,最终完成屏幕的绘制,解决了现有的对单色屏幕的绘制方案不够灵活、效率不高的问题。
附图说明
图1是本发明一个实施例提供的一种绘制单色屏幕的方法的流程图;
图2是Cortex-M的位带技术的原理图;
图3是本发明一个实施例提供的一种绘制单色屏幕的方法的过程示意图;
图4是本发明一个实施例提供的一种绘制单色屏幕的装置的功能框图;
图5是本发明一个实施例提供的一种电子设备的功能框图。
具体实施方式
本发明的设计构思是:现有的绘制单色屏幕的两种方式各有缺陷,逐像素绘制的方式需要进行移位置位、移位清零、坐标计算等繁琐的操作,效率低,仅能实现简单的动画;内存copy绘制的方式缺乏灵活性,并且仅适合静态图像的显示。针对这种情况,本发明利用了Cortex-M提供的位带技术,将显存映射到位带别名区,实现对显存任意位的直接访问,避免了移位置位、移位清零、坐标计算等操作,提高绘制效率,显存中的每一位与屏幕的每一个像素点是一一对应的,通过控制显存中每一位的值为1或0,即可控制屏幕每个像素点点亮或熄灭,当显存逐像素填充满之后,通过硬件驱动程序将显存数据发送到屏幕,即可完成屏幕的绘制,解决了现有的对单色屏幕的绘制方案不够灵活、效率不高的问题。
实施例一
图1是本发明一个实施例提供的一种绘制单色屏幕的方法的流程图,如图1所示,本实施例提供的绘制单色屏幕的方法包括:
步骤S110:定义符合屏幕分辨率的显存,显存的每一位与屏幕的每一个像素点一一对应。显存是一段供单色显示屏显示信息的缓存,在嵌入式系统中,显存就是一段与屏幕分辨率相同的内存区,当要在显存中绘图时,需要将位图信息填充到显存中。
本实施例采用的屏幕为单色LCD显示屏或自发光单色OLED显示屏,或者是其他单色显示技术的屏幕。
步骤S120:定义符合位带结构的二维数组指针,将该二维数组指针指向显存起始位对应的位带别名区的地址,将显存映射至位带别名区,显存的每一位分别与位带别名区中的一个字对应。
本实施例利用了Cortex-M提供的位带(bit-band)技术,其原理如图2所示,位带技术是Cortex-M内核中针对某一段区域进行位和字映射的机制,通过位带技术可以实现对显存数据的任意位进行直接访问,例如:
(1)将bit0为0的32位整型值写入0x23FFFFFC地址,将把位于0x200FFFFF的字节的bit7清零。将bit0为1的32位整型值写入0x23FFFFFC地址,将把位于0x200FFFFF的字节的bit7置位。
(2)将bit0为0的32位整型值写入0x23FFFFE0地址,将把位于0x200FFFFF的字节的bit0清零。将bit0为1的32位整型值写入0x23FFFFE0地址,将把位于0x200FFFFF的字节的bit0置位。
(3)将bit0为0的32位整型值写入x2200001C地址,将把位于0x20000000的字节的bit7清零。将bit0为1的32位整型值写入0x2200001C地址,将把位于0x20000000的字节的bit7置位。
(4)将bit0为0的32位整型值写入0x22000000地址,将把位于0x20000000的字节的bit0清零。将bit0为1的32位整型值写入0x22000000地址,将把位于0x20000000的字节的bit0置位。
利用位带技术对位进行操作相比传统的位操作效率更高,提供了很大的方便
步骤S130:通过操作位带别名区中与显存对应的每个字填充显存,之后将显存中的数据发送给屏幕,完成屏幕绘制。
显示单色bmp位图的单色屏幕是二维平面,而要显示的bmp位图图片也是二维的,因此在优选实施例中,采用二维数组进行图片的逐像素绘制操作。位带技术可以实现对内存数据的按位连续访问,因此优选实施例利用符合位带结构的二维数组的方式使用位带技术来实现对二维平面结构的显存进行逐像素访问,对显存进行逐像素填充。
图3是本发明一个实施例提供的一种绘制单色屏幕的方法的过程示意图,如图3所示,待绘制的位图图像通过位带技术直接绘制到显存中,相比于传统的位操作效率更高,显存中的每一位与屏幕的每一个像素点是一一对应的,通过控制显存中每一位的值为1或0,即可控制屏幕每个像素点点亮或熄灭,当显存逐像素填充满之后,通过硬件驱动程序将显存数据发送到屏幕,完成位图的显示。下面是实现在显存中一次绘制8个像素点的数据的具体实施例:
本实施例提供的绘制单色屏幕的方法能够避免移位置位、移位清零、坐标计算等操作,极大地提高逐像素绘制位图和图形的效率。经测试,对于一幅128*96规格的图片按照传统逐像素绘制方法,在MCU主频16MHZ时,绘制完成一幅图像的时间是33ms,而采用本实施例提供的方法后,绘制图像的时间缩短至3.5ms,时间前后差别近一个数量级,效果十分明显。与传统的绘制方式相比,本实施例可实现的复杂动画特效的绘制,在不增加硬件成本的情况下,既降低了功耗,又增强了产品的用户体验。
另外,由于本实施例中在屏幕上进行图像的绘制直接映射成对二维平面的操作,因此显示界面设计的工作也更直观,使得不同型号的单色显示屏制作的UI元素完全通用,避免了更换驱动和显示方案后,UI库需要全部重新制作的繁琐工作,大大提高了工作效率。
实施例二
图4是本发明一个实施例提供的一种绘制单色屏幕的装置的功能框图,如图4所示,本实施例提供的绘制单色屏幕的装置400包括:显存定义模块410、映射模块420、绘制模块430。
显存定义模块410定义符合屏幕尺寸的显存,显存的每一位与屏幕的每一个像素点一一对应,显存的大小与屏幕分辨率相同,本实施例采用单色LCD显示屏、自发光单色OLED显示屏或其他单色显示技术的屏幕。
映射模块420利用Cortex-M提供的位带技术,将显存映射至位带别名区,具体为:定义符合位带结构的二维数组指针,将该二维数组指针指向显存起始位对应的位带别名区的地址,显存的每一位分别与位带别名区中的一个字对应,通过位带技术可以实现对显存数据的任意位进行直接访问,与传统的位操作相比效率更高。
绘制模块430通过操作位带别名区中与显存对应的每个字填充显存,显存中的每一位与屏幕的每一个像素点是一一对应的,通过控制显存中每一位的值为1或0,即可控制屏幕每个像素点点亮或熄灭,当显存逐像素填充满之后,通过硬件驱动程序将显存数据发送到屏幕,完成屏幕绘制。
优选地,绘制模块430具体用于:利用符合位带结构的二维数组操作位带别名区中与显存对应的每个字,对显存进行逐像素填充。由于单色屏幕是二维平面,而要显示的bmp位图图片也是二维的,因此在本优选实施例中,采用二维数组进行图片的逐像素绘制操作,使得设计工作更直观,提高了工作效率。
实施例三
图5是本发明一个实施例提供的一种电子设备的功能框图,如图5所示,本实施例提供的电子设备500上设置有单色屏幕510,并且该电子设备还包括上述实施例二中的绘制单色屏幕的装置520。
绘制单色屏幕的装置520利用Cortex-M提供的位带技术将显存映射到位带别名区,避免了移位置位、移位清零、坐标计算等操作,极大地提高逐像素绘制位图和图形的效率。与传统的绘制方式相比,可实现的复杂动画特效的绘制,在不增加硬件成本的情况下,既降低了功耗,又增强了产品的用户体验。
以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围应以权利要求的保护范围为准。
Claims (7)
1.一种绘制单色屏幕的方法,其特征在于,所述方法包括:
定义符合屏幕分辨率的显存,显存的每一位与屏幕的每一个像素点一一对应;
定义符合位带结构的二维数组指针,将所述二维数组指针指向显存起始位对应的位带别名区的地址,将显存映射至位带别名区,显存的每一位分别与位带别名区中的一个字对应;
通过操作位带别名区中与显存对应的每个字填充显存,之后将显存中的数据发送给屏幕,完成屏幕绘制。
2.如权利要求1所述的方法,其特征在于,所述通过操作位带别名区中与显存对应的每个字填充显存具体为:
利用符合位带结构的二维数组操作位带别名区中与显存对应的每个字,对显存进行逐像素填充。
3.如权利要求1或2任一项所述的方法,其特征在于,所述屏幕为单色LCD显示屏或自发光单色OLED显示屏。
4.一种绘制单色屏幕的装置,其特征在于,所述装置包括显存定义模块、映射模块、绘制模块;
所述显存定义模块,用于定义符合屏幕尺寸的显存,显存的每一位与屏幕的每一个像素点一一对应;
所述映射模块,用于定义符合位带结构的二维数组指针,将所述二维数组指针指向显存起始位对应的位带别名区的地址,显存的每一位分别与位带别名区中的一个字对应;
所述绘制模块,用于通过操作位带别名区中与显存对应的每个字填充显存,之后将显存中的数据发送给屏幕,完成屏幕绘制。
5.如权利要求4所述的装置,其特征在于,所述绘制模块具体用于:利用符合位带结构的二维数组操作位带别名区中与显存对应的每个字,对显存进行逐像素填充。
6.如权利要求4或5任一项所述的装置,其特征在于,所述屏幕为单色LCD显示屏或自发光单色OLED显示屏。
7.一种电子设备,所述电子设备上设置有单色屏幕,其特征在于,所述电子设备还包括如权利要求4-6任一项所述的绘制单色屏幕的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611263444.XA CN106875884B (zh) | 2016-12-30 | 2016-12-30 | 一种绘制单色屏幕的方法和装置及一种电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611263444.XA CN106875884B (zh) | 2016-12-30 | 2016-12-30 | 一种绘制单色屏幕的方法和装置及一种电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106875884A CN106875884A (zh) | 2017-06-20 |
CN106875884B true CN106875884B (zh) | 2020-06-26 |
Family
ID=59164170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611263444.XA Active CN106875884B (zh) | 2016-12-30 | 2016-12-30 | 一种绘制单色屏幕的方法和装置及一种电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106875884B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108986179B (zh) * | 2018-07-11 | 2023-03-28 | 黑龙江天有为电子股份有限公司 | 一种汽车仪表单色tft多图层alpha融合方法 |
CN112767234A (zh) * | 2021-01-15 | 2021-05-07 | 苏州佳智彩光电科技有限公司 | FPGA在模组信号发生器中管理存储Bmp图片的方法、系统及操控方法和操控系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652170A (zh) * | 2004-02-06 | 2005-08-10 | 恩益禧电子股份有限公司 | 控制器驱动器和显示面板驱动方法 |
CN101556700A (zh) * | 2009-05-15 | 2009-10-14 | 宁波大学 | 一种虚拟视点图像绘制方法 |
CN102073976A (zh) * | 2010-11-25 | 2011-05-25 | 广东威创视讯科技股份有限公司 | 提高图像区域刷新速度的方法及装置 |
CN103886845A (zh) * | 2014-02-28 | 2014-06-25 | 浪潮软件集团有限公司 | 一种通过缓存管理实现对单色液晶显示屏操作的方法 |
CN205140493U (zh) * | 2015-08-20 | 2016-04-06 | 昆山龙腾光电有限公司 | 控制显示屏进行横竖屏切换的装置 |
CN106055295A (zh) * | 2016-05-24 | 2016-10-26 | 腾讯科技(深圳)有限公司 | 图片处理方法、图片绘制方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100405448C (zh) * | 2004-08-20 | 2008-07-23 | 友达光电股份有限公司 | 液晶驱动系统中的过度驱动电压产生方法 |
JP2010271529A (ja) * | 2009-05-21 | 2010-12-02 | Seiko Epson Corp | 電気光学装置、その駆動方法および電子機器 |
JP2011107437A (ja) * | 2009-11-18 | 2011-06-02 | Seiko Epson Corp | 集積回路装置及び電子機器 |
US20120254552A1 (en) * | 2011-03-30 | 2012-10-04 | Arm Limited | Memory access remapping |
CN103035219B (zh) * | 2012-12-25 | 2015-10-28 | 广东威创视讯科技股份有限公司 | 点阵型液晶显示器的读写方法和装置 |
CN105047116A (zh) * | 2015-08-21 | 2015-11-11 | 昆山龙腾光电有限公司 | 一种图片信息的处理方法及装置 |
-
2016
- 2016-12-30 CN CN201611263444.XA patent/CN106875884B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652170A (zh) * | 2004-02-06 | 2005-08-10 | 恩益禧电子股份有限公司 | 控制器驱动器和显示面板驱动方法 |
CN101556700A (zh) * | 2009-05-15 | 2009-10-14 | 宁波大学 | 一种虚拟视点图像绘制方法 |
CN102073976A (zh) * | 2010-11-25 | 2011-05-25 | 广东威创视讯科技股份有限公司 | 提高图像区域刷新速度的方法及装置 |
CN103886845A (zh) * | 2014-02-28 | 2014-06-25 | 浪潮软件集团有限公司 | 一种通过缓存管理实现对单色液晶显示屏操作的方法 |
CN205140493U (zh) * | 2015-08-20 | 2016-04-06 | 昆山龙腾光电有限公司 | 控制显示屏进行横竖屏切换的装置 |
CN106055295A (zh) * | 2016-05-24 | 2016-10-26 | 腾讯科技(深圳)有限公司 | 图片处理方法、图片绘制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106875884A (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11176880B2 (en) | Apparatus and method for pixel data reordering | |
CN110023881B (zh) | 基于区域的显示数据处理和传输 | |
US10796478B2 (en) | Dynamic rendering for foveated rendering | |
US20230039100A1 (en) | Multi-layer reprojection techniques for augmented reality | |
US10410398B2 (en) | Systems and methods for reducing memory bandwidth using low quality tiles | |
US20150287220A1 (en) | Rendering text using anti-aliasing techniques, cached coverage values, and/or reuse of font color values | |
EP1872358A2 (en) | Display specific image processing in an integrated circuit | |
US20200020067A1 (en) | Concurrent binning and rendering | |
US11037271B2 (en) | Dynamic rendering for foveated rendering | |
US10565689B1 (en) | Dynamic rendering for foveated rendering | |
CN106875884B (zh) | 一种绘制单色屏幕的方法和装置及一种电子设备 | |
CN114503187A (zh) | 用于确定显示面板中的过驱动映射相关性的方法及系统 | |
US6784894B2 (en) | Mapping time-sorted to direction-sorted triangle vertices | |
US10672367B2 (en) | Providing data to a display in data processing systems | |
CN112740278B (zh) | 用于图形处理的方法及设备 | |
WO2021134462A1 (en) | Methods and apparatus to facilitate region of interest tracking for in-motion frames | |
US20100182331A1 (en) | Method and apparatus for drawing image | |
KR20010092254A (ko) | 영상 디스플레이 방법과 장치 | |
CN102184070A (zh) | 一种硬件支持光标显示的方法及装置 | |
US20240112606A1 (en) | Image processing device, operating method thereof, and display system including image processing device | |
JP2004348169A (ja) | グラフィック・システムにおけるサンプル密度および/またはいくつかのレンダリング・パスの動的な調整 | |
WO2023225771A1 (en) | Concurrent frame buffer composition scheme | |
WO2024044936A1 (en) | Composition for layer roi processing | |
WO2021072626A1 (en) | Methods and apparatus to facilitate regional processing of images for under-display device displays | |
WO2022040014A1 (en) | Billboard layers in object-space rendering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |