Android Qcom Display学习(十三)

news2025/1/15 22:52:07

该系列文章总目录链接与各部分简介: Android Qcom Display学习(零)
在上一篇中dump GraphicBuffer中,知道了护眼模式中调用setColorTransform应用于每一层Layer,于是想往上了解一些,color是针对屏幕的,不是对单个Layer的,Screencap出的图是不带color模式的。

屏幕重要指标之一的色域
显示屏色域、色深、色差等参数
Android10 Night Light实现细节分析

Android原生支持模式

frameworks/base/services/core/java/com/android/server/display/color/DisplayTransformManager.java setColorMode
frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp SurfaceFlinger::onTransact

护眼模式 通过applyTint只调用DisplayTransformManager::setColorMatrix来调节色温
色彩模式 通过setColorMode调用DisplayTransformManager::setColorMode来调节色彩模式

Android原生支持的四种color mode

(1)COLOR_MODE_NATURAL      COLOR_SATURATION_NATURAL + DISPLAY_COLOR_MANAGED
(2)COLOR_MODE_BOOSTED      COLOR_SATURATION_BOOSTED + DISPLAY_COLOR_MANAGED
(3)COLOR_MODE_SATURATED    COLOR_SATURATION_NATURAL + DISPLAY_COLOR_UNMANAGED 
(4)COLOR_MODE_AUTOMATIC    COLOR_SATURATION_NATURAL + DISPLAY_COLOR_ENHANCED

主要依据以下四个参数进行设置: (1)saturation 饱和度  (2)color 显示模式   (3)compositionColorMode 颜色模式   (4)level 颜色转换

1.applySaturation(saturation)

可通过 “persist.sys.sf.color_saturation” 设置,通过SURFACE_FLINGER_TRANSACTION_SATURATION = 1022与SurfaceFlinger进行通信

COLOR_SATURATION_NATURAL = 1.0f;
COLOR_SATURATION_BOOSTED = 1.1f;

2.setDisplayColor(color)

可通过“persist.sys.sf.native_mode” 设置,通过SURFACE_FLINGER_TRANSACTION_DISPLAY_COLOR = 1023与SurfaceFlinger进行通信

DISPLAY_COLOR_MANAGED = 0;
DISPLAY_COLOR_UNMANAGED = 1;
DISPLAY_COLOR_ENHANCED = 2;

3.setDisplayColor(compositionColorMode)

可通过“persist.sys.sf.color_mode” 设置,通过SURFACE_FLINGER_TRANSACTION_DISPLAY_COLOR = 1023与SurfaceFlinger进行通信

COLOR_MODE_INVALID = -1;
COLOR_MODE_DEFAULT = 0;
COLOR_MODE_BT601_625 = 1;
COLOR_MODE_BT601_625_UNADJUSTED = 2;
COLOR_MODE_BT601_525 = 3;
COLOR_MODE_BT601_525_UNADJUSTED = 4;
COLOR_MODE_BT709 = 5;
COLOR_MODE_DCI_P3 = 6;
COLOR_MODE_SRGB = 7;
COLOR_MODE_ADOBE_RGB = 8;
COLOR_MODE_DISPLAY_P3 = 9;

4.setColorMatrix(level)

通过setMatrix设置色温temperature,通过SURFACE_FLINGER_TRANSACTION_COLOR_MATRIX = 1015与SurfaceFlinger进行通信

LEVEL_COLOR_MATRIX_NIGHT_DISPLAY = 100;
LEVEL_COLOR_MATRIX_DISPLAY_WHITE_BALANCE = 125;

色温调节范围设置
<integer name="config_nightDisplayColorTemperatureMin">2596</integer>
<integer name="config_nightDisplayColorTemperatureMax">4082</integer>

Setting中默认是支持的Display white balance,只是这个功能没有打开,如下修改后即可

packages/apps/Settings/res/xml/display_settings.xml Settings.APK
<SwitchPreference
     android:key="display_white_balance"
     android:title="@string/display_white_balance_title"
     android:summary="@string/display_white_balance_summary"
     settings:controller="com.android.settings.display.DisplayWhiteBalancePreferenceController"/>
	 
