关于 Camera 预览和录像画质不一样的问题分析

1、问题背景
基于之前安卓平台的一个项目,客户有反馈过一个 Camera app 预览的效果,和录像效果不一致的问题。
这里的预览是指打开 Camera app 后直接出图的效果;录像的效果则是指打开 Camera app 开启录像功能,录制一段视频,再用设备自带的播放器去看录制的视频的效果。
发现录像的 效果要 比预 览的效果 锐度要高。
2、问题分析
关于这个问题,上周也有写过类似的一篇文章分析不同 app 之间画质差异的原因。有些排查过程是通用的,如下是关于这个问题的排查过程。
a、预览和录像是否走的是同一路流?分别 dump下预览和录像的 yuv 来对比看看效果。
预览出的是1080P,录像也是1080P,走的是同一路流。分别 dump了录像和预览的 yuv,对比看效果是一致的,所以就不是ISP处理之前的问题,需继续向后排查。
b、是否是显示的问题。
我这里的验证方式是用我们自己的开发板+Camera 模组来分析问题的,通过HDMI接到1080P 的显示器上出图,通过截屏比较预览的效果和录制的效果;
1>、是有发现在 同样的显示器上播放录制的视频,清晰度要比预览画面要好一些,如下图所示。
2>、 通过 上一步, 预览和录像的yuv效果是一致的,所以接着对比看了预览的yuv和预览的截屏,发现预览的yuv是要比实际的预览结果要好。
所以就怀疑是从yuv 到显示这里的什么处理,导致的清晰度损失了。后面注意到预览截屏下来是4K的分辨率,因为此Android版本的SDK是默认支持4K UI的。
所以关于预览的话, 是把1080P的数据显示在4K UI上,也就是1个实际的像素数据最后是用4个像素来显示,而录像是直接1080P显示的,所以视觉上看起来预览的清晰度度是要差一点的,是正常的。关闭4K UI后比较,预览和录像的效果是一致了。
但客户那边的设备用的是mipi 屏,UI的分辨率是1920x1200,所以并不是4K UI的预览导致的差异。
c、是否是 pq 导致的效果差异。
这里的 pq 是指  picture  quality,是指专门调屏幕画质的,也有色温、锐度、亮度的处理模块和参数的调整,和我们调 camera 画质的工作类似。
后面和客户再次确认了下问题,是在设备上播放录制的视频锐化比预览要高很多,视频导出来在PC上去播放又是正常是。 我这边就用客户的版本、客户的机器、细节颜色多的场景下,复现了下反馈问题。
确实播放录制的视频锐化强度比预览要明显很多,颜色也鲜艳了很多,但用的同样的SDK版本,在我们开发板上就没有这个问题。
这里就找到pq组的同事帮忙分析了下,在客户的设备上播放视频时,执行下指令关闭pq锐化的处理,效果就正常了很多。
接着是dump了我们开发板设备,和客户端设备的pq参数,参数对比是一样的。后面排查了我们开发板上pq的效果不生效的原因,是因为压根没有配置调用pq参数的驱动,而客户板上是支持的,所以表现有差异。
后续是将pq参数的效果文件进行了修改,bypass了锐化、亮度、颜色等的模块,所以效果就保持一致了。
而预览不受pq的影响,是因为预览走的osd层,osd层不走pq处理的这些模块。
3、问题总结
a、要理解清楚客户报的问题,用同样的设备、固件版本、拍摄环境能去复现到,才好去进一步分析。
对于这个问题,我花了太多时间,去验证我们自己开发板上 4K UI导致的预览清晰度差的问题,而客户明明反馈的是预览正常,播放录像时锐化高。
我想当然的以为播放录像锐化高,就是录像比预览清晰度高。和我们开发板上发现预览清晰度差是一个问题。
b、提出合理的假设,一步步去做验证排查,直到找到问题原因。

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

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

相关文章

基于SpringBoot实现MySQL与Redis的数据最终一致性

问题场景 在并发场景下,MySQL和Redis之间的数据不一致性可能成为一个突出问题。这种不一致性可能由网络延迟、并发写入冲突以及异常情况处理等因素引起,导致MySQL和Redis中的数据在某些时间点不同步或出现不一致的情况。数据一致性问题的级别可以分为三…

数据分析基础(1)——超实用‼️Excel 常用函数和实用技巧

学习教程:☑️ 懒人Excel - Excel 函数公式、操作技巧、数据分析、图表模板、VBA、数据透视表教程 目录 一、Excel知识体系✨ 二、Excel 常用函数💡 三、Excel 技巧 🤔 补充: 1、自学数据分析学习路线 2、数据查询网站 一、…

1.Redis 5 环境搭建

一、环境搭建 如果是Centos8,yum 仓库中默认的 Redis版本就是5,直接yum install即可。如果是Centos7,yum 仓库中默认的 Redis版本是3系列,比较老~ 为了我们能在 Centos7中下载到 Redis5 首先要安装额外的软件源 sudo yum insta…

AD常用快捷键记录

一、通用快捷键 1、放大缩小:常用方法,ctrl鼠标滚轮,鼠标中键移动鼠标,pgup、pgup。 2、切换不同的布线层:ctrlshift鼠标滚轮 3、在SCH或者PCB 同一平面内左右翻转:ctrlX 4、在SCH或者PCB 同一平面内上下…

AD9361常用配置概述

ENSM控制 AD9361的状态控制有两种方式,分别为SPI接口控制和引脚控制,也可以通过SPI接口控制使能状态机跳转。在AD9361的正常工作过程中,包括多种不同状态,分别为:SLEEP(休眠状态)、WAIT&#x…

