关于LCD的分屏与切屏 Tearing effect

详细文档(带图片):http://download.csdn.net/detail/xuehui869/5268852

1.LCM之Fmark功能

http://blog.csdn.net/zhandoushi1982/article/details/6011241

最近调试R61509V这颗LCM驱动芯片时,出现在纯色测试画面下画面刷新有残留(tearing effect,即TE)的问题。根本原因是主控写图像数据的速度与LCM刷屏的速度不一致造成的,具体是刷屏速度要快于主控写速度。好在很多LCM驱动芯片都有一个Fmark脚,用来与主控同步,当Fmark发出一个信号给主控时,主控才开始写一帧数据,这样就可以保证两边同步。讲述前首先对几个概念描述:

(1)刷屏速度

刷屏率是指LCM刷新的速度,这个值一般在LCM的初始化CODE中会设定好。对于瑞萨的R61509V这颗LCD驱动,设定0x0010寄存器就是设定刷屏速度。根据公式:帧率=678KHZ/{(RTN)*DIV*(432+8+8)},其中678K是LCM内部的时钟源,RTN是每行的时钟数,DIV是分频系数,(432+8+8)则是行像素。测得的结果是:

0X011F  20HZ,最小频率.

0X011A  29HZ
0X0115  36HZ 
0X0110  52HZ

0X001C  60HZ  
0X0018  70HZ

0X0014  80HZ

刷屏率太低会导致出现flicker现象,所以一般要设定在60HZ以上。

(2)主控写速度WR跟片选CS

这两个PIN脚对每个DBI的LCM都具备,两者的工作频率是一致的。主控每次写一帧数据时,会有一个片选信号,同时对应一个WR的写有效信号。主控的写频率的变化是由工作状态决定的,比如摄像时,拍摄动态物体的显示写速度就快于拍摄静态物体的显示写速度。

如果屏幕的画面没有更新,就会70ms update一次lcd,如果画面有动,就是最多33ms刷一次屏。意思就是CS频率只能限定在1/70到1/30,14.28HZ至33.33HZ之间。最高频率已经快于PAL或者NTSC的帧频,可以保证摄像头工作或者播放视频时不会出现丢帧现象。

(3)Fmark功能

要使能fmark,首先要保证主控的fmark脚与LCM的fmark脚是正确连接的;其次要在LCM初始化中使能屏的fmark功能,保证LCM周期性发出信号给主控,同时使能主控的fmark功能,保证主控收到一个fmark信号才写一帧数据。

LCM的fmark有两个参数可以配置:一是刷多少次屏发出一个fmark信号,比如不一定要每次刷屏都发fmark信号,可以刷几次屏发一次fmark信号;二是fmark的位置参数,可以让fmark迟滞几条线输出,目的是让主控晚点写数据到GRAM,避免TE。

举例:存在这样的情况,就是IC在从GRAM读完最后一行就输出te信号,此时BB开始写GRAM。但可能还要有一两条line的时间,IC才开始从GRAM的第一行读数据刷下二桢,而写GRAM的速度要慢于IC读GRAM的速度,此时可能还没有开始写。导致读GRAM超过写GRAM,所以会在上方产生tearing。要避免TE输出太早,导致写GRAM先开始,所以要加延迟,保证读老旧数据开始后,写GRAM才开始。[x1]

(4)fmark周期与CS周期

出现TE现象的根本原因是两边速度不一致,具体是LCM的刷新速度要快于主控送数据的速度,两者的速度要符合一定的范围才行。只要保证CS的周期在两个TE周期之间即可,也就是CS的写频率不能低于TE读频率的二分之一,Tearing出现的根本条件是读写有交叉。通常都是写Gram速度(WR)慢于lcd刷屏速度(TE)[x2] ,只要刷屏的位置不超过写Gram位置就不会有切屏现象[x3] 
      举个实例:比如CS差不多就比两个TE周期小一点,要刷两桢数据,首先第一桢刷屏开始刷屏了,表示读GRAM开始,它的速度比较快,它读的是老旧数据;紧接着主控开始写GRAM,大概写到GRAM的快一半时,这时候已经刷完一桢,然后开始刷第二桢,即又从GRAM的最上方开始读并刷屏,此时读出来的才是刚写入的新数据,在写完GRAM之前,读的步骤永远跟不上写的步骤,就不会出现tearing。

如果CS比两个TE周期大,假设相当于三个TE周期,那么只有在第三个TE读周期时,显示的数据才是写好的GRAM的数据;第一个TE读的是老旧的数据,第二个TE周期由于GRAM还没有写完,但读步骤赶上写GRAM步骤了,导致显式一部分是旧的一部分是新的,所以出现TE。此即本质。
(5) TE类型

TE显示使能时,必须保证CPU的LCD TE使能和LCM驱动的TE功能都打开。LCM的TM使能有两种:VSYSC,VSYNC&HSYNC。图示如下:

另外:

http://blog.csdn.net/zhandoushi1982/article/details/5908490

2 me的总结

注意:

作为帧同步信号的VSYNC,每发出一个脉冲,都意味着新的一屏图像数据开始发送。而作为行同步信号的HSYNC,每发出一个脉冲都表明新的一行图像资料开始发送

分析

切屏:中间有一条线,这应该是LCD显示丢了几行数据造成的,根本原因是LCD显示的速度慢与主控写的速度,而两者又没有使用Tearing effect out line的机制

分屏:就是下面的图像显示到了上面去,本来上面的图像显示到了LCD下面。看来君正N800C的瑞鼎屏在播放视频时出现分屏,应该就是这个原因。根本原因是LCD显示的速度快与主控写的速度,而两者又没有使用Tearing effect out line的机制