DisplayWhiteBalancePreferenceController getAvailabilityStatus 
    DisplayWhiteBalanceTintController isDisplayWhiteBalanceAvailable
	    ColorDisplayManager  config_displayWhiteBalanceAvailable (services.jar)
		
frameworks/base/core/res/res/values/config.xml framework-res.apk
-<bool name="config_displayWhiteBalanceAvailable">false</bool>
+<bool name="config_displayWhiteBalanceAvailable">true</bool>

打开后没有效果,才发现需要AmbientSensor.AmbientColorTemperatureSensor环境色温传感器支持来一直更新Temperature

Android色彩模式色域

       色域其实也可以叫做色彩空间,就是指表色模式所能表达的颜色构成的范围区域,指一个技术系统能够产生颜色的总和。下图的最大范围就是人眼可接受范围的色彩空间,市面上的色域标准都是它的子集。色域越高,颜色越丰富,越接近肉眼所见的真实色彩。

在这里插入图片描述
       广色域用于描述可以再现比 sRGB 色彩空间更多颜色的设备和色彩空间。在原来CRT、TN屏的时代,色域都是较小,可能以前达到70% sRGB色域就能称为广色域,但现在有了更加优秀的技术加持(IPS屏、OLED屏、QLED屏),色域需提升至90% sRGB才满足。

       SRGB/NTSC/DCI-P3的色域标准广泛应用于手机屏幕行业中,由于色域空间的大小不一致,所以宣传的时候可能会倾向于更大比例范围的,之前有询问过模组厂,不同的屏色域的标准来源主要是基于屏幕的材质,驱动IC主要影响gamma亮度,对色域影响较小,并且客户在选型的过程中,色域的优先级并非第一位,屏幕的尺寸和性能是选型的主要因素,色域除非有特别要求.,一般色域在65% NTSC以上+调整好IC的gamma参数,屏幕的整体质量还是不错。一般来说相同标准下色域是越高越好,但并不意味着高色域能够真实地显示色彩,色域还要搭配色彩还原才能体现出显示器在色彩方面的真实表现。

1.sRGB

sRGB色域是微软和HP在1996年共同开发的色彩空间,也是目前的微软旗下的Windows系统和众多原生软件默认支持的色彩空间

2.NTSC

NTSC色域(美国国家电视标准委员会)指定的标准,不能直接兼容计算机系统,不能完全覆盖住 sRGB,100% sRGB ≈ 72% NTSC

3.DCI-P3

DCI-P3是一种应用于数字影院的色域,它是一种以人类视觉体验为主导的色域标准,尽可能匹配电影场景中能展现的全部色域。它也不是色域最广的标准(目前最新的标准为BT.2020),但是在Rec.709标准之上,拥有更广阔的红色/绿色系范围

4.Adobe RGB

Adobe RGB是专业软件生产商Adobe在1998年推出的色彩空间,初衷是为了同时囊括sRGB(电脑常用的色彩空间)和CMYK(印刷常用的色彩空间),随着CCD/CMOS的发展,拍出的数码照片不仅能在电脑上正常显示和编辑,也能印刷出颜色无损而正确的相片。

Android护眼模式色温