史上最全的Altium Designer 20安装教程

首先我们下载AD20,下载的链接我放在下面了! AD20.2.3下载链接 下载好了之后,得到下面的镜像文件! 右击镜像文件,解压! 解压后得到如下文件夹: 打开文件夹,右键单击以管理员身份运行…

解决报错: Could not initialize class com.platform.cache.J2CacheUtils

今天运行一个比较久远的SSM项目,访问接口时报错: Could not initialize class com.platform.cache.J2CacheUtils 找了半天也没有发现问题所在,突然发现报错里面有ShiroFilter字样,然后想起以前shiro好像是要跟redis对接&#xff0…

瑞友天翼应用虚拟化系统RCE漏洞复现+利用

1、产品简介 瑞友天翼应用虚拟化系统是西安瑞友信息技术资讯有限公司研发的具有自主知识产权,基于服务器计算架构的应用虚拟化平台。它将用户各种应用软件集中部署在瑞友天翼服务器(群)上,客户端通过WEB即可快速安全的访问经服务器上授权的应用软件&…

Autosar存储入门系列03_NVM状态机及读写存储调用逻辑

本文框架 0.前言1. NVM状态机介绍2. NVM读/写基本逻辑2.1 NVM读操作2.2 NVM写操作2.2.1 实时写2.2.2 下电写 2.3 NVM写入注意事项 0.前言 本系列是Autosar存储入门系列,希望能从学习者的角度把存储相关的知识点梳理一遍,这个过程中如果大家觉得有讲得不…

PC天翼云盘v6.3.4精简版

介绍: 由于天翼云盘网页端不能上传大文件了,需要客户端,于是制作了绿色版,直接打开就能用,装到u盘,走到哪用到哪。 下载不限速,上传文件大小无限制,支持识别MD5秒传。 这是天翼云盘…

如何外网登录访问瑞友天翼应用虚拟化系统?——快解析内网端口映射方案

瑞友天翼应用虚拟化系统(GWT System)是国内具有自主知识产权的应用虚拟化平台,是基于服务器计算(Server-based Computing)的应用虚拟化平台。如何将内网平台提供到互联网上外网访问,是我们比较关注的问题。…

Goby 漏洞更新 | 瑞友天翼应用虚拟化系统 index.php 文件远程代码执行漏洞

漏洞名称: 瑞友天翼应用虚拟化系统 index.php 文件远程代码执行漏洞 English Name:Ruiyou Tianyi Application Virtualization System Index.php File Remote Code Execution Vulnerability CVSS core: 9.3 影响资产数:61711 漏洞描述&am…

[maven]关于pom文件中的<relativePath>标签

关于pom文件中的<relativePath>标签 为什么子工程要使用relativePath准确的找到父工程pom.xml.因为本质继承就是pom的继承。父工程pom文件被子工程复用了标签。&#xff08;可以说只要我在父工程定义了标签&#xff0c;子工程就可以没有&#xff0c;因为他继承过来了&…

IO模型和NGINX安装升级

IO模型和NGINX安装升级 IO模型 IO概念 I/O在计算机中指Input/Output&#xff0c; IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数)&#xff0c;是衡量磁盘性能的主要指标之一。 Linux的IO类型 磁盘I/O 磁盘I/O是进程向内核发起系统调用&#xff0c;请求磁…

EditPlus安装教程

首先官网下载EditPlus&#xff1a;https://www.editplus.com/ 然后直接一直图示安装 &#xff08;也可以放其他盘&#xff09; 最后在下图中输入下面内容&#xff1a; Username: Vovan Regcode: 3AG46-JJ48E-CEACC-8E6EW-ECUAW 大功告成&#xff01;

ICLR 2023 | StrucTexTv2:端到端文档图像理解预训练框架

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【计算机视觉】微信技术交流群 转载自&#xff1a;CSIG文档图像分析与识别专委会 本文简要介绍ICLR 2023录用论文“StrucTexTv2: Masked Visual-Textual Prediction for Docu…

静态方法 与 非静态方法的区别/static 关键字

为什么80%的码农都做不了架构师&#xff1f;>>> 使用static修饰的静态方法是属于整个类的类方法&#xff0c;它在内存中的代码段会随类的定义而被分配和装载&#xff1b;而非静态方法是属于具体对象的方法&#xff0c;当这个对 象创建时&#xff0c;在对象的内存中…

Python 通过traceback追溯异常信息

Python 通过traceback追溯异常信息 导入traceback包 import traceback自定义函数 def func_3():return 1 / 0def func_2():func_3()def func_1():func_2()捕捉异常 try:func_1() except Exception as e:traceback_info traceback.format_exc()print("traceback_info"…

TSRFormer:复杂场景的表格结构识别新利器

编者按&#xff1a;近年来&#xff0c;各大企业和组织机构都在经历数字化转型。将文档转换成计算机所能识别的样态&#xff0c;是数字化转型的关键步骤&#xff0c;如何识别出图片中表格具体的结构与内容&#xff0c;并直接提取其中的数据和信息是学术界和工业界共同瞩目的焦点…

C++设计模式_01_设计模式简介(多态带来的便利;软件设计的目标:复用)

文章目录 本栏简介1. 什么是设计模式2. GOF 设计模式3. 从面向对象谈起4. 深入理解面向对象5. 软件设计固有的复杂性5.1 软件设计复杂性的根本原因5.2 如何解决复杂性 ? 6. 结构化 VS. 面向对象6.1 同一需求的分解写法6.1.1 Shape1.h6.1.2 MainForm1.cpp 6.2 同一需求的抽象的…