原文:http://blog.csdn.net/xuehui869/article/details/8814911

时间: 2024-10-20 02:47:04

关于LCD的分屏与切屏 Tearing effect的相关文章

iOS 切屏方法

点击要切屏时点用此方法获取图片 image 极为切屏图片 - (UIImage *)captureImageFromView:(UIView *)view { CGRect screenRect = [view bounds]; UIGraphicsBeginImageContext(screenRect.size); CGContextRef ctx = UIGraphicsGetCurrentContext(); [view.layer renderInContext:ctx]; UIIma

Activity生命周期学习笔记,和切屏、activity销毁时候保存数据和调用的方法

activity生命周期图: 下面介绍一下里面的方法: oncreat():在activity一执行就运行的,此过程加载xml里的视图控件 onstart():是在activity视图在手机屏幕上可见时候调用执行 onResme():是获取手机屏幕空间的焦点,即可以点击控件时候执行 onpause():与onResme()是相反的,手机失去控件焦点时候执行 onStop()是activity视图在手机上不可见时候执行 ondestroy():是销毁activity,随即一个activity就会结

考试防刷新、切屏效果实现

情景 在线考试模块这样一个需求: 避免学生用电脑查答案, 需要系统防止刷新.切屏或改变窗口大小,当达到次数后自动交卷. 实现  1,仿刷新.    因为浏览器都自带了刷新返回等按钮,因此只想到了弹出窗口的形式. /* * @param url 考试界面的链接 * @param name 新窗口的名称,没有可填空 * 属性menubar=no 新窗口隐藏菜单栏,防刷新即基本实现 */ window.open( url, name, "menubar=no" ) 没那么完美,鼠标点刷新按钮

直播疑难杂症排查(7)— 黑屏、花屏、闪屏问题

本文是 <直播疑难杂症排查>系列的第七篇文章,我们来重点看看直播中常见的各种黑屏.花屏.闪屏问题. 首先我们要明白,黑屏.花屏.闪屏等问题,可能是推流端的问题,也可能是播放器的问题,遇到这些现象,我们要第一时间用别的播放器(如 VLC,ffplay)试试,如果都出现同样的问题,那么多半是流本身的问题了,反之,则很可能是播放器的问题. 1.  播放黑屏 现象:画面是黑的,没有图像,但是有声音. 1.1 主播端摄像头权限问题 无论 Android 还是 iOS,App 使用摄像头都是需要申请授权的

电脑死机、蓝屏、黑屏、报错解决办法

电脑死机.蓝屏.黑屏.报错解决办法 1.ctrl+alt+delete,打开任务管理器,选择关机-重新启动,如果不行接着看. 2.长按电源5秒钟,强制关机,(因为可能是CPU过热,它需要凉快一下),在正常开机,如果不行接着看. 3.长按电源5秒钟,强制关机,开机,按F8,选择最后一次正常启动,如果不行接着看. 4.长按电源5秒钟,强制关机,开机,按F8,选择进入安全模式,如果不行接着看. 5.如果电脑好了,那么在重新启动,确定电脑完全好了,在进安全模式全盘杀毒,如果又打不开了,那么接着看. 6.

远程桌面退出全屏/不能全屏/全屏切换的技巧

远程桌面退出全屏/不能全屏/全屏切换的技巧退出全屏 问:我的电脑远程登录到服务器上并且切换到了全屏状态,全屏后发现桌面顶部没有浮动工具栏了,想退出全屏状态,不知如何退出了,最后,只有重启电脑.想知道如何退出远程桌面的全屏方法? 答:退出远程桌面全屏状态方法,按下"Ctrl+Alt+Break"组合键,即可切换到普通屏幕状态. 全屏消失 问:Windows 7 下,远程桌面连接前,可以在属性中设置全屏,连接成功后也是全屏,可是如果切换回本地后,全屏就消失了,似乎再也回不去全屏了. 答:方

自定义MediaController来实现修改底部布局作以及实现vedioview半屏与全屏的切换

因为直接使用系统vedioview,底部的MediaController布局有点不好看,尤其是进度条,不能实现办半屏与全屏的切换,自己网上看了下别人的资料,整理了下,做以笔记:初学者,勉强才实现这些功能,还有许多地方不明白. 看下效果:                    1,MediaController.java.直接复制下系统源码的MediaController,来进行修改,就两个地方,一个布局相关的修改,以及进度条ProgressBar的修改,然后就 是添加了半屏与全屏的切换接口. /

delphi 程序实现主屏与扩展屏的切换

delphi 程序实现双屏显示主屏与扩展屏的切换: InitDevice: 初始化显示屏列表,成功返回显示屏数量: ActiveScreen:设置主显示屏,AIndex为显示屏索引,Align为扩展屏相对于主屏的位置(1:左 2:右 3:上 4:下): 使用到的winAPI:EnumDisplayDevicesA.EnumDisplaySettingsA.ChangeDisplaySettingsExA. 常量列表: CCHDEVICENAME = 32: DISPLAY_DEVICE_ATTA

前端优化-如何计算白屏和首屏时间

白屏时间 白屏时间指的是浏览器开始显示内容的时间.因此我们只需要知道是浏览器开始显示内容的时间点,即页面白屏结束时间点即可获取到页面的白屏时间. 计算白屏时间 因此,我们通常认为浏览器开始渲染 <body> 标签或者解析完 <head> 标签的时刻就是页面白屏结束的时间点. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">