一种墨水屏显示清屏的优化方法
2022-03-31朱增许俊文
朱增 许俊文
(广州文石信息科技有限公司 广东省广州市 510000)
1 背景
电子墨水屏利用电泳技术实现接近传统纸张的显示效果,因此也被称为“电子纸”。电子墨水屏一般通过电子墨水进行画面显示,电子墨水通常会制成电子墨水薄膜的形式,电子墨水薄膜由大量微囊组成,微囊中设置有带不同电荷的色素颗粒。初始状态下,色素颗粒悬浮在微囊中,当施加一定方向的电场后,相应的色素颗粒被推到顶部,微囊就会显示不同的颜色,而不同颜色的微囊组成了各种文字和图案。电子墨水屏的这种显示方式与纸质图书非常类似,即不主动发出光线而是反射环境中的光线,不刺激人眼,因此具有护眼的优点。
墨水屏在断电后也能保持现有的图像,这是由于电子墨水具有双稳态效应,也叫做磁滞效应;磁滞效应是指,墨水屏通过电场驱动色素颗粒运动时,电压无论是加大的过程,还是减小的过程,给予同样的电压,电子墨水的黑白变化程度是不同的,需要特定的电压才能驱动到正确状态;这种非线性变化使得墨水屏断电后,色素颗粒难以自发回到初始位置,因此能够保持断电前的画面。由于磁滞效应的存在,电子墨水屏具有省电的优点,无需时刻使用电压维持画面。
当需要控制电子墨水屏改变显示图案时,通过电场控制色素颗粒吸附在胶囊底部或顶部的过程是一个物理过程,电子墨水屏会提供一个Waveform 文件,根据Waveform 文件和电子墨水屏当前显示的画面,决定显示下一帧待显示画面数据需要经过的中间过程对应的波形序列,并根据波形序列向电子墨水屏施加不同的控制信号。由于电子墨水屏的显示原理,墨水屏上的像素点从一种颜色更新到另一种颜色需要的中间过程较多,而且时间久,导致屏幕更新速度慢,不利于用户体验。
如果电子墨水的灰度不为纯黑或纯白的状态,通过电压的加压操作往往难以让色素颗粒移动到预期位置,使得屏幕上存有残影。因此墨水屏设备在进行画面更新时,经常存有清屏的操作,将显示屏重置为全白的状态,以便消除屏幕的显示内容。现有的清屏技术由于中间过程较多,清屏速度很慢,以常用的INIT 模式为例,完整的更新时间需要2000ms,存有明显的卡顿感。还有的清屏技术虽然速度较快,但是会留下明显的残影,屏幕的显示观感较差,因此需要对现有的清屏技术进行优化,提升清屏的速度。
2 方法
为解决上述技术中墨水屏更新颜色需要的中间过程较多,导致屏幕清屏更新速度较慢,不利于用户体验的技术问题,为有效提升电子墨水屏的清屏更新速度,优化用户体验,我们提出了一种新的墨水屏显示控制方法,方法包括以下步骤。
2.1 当满足特定的清屏触发条件,则开启清屏优化
2.1.1 当墨水屏设备的状态符合设定条件
持续对墨水屏设备的工作状态进行监测,收集设备的型号、电量、温度、使用时间和占用率等信息,当设备状态的一项或多项数据满足设定的条件,则触发清屏功能,如电量较低或者使用时间较长的情况,此时切换到清屏优化能在保持屏幕效果时延长使用;此外,设定的条件还可以用公式判定,即设备的各项工作状态经过加权计算后,满足设定的参数则触发清屏功能。用户还可以针对该设置进行手动配置,对条件进行自主设置。
2.1.2 当输入的信号符合设定条件
持续对用户的输入信号进行监测,收集用户的点击、长按、滑动、拖拽和设备物理按钮等信息,当用户输入信号的一项或多项数据满足设定的条件,则触发清屏功能;此外,设定的条件还可以是预置的辅助功能,如双指缩放、底部边缘滑动和侧边边缘滑动等操作,即对用户的输入信号进行分析后,满足设定的快捷手势则触发清屏功能。
2.1.3 当环境信息的数据符合设定条件
通过墨水屏设备上的传感器以及网络同步,持续对用户的使用环境进行监测,收集环境亮度、用户距离、当前时间和当地气温等信息,当环境信息的一项或多项数据满足设定的条件,则触发清屏功能;此外,设定的条件还可以由用户主动进行修改,实现分时间段开启清屏优化,或者设定黑夜模式/白天模式进行定制,当环境信息满足用户的设定即会自动开启优化。
2.1.4 当屏幕的刷新模式产生变动
当用户主动调整了屏幕的刷新模式,或者应用程序根据需要改变了刷新模式,则启动清屏优化。刷新模式包括普通刷新,快速刷新和极速刷新等选项,用户会根据当前的使用场景,例如阅读电子书、看图文新闻和视频播放,选取合适的刷新模式来进行适应,或者应用程序通过监测内容来智能调整;如果当前的刷新模式切换到不同的刷新模式,则会触发条件,并且根据当前刷新模式选用新的清屏策略。
2.1.5 当屏幕上的显示内容出现变化
持续对电子墨水屏幕上的显示内容进行监测,统计屏幕像素点的变化率、特定区域的变化和应用切屏等内容,当显示内容的一项或多项数据满足设定的条件,则触发清屏功能;此外,还可以预先读取应用程序准备渲染的画面,将它与当前的显示画面进行对比,当画面变化较大,可以预先启动清屏优化。
2.1.6 通过系统接口进行开启
通过提供清屏优化的开关接口(API),不仅满足设备系统的使用,还允许应用程序在有需要时进行调用,应用程序可以监测用户的控件交互来被动开启,也能根据自身的运行逻辑,在界面切换时自动进行开启。
当满足以上的任意一个触发条件,则对墨水屏屏幕显示开启清屏优化。
2.2 清屏优化开始时,确定墨水屏清屏的待显示图像中,每个图像像素点对应的第一波形序列,该第一波形序列包括图像像素点对应的一个或多个关键驱动帧
在确定用于墨水屏清屏的待显示图像或波形之后,确定该待显示图像中每个图像像素点对应的第一波形序列,其中,每个第一波形序列包括一个或多个关键帧。其中,每个第一波形序列包括对应图像像素点对应的多个关键驱动帧,并且每个第一波形序列中的多个关键驱动帧按照设定顺序排序,待显示图像上图像像素点的多个关键驱动帧,可根据图像像素点对应的屏幕像素点的当前颜色值变化到图像像素点的第二颜色值所需要的中间过程进行确定,不同的中间过程对应不同的关键驱动帧。或者是,用于墨水屏清屏的待显示图像上图像像素点的第一波形序列,可根据图像像素点对应的屏幕像素点的当前颜色值到图像像素点的第二颜色值的颜色变化所需要的波形序列进行确定,不同的颜色变化对应不同的波形序列。其中第二颜色值可理解为待显示图像对应图像像素点的颜色(目标颜色值)。如图1所示。
图1:图像像素点对应的电子墨水
2.2.1 基于设定的关键帧波形数据,根据当前显示图像和用于墨水屏清屏的待显示图像,确定待显示图像中每个图像像素点对应的关键驱动帧
其中,原始波形文件可由墨水屏的供应厂商提供,即不同颜色值的转换对应的波形序列由厂商提前定义好并记录在原始波形文件中,不同的波形序列包括多个原始驱动帧。需要进行解释的是,在现有技术中,对墨水屏的驱动是基于原始波形文件进行的,即在确定用于墨水屏清屏的待显示图像后,基于原始波形文件、待显示图像和当前显示图像确定各个图像像素点控制波形序列,并直接根据这些控制波形序列控制薄膜晶体管(TFT,Thin Film Transistor)矩阵,依次按照不同的原始驱动帧驱动薄膜晶体管,使微囊中的色素颗粒移动到指定位置,以使墨水屏显示的图像从当前显示图像转换到待显示图像。由于墨水屏厂商无法预知墨水屏的使用场景,所以预先定义的波形序列除了对图像显示起关键作用的原始驱动帧之外,还包含有非关键的原始驱动帧,其中,关键的原始驱动帧可通过对不同颜色值转换对应的波形序列进行实验观察,根据驱动效果(即转换后的颜色值与预计的颜色值的一致程度)进行确定原始驱动帧是否可作为关键驱动帧,即驱动效果最明显的原始驱动帧可确定为关键驱动帧,驱动效果不明显的原始驱动帧即为非关键驱动帧。另外,因为当前墨水屏每个屏幕像素点的当前颜色值可能不同,且要更新的待显示图像的每个图像像素点的第二颜色值也不同,所以墨水屏上每个屏幕像素点从当前颜色到要更新的颜色实际需要驱动的波形序列内容及长度也不同,但是因为墨水屏更新是统一的一个过程,为了所有图像像素点的更新时间保持一致,短的波形序列会插入一些无效帧,以保持所有波形序列和最长的波形序列的驱动时间一致。一般的,无效帧中指示的驱动电压为零或第一设定电压值,对应的,在基于无效帧驱动屏幕像素点(薄膜晶体管)时,对应屏幕像素点上的颜色值保持不变。如图2 和图3所示。
图2:图像的驱动帧
图3:驱动电压
2.2.2 基于关键驱动帧,确定用于墨水屏清屏的待显示图像中每个图像像素点对应的第一波形序列
本方案通过对原始波形文件中不同波形序列、不同原始驱动帧的驱动效果进行观察,并确定各个波形序列中的关键驱动帧、非关键驱动帧和无效驱动帧,并基于关键驱动帧创建本方案的关键帧波形数据。可选的,可在不同的使用场景下对原始波形文件中不同波形序列、不同原始驱动帧的驱动效果进行观察,并确定不同的使用场景下各个波形序列中的关键驱动帧、非关键驱动帧和无效驱动帧,并基于关键驱动帧创建不同使用场景对应的关键帧波形数据。在确定用于墨水屏清屏的待显示图像中每个图像像素点对应的第一波形序列时,可根据当前使用场景确定对应的关键帧波形数据,再根据确定的关键波形文件确定待显示图像中每个图像像素点对应的关键驱动帧。
原始波形文件是根据当前的刷新模式,参照供应厂商的数据获得。如图4所示。
图4:刷新模式
2.3 对第一波形序列进行补帧对齐处理,得到用于墨水屏清屏的待显示图像中每个图像像素点对应的第二波形序列
在确定每个图像像素点对应的第一波形序列后,由于墨水屏更新是一个统一的过程,为了所有图像像素点的更新时间保持一致,对上述确定的各个图像像素点对应的第一波形序列进行补帧对齐处理,即在部分第一波形序列中插入不影响驱动屏幕像素点后的颜色值的驱动帧(一般为指示驱动电压为零或在设定值以下的无效帧),使得各个第一波形序列包含的驱动帧的数量一致,得到待显示图像中每个图像像素点对应的第二波形序列。
进行补帧对齐处理后的各个第二波形序列的序列长度或包含的驱动帧的数量一致。例如,假设待显示图像的4 个第一波形序列对应的关键驱动帧的数量分别是15 帧、15 帧、16 帧、18 帧,那么对这些第一波形序列进行补帧对齐处理后,得到的4 个第二波形序列对应的驱动帧的数量都是18 帧或18 帧以上。即,15 帧插帧3 帧后达到18 帧,16 帧插帧2帧后达到18 帧,实现帧数的对齐一致,实现稳定的画面更新。
2.4 基于第二波形序列驱动墨水屏显示用于墨水屏清屏的待显示图像
在确定各个图像像素点对应的第二波形序列后,根据这些第二波形序列驱动墨水屏,以使墨水屏显示的图像从当前显示图像转换为待显示图像。即对于每个图像像素点,基于对应第二波形序列中的驱动帧(包括关键驱动帧和插入的驱动帧)对薄膜晶体管矩阵进行控制,即依次基于第二波形序列中的驱动帧对薄膜晶体管进行控制,使对应屏幕像素点实现相应的颜色变化中间过程,以驱动墨水屏显示待显示图像。
在相关技术中,假设显示屏的帧输出频率为50Hz,即一个驱动帧的驱动时间为20ms,假设基于原始波形文件确定待显示图像(包括4 个图像像素点)的4 个原始波形序列对应的原始驱动帧的数量均为30 帧,那么,基于原始波形序列驱动墨水屏显示待显示图像的驱动时间为600ms。本方案确定由关键驱动帧组成的第一波形序列,假设待显示图像的4 个第一波形序列对应的关键驱动帧的数量分别是15 帧、15 帧、16 帧、18 帧,那么对这些第一波形序列进行补帧对齐处理后,得到的4 个第二波形序列对应的关键帧的数量都是18 帧,那么基于第二波形序列驱动墨水屏显示待显示图像的驱动时间为360ms,墨水屏刷新效率明显提高,适合用来进行清屏处理。
帧数驱动时间总消耗时间原始方案3020ms600ms清屏优化1820ms360ms
2.5 根据需要切换不同的清屏方式
墨水屏显示屏自带有原生支持的清屏方式,如INIT 清屏,当场景对兼容性需求较高时,则默认采用原生的清屏策略。当用户对性能存有要求时,可以通过2.1 的触发条件,或手动的开关选项来开启清屏优化,满足多样化的需求。用户的手动操作可以是按下设备上搭载的功能键,也可以是应用程序的用户界面上的指定控件,可交互控件通常采用开关控件来接收用户的操作,当用户点击控件的响应区域,即可在开启状态和关闭状态之间进行切换;该用户界面还可以提供清屏优化的信息,使用户能够获知开启后的预期效果。
当采用INIT 刷新模式进行清屏,且开启了清屏优化时,则对INIT 刷新进行优化。由于INIT 刷新模式会将画面转为全白显示,因此在本方案的“墨水屏清屏的待显示图像”中,该待显示图像即为纯白色图像,然后获取白色像素点对应的第一波形序列(INIT 刷新模式的序列),该第一波形序列包括图像像素点对应的一个或多个关键驱动帧。
基于设定的INIT 刷新模式的关键帧波形数据,根据当前显示图像和目标纯白色图像,确定目标纯白色图像的白色像素点对应的关键驱动帧,然后基于关键驱动帧,确定目标纯白色图像中的白色像素点对应的第一波形序列,该步骤提取出了影响最大的关键驱动帧。
然后对第一波形序列进行补帧对齐处理,得到目标纯白色图像中每个图像像素点对应的第二波形序列,以便基于第二波形序列驱动墨水屏显示用于墨水屏清屏的待显示图像,通过提取关键帧和补帧的工作,能够获得原始INIT 刷新模式的类似效果,但是减少了刷新延迟,使得清屏更加快速流畅。
此外,采用该优化的INIT 刷新模式,也可以不指定原始图像和待显示图像的具体颜色,即可以从任意颜色的图像切换到其它颜色的图像,并且采用提取关键帧和补帧的方法进行优化,该方法对显示清屏的适用性较广,便于在不同场景下的进行快速清屏。
在2.1.4 的屏幕的刷新模式出现改变时,则根据变化情况选用不同的清屏波形:如果从普通刷新,切换到普通刷新,可以使用gc 进行清屏;如果从快速刷新,切换到快速刷新,可以使用自定义du 和全白清屏;如果从极速刷新,切换到极速刷新,可以使用自定义init 清屏。
其中,INIT 清屏模式通常也称为初始化更新,用于完全擦除显示器,并使其处于全白色的状态。它适用于内存中的显示信息未能准确表示显示器状态时的情况,例如,当设备完全断电后重新接上电源后,则适合使用INIT 进行一次清屏,INIT 刷新会多次切换显示器最后使其处于白色状态。
DU 清屏模式通常称为直接更新,它是一种非常快速、不闪烁的清屏,此模式支持将显示器从任何灰度转换为仅黑色或白色,它不能用于更新为除黑色或白色以外的任何灰度,该模式的更新时间较快,因此适合触摸传感器以及手写笔等设备的快速响应。
GC 16 清屏模式通常称为灰度清除更新,它用于对全屏幕进行清屏并提供高质量的图像。GC 16 具有全局更新和局部更新两种命令模式,采用前者时,GC 16 在写入新的待显示图像时会进行完整的屏幕更新,采用后者时,GC 16 只会对改变了灰度值的像素进行更新。GC 16 模式有16 个灰度级别。
3 结果
本方法由于减少了波形序列对应的关键帧的数量,由于显示屏是按帧更新来显示内容,通过减少帧数可以有效缩短显示图像的驱动时间,使得清屏效率得到了提升;且保留了关键驱动帧,避免由于帧数降低产生信息的丢失,关键驱动帧存有较多的信息,保留下来后表现效果与原始的清屏操作差异较小,具有较好的观感。将消耗的时间延迟从30 帧的300 毫秒,下降到18 帧的360 毫秒,在避免产生残影的情况下,减小了闪烁和卡顿,适合在墨水屏等设备上进行使用,且利用关键帧进行清屏的策略具有较好的泛用性,可以减少各项适配工作,实现快速移植,适合多种对刷新率存有要求的设备使用。
4 结论以及未来研究方向
本方法通过确定用于墨水屏清屏的待显示图像中每个图像像素点对应的第一波形序列,对第一波形序列进行补帧对齐处理得到第二波形序列,并基于第二波形序列驱动墨水屏显示待显示图像,其中第二波形基于多个关键驱动帧构成的第一波形序列进行补帧对齐处理得到,减少驱动墨水屏时非关键帧或无效帧所消耗的时间,提高墨水屏刷新速度,并通过对第一波形序列进行补帧对齐处理使各个图像像素点的第二波形序列对齐,保证对墨水屏的驱动正常进行,保证图像显示质量。实现了清屏的优化,缩短了清屏的时间。