嫖一嫖显示器的Over drive (OD) 功能

1.背景

如下图:快速运动的画面会产生拖影现象,影响游戏体验,视觉观感
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F805LGHr-1610117287783)(A186DE20E71E4B89BFA7CA189A35A559)]


2.产生的原因

  • 响应时间大于刷新时间的时候,就会产生拖影。因为,上一帧还没有渲染完,又来了新的帧。

3.首先明确上面两个时间的概念

3.1 Response time (响应时间)
  • 信号输入与实际图像输出之间所需要的时间
  • 指的是液晶显示器对输入信号的反应速度,即液晶颗粒由暗转亮或由亮转暗的时间,分为“电压上升时间”和“电压下降时间”两部份,而通常谈到的响应时间是指两者之和。以毫秒ms为单位。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asfs8yal-1610117287787)(44B12B347CDA4D71922B1FBE14A67E84)]

  • 在显示器亮暗变化时,当液晶分子移动较缓时,就会导致响应时间较慢,从而产生了拖影模糊的问题。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WDLXgypa-1610117287789)(406AB3F154F64FB7886EC86CED99A8D5)]
3.2 刷新时间
  • 两次信号输入之间的间隔时间
  • 取决于刷新频率
    • 比如,60Hz的屏幕刷新时间就是16.6ms(1000ms/60),这就意味着这块屏幕的响应时间得小于16.6ms才不会出现拖影

4.如何优化响应时间,减少拖影 ?——Overdrive技术

4.1 Over drive 简称OD
  • 在显示器亮暗变化时通过改变屏端液晶分子电压,增加对液晶分子的力矩,加速液晶分子的旋转,强制液晶分子在较短的时间内改变排列转换成所设定的穿透率,来实现加快屏响应速度的功能。即改善屏响应时间减少运动模糊
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-708pnV5j-1610117287791)(C66310727B9946A9A9459FE077D204C4)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aUyz5y18-1610117287793)(41CCDB0FD7DF4D0CA7D3409729EDB3A1)]
4.2 基本实现
  • 假设,发生一次色彩转化,无论从哪个色彩转化为哪个色彩,所需要的时间都是10ms。
    现在要把色彩值从0转化到50。
    但是刷新时间只有6.9ms,如果目标值是50的话,那只能转化到50*(6.9/10)=34.5。这样显然不能满足渲染需求。
  • Overdrive技术的做法是,将目标值设置为50*(10/6.9)=72.4,这样就可以在6.9ms内将色彩值从0转化为50。这也正是Overdrive的字面含义:超速、超车。
  • 如下图,OD Table表,粉红和蓝色的部分就是预设值大于/小于目标值的部分。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nJDO0TQZ-1610117287795)(ECC865898E3A499B8F6ADC91EEE5045C)]

5.Overdrive是不是越高越好? ——不是的

5.1 设置过高有什么坏处
  • Overdrive值的高低,其实就是预设目标值比真实目标值高出的比例。
    如果预设值太高,会出现高过头的现象。比如,上面的例子中,当预设目标值为72.4的时候,可以渲染出色彩值为50的效果;但是如果预设目标值太大,就会是渲染出来的色彩值大于50的效果,这就超过了我们想要的目标值。

  • 渲染出来的色彩值小于目标值时,会出现拖影:出现了颜色相同,但是比较浅的影子。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6OTgR9ts-1610117287796)(7D4E0DDB3318423185781F6C6E487374)]

  • 渲染出来的色彩值大于目标值时,会出现鬼影(伪影):出现了颜色反向的影子。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sAune8fX-1610117287797)(08B05E56B2904C7DBBC12595C7247316)]

5.2 Overdrive设置过高会不会影响屏幕的寿命
  • 不会。
  • 屏幕色彩值的范围是[0,255],然后有一个对应的电压范围是[Vmin,Vmax]。
    Overdrive技术,只是将预设目标值设置的大于真实目标值,以追求可以更快的达到渲染效果,从而缩短响应时间。预设目标值不会大于255,即电压也不会超出正常的使用区间。
  • 一般来说,液晶寿命取决于背光,外力损坏。

参考文章:https://blog.csdn.net/u012107143/article/details/109460562

人生不止编程,还有美妙的生活和美妙的人。心中装着美好,随处是风景 !

各位技术嫖友们的点赞和关注,是我技术嫖取路上无限的动力,阿里嘎多~
让我们作个技术嫖客,在嫖取知识的路上,一直嫖一直爽(〜 ̄▽ ̄)〜 ;

  • 14
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Pandas 提供了一组函数,可以在分组后对数据进行聚合。 要使用这些函数,需要使用 `groupby()` 函数对数据进行分组。例如,如果要根据 "State" 列对数据进行分组,可以使用以下代码: ``` df.groupby("State") ``` 分组后,可以使用聚合函数(如 `mean()`、`max()`、`min()` 等)来计算分组数据的统计信息。例如,要计算每个州的平均销售额,可以使用以下代码: ``` df.groupby("State")["Sales"].mean() ``` 要计算每个州的最大销售额,可以使用以下代码: ``` df.groupby("State")["Sales"].max() ``` 要根据多个列进行分组,可以将多个列名放在一个列表中,并传递给 `groupby()` 函数。例如,要根据 "State" 和 "Region" 列进行分组,可以使用以下代码: ``` df.groupby(["State", "Region"]) ``` 请注意,`groupby()` 函数返回的是一个分组对象,而不是分组后的数据。要获取分组后的数据,需要在分组对象上使用聚合函数(如 `mean()`、`max()`、`min()` 等)。 有关分组和聚合的更多信息,请参阅 Pandas 文档:https://pandas. ### 回答2: 要实现类似于SQL中的over partition by功能,可以使用pandas的groupby和transform方法。 在pandas中,groupby方法可以根据指定的列对数据进行分组,transform方法可以对每个分组应用计算函数,并将结果返回到原始数据中。 假设有一个包含多个用户行为数据的DataFrame,其中包括用户ID(user_id)、行为类型(action_type)和行为时长(action_duration)等列。我们希望对每个用户ID进行分组,并计算每个用户的平均行为时长和总行为时长。可以按照以下步骤实现: 1. 导入pandas库并读取数据到DataFrame中。 2. 使用groupby方法按照用户ID进行分组。 3. 使用transform方法对行为时长列进行平均和求和计算。 4. 将计算结果保存到新的列中。 示例代码如下: ```python import pandas as pd # 读取数据到DataFrame df = pd.read_csv('data.csv') # 使用groupby和transform计算每个用户的平均行为时长和总行为时长 df['avg_duration'] = df.groupby('user_id')['action_duration'].transform('mean') df['total_duration'] = df.groupby('user_id')['action_duration'].transform('sum') # 输出结果 print(df) ``` 通过上述代码,我们可以获得一个新的DataFrame,其中包含了每个用户的平均行为时长和总行为时长。这样就实现了类似于SQL中的over partition by功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值