在这里插入图片描述
       色温就是用来形容常见的冷暖色,Camera Tunning调试AWB的时候就会涉及到人造光源D65(6500K)、D50(5000K), 不同色温下通过ISP的算法调整,抵消色温引起的偏色,在日光灯的房间里拍摄会发绿,在室内钨丝灯光下拍摄会偏黄,而在日光阴影处拍摄会偏蓝。
       色温没有特定的标准,看个人眼镜的适应程度。一般考验显示设备在屏幕不同亮度(比如0%、25%、50%、75%、100%五个亮度等级)下白点色温的稳定性,让电子产品屏幕显示纯白色,在D65标准、色温为6500K标记为正常,低于6500K则偏暖,而高于6500K则偏冷。测试结果在标准色温值6500K的基础上呈现±500K的规格,意味着该显示设备的灰度上只有非常低的色调转变。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/379170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[YOLO] yolo博客笔记汇总(自用

pip下载速度太慢&#xff0c;国内镜像&#xff1a; 国内镜像解决pip下载太慢https://blog.csdn.net/weixin_51995286/article/details/113972534​​​​​​​ YOLO v2和V3 关于设置生成anchorbox&#xff0c;Boundingbox边框回归的过程详细解读 YOLO v2和V3 关于设置生成an…

Airbnb系列三《Managing Diversity in Airbnb Search》 搜索多样性

abstract 搜索系统中一个长期的问题是结果多样性。从产品角度讲&#xff0c;给用户多种多样的选择&#xff0c;有助于提升用户体验及业务指标。 多样性需求和模型的目标是相矛盾的&#xff0c;因为传统ctr模型是 point wise&#xff0c;只看单个相关性不管相邻之间item差异。 …

Jvisualvm监控Tomcat以及相关参数优化

Tomcat阻塞模式 阻塞模式&#xff08;BIO&#xff09; 客户端和服务器创建一个连接&#xff0c;它就会创建一个线程来处理这个连接&#xff0c;以为这客户端创建了几个连接&#xff0c;服务端就需要创建几个线程来处理你&#xff0c;导致线程会产生很多&#xff0c;有很多线程…

数学小课堂:无穷小(平均速度和瞬间速度的关系)

文章目录 引言I 速度1.1 平均速度1.2 瞬间速度(某一时刻特定的速度)1.3 解释飞箭是静止的悖论II 导数2.1 概念2.2 导数的现实影响2.3 微积分的意义III 无穷小3.1 贝克莱挑战牛顿(无穷小悖论)3.2 无穷小的定义引言 柯西和魏尔斯特拉斯给出的无穷小的定义: 它不是零;它的绝对…

vue2+element封装rules, 支持json多层级

一、封装介绍 封装前景&#xff1a;表单内容多、表单类型重复且校验项较多 下面就参考element的例子写个实例 element地址&#xff1a;https://element.eleme.cn/2.15/#/zh-CN/component/form 实现效果如下: 今天给大家写三种表单校验实现方式 普通表单实现、正常定义rules…

【svg】引入svg(非图标)

这里写目录标题直接插入页面—— 有各层svg内容并可赋值属性css 背景图 ——不可更改各层svg属性创建标签&#xff08;动态添加&#xff09;——可改属性但是还不如直接插入不常用&#xff08;没弄明白&#xff09;目的&#xff1a;如果直接以图片的方式引用svg 不能改变内层sv…

【C++基础入门】初识C++、数据类型

一&#xff1a;C简介 1.1 介绍 C&#xff08;c plus plus&#xff09;是一种计算机高级程序设计语言&#xff0c;由C语言扩展升级而产生 [17] &#xff0c;最早于1979年由本贾尼斯特劳斯特卢普在AT&T贝尔工作室研发。C既可以进行C语言的过程化程序设计&#xff0c;又可以…

深度学习 <实战Kaggle比赛:预测房价> 代码分析 跟李沐学AI

4.10. 实战Kaggle比赛&#xff1a;预测房价 — 动手学深度学习 2.0.0 documentation 若有错误请指出 一.数据处理部分 1.下载部分 没啥好说的 import hashlib import os import tarfile import zipfile import requests#save DATA_HUB dict() DATA_URL http://d2l-data.…

2-8 SpringCloud快速开发入门: Eureka 注册中心高可用集群搭建

Eureka 注册中心高可用集群搭建 Eureka 注册中心高可用集群就是各个注册中心相互注册 Eureka Server的高可用实际上就是将自己作为服务向其他服务注册中心注册自己&#xff0c;这样就会形成一组互相注册的服务注册中心&#xff0c;进而实现服务清单的互相同步&#xff0c;往注…

【博学谷学习记录】超强总结,用心分享丨人工智能 机器学习 逻辑回归模型遗漏知识点总结

目录激活函数逻辑回归的优缺点总结LR可以进行多分类吗&#xff1f;激活函数 h(w)表示输入的线性方程 逻辑回归的优缺点总结 优点&#xff1a; 形式简单&#xff0c;模型的可解释性非常好。从特征的权重可以看到不同的特征对最后结果的影响&#xff0c;某个特征的权重值比较高…

Docker搭建redis-cluster集群

以下是搭建redis-cluster集群&#xff0c;该集群是redis3.0引进了的&#xff0c;该集群比redis-sentinel哨兵架构有以下优点 可以配置多主多从&#xff0c;在redis设置内存可以更大&#xff0c;而哨兵只能配置一主多从&#xff0c;且单个主节点内存不宜设置过大&#xff0c;否…

操作系统内核与安全分析课程笔记【0】环境搭建

本学期选择了游伟和黄建军老师的操作系统内核分析与安全&#xff0c;目前已经试听了第一节课。这门的授课老师建了一个网页用于收录本次课程的幻灯片材料&#xff0c;录屏材料&#xff0c;以及软件安装包等一系列课程用得到的材料。对于学生而言&#xff0c;这是一门既硬核能够…

【机器学习】机器学习实验三:集成算法1(详细代码展示)

文章目录一、实验介绍1.1 简单介绍1.2 Breast Cancer 数据实验1.3 Boston 数据实验二、项目地址三、算法结果展示一、实验介绍 1.1 简单介绍 AdaBoost 和 Random Forest 算法的原理 1.2 Breast Cancer 数据实验 对 Breast Cancer 数据进行探索性数据分析&#xff1b; 数据预…

VMware虚拟机安装ubuntu系统在虚拟机中全屏以及主机和虚拟机之间文件的复制

一、从Wndows复制文字到VMware&#xff08;Linux&#xff09; List item 今天需要用到了Linux操作系统。在VMware装上linux之后经常面临这样一个问题&#xff0c;那就是很多指令很长&#xff0c;逐字去敲显然费时费力。 按照惯例我也查了几种方法&#xff0c;然而要么就是需要…

API 接口测试经验分享

接口开发完成后&#xff0c;我们需要调用接口来测试接口的表现&#xff0c;当表现符合预期时&#xff0c;则代表接口可用。 在测试中我们可能会关注状态码、响应体以及响应时间&#xff0c;这些数据 Postcat 通通都会展示给你&#xff0c;判断 API 是否正常。 开始测试之前&…

pytorch-把线性回归实现一下。原理到实现,python到pytorch

线性回归 线性回归输出是一个连续值&#xff0c;因此适用于回归问题。回归问题在实际中很常见&#xff0c;如预测房屋价格、气温、销售额等连续值的问题。 与回归问题不同&#xff0c;分类问题中模型的最终输出是一个离散值。所说的图像分类、垃圾邮件识别、疾病检测等输出为离…

ModStartBlog v6.8.0 博客置顶功能,界面样式优化

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场&#xff0c;后台一键快速安装 …

2-7 SpringCloud快速开发入门: Eureka 服务注册中心发现与消费服务

Eureka 服务注册中心发现与消费服务 我们已经搭建一个服务注册中心&#xff0c;同时也向这个服务注册中心注册了服务&#xff0c;接下来我们就可以发现和消费服务了&#xff0c;这其中服务的发现由 eureka 客户端实现&#xff0c;而服务的消费由 Ribbon 实现&#xff0c;也就是…

10组小程序界面设计案例分享

10组小程序界面设计分享而对于设计师来说&#xff0c;小程序的设计也相对 APP 简单和直接&#xff0c;在这里分享给大家一些小程序界面设计案例&#xff0c;包含多种类别&#xff1a;出游旅行类、电商购物类、电商家居类、生活社区类、快递物流类、智能家居类、在线文档类、书籍…

基于四信网络摄像机的工业自动化应用

方案背景 随着数控机床被广泛的应用在工业生产中&#xff0c;数控技术发展成为制造业的核心。 鉴于数控机床的复杂性&#xff0c;以及企业人力储备有限&#xff0c;设备的监控和维护必须借助外部力量&#xff0c;而如何实现车间实时监测成了目前迫切解决的问题。 方案需求 ①兼…