1、卡顿的概念

人眼对于每11毫秒闪烁一次约83赫兹基本感觉不到,每13毫秒闪烁一次约66赫兹轻微频闪。

人眼的刷新频率是:

通常条件下,人眼的识别连贯图像的速度是24帧/秒,也就是1000毫秒/24帧,大约为40ms(毫秒)。达到或者超过这个速度的连贯图像,观看时就不会形成卡顿的感觉。形成这个现象的原因是因为人眼观看影像时,会产生视觉延迟导致的。所以说,我们经常说人眼的视觉延迟感应速度为>=40ms。

眼睛分辨显示器频率的问题:

每个人都是这样的,在传统的显示器上75HZ一下就会感觉到闪烁,85Hz以上才可以。

理论上人眼有一个0.1秒的视觉延迟,所以通常每秒刷新10次以上就可以了,但实际情况是每秒刷新24次以上时人眼才会分辨不出来。

打个比方,一个移动缓慢的物体用动画来实现,比如蜗牛移动,可能每秒两三张图片就可以使人眼感觉连贯。而赛车的话,可能需要每秒四五十张以上的图片才能让人眼感觉连贯。

所以,当手机预览帧绘制速度降到每秒24帧一以下时,就会人眼感到卡顿现象。

2、卡顿的原因

直接原因:GPU在屏幕上绘制帧率小于24fps。

导致GPU在屏幕上绘制帧率慢的原因,主要从预览帧传输流程入手进行分析:

1、从hal出图给APP

2、APP调用算法处理

3、算法处理结束回调改帧给APP

4、APP调用GPU在屏幕上进行绘制

分析方法:

观察卡顿trace,分析上述四个线程,哪一个线程在预览帧的处理上执行速度慢。

3、可能原因

1、主要观察执行速度慢的时候的GPU和CPU负载,负载过重会导致预览帧处理线程抢不到执行资源而速度降低导致卡顿;、

2、算法处理时间过长,导致预览帧绘制速度慢;

3、在处理流程上buff队列堆积,哪里有逻辑阻塞。

相机拍照时预览卡顿问题相关推荐

  1. 美颜预览卡顿问题跟踪

    预览卡顿的问题,首先第一想法就是看下帧率,帧率小,自然会卡顿.根据人眼视觉暂留原理,帧率小于24帧,人脸就会感知到卡顿. 帧率的概念在Camera中我们经常会提到,其实有3个帧率概念,从下往常看: s ...

  2. Pr预览卡顿,仅使用核显,不使用独显解决方案

    问题 1.1Pr预览高清 出现卡顿.丢帧.未响应 此时核显负载极高100%,独立显卡负载仅仅为0% 1.2Pr在导出视频时,出现同样状况 2解决办法 2.1独显直连 此方法依赖笔记本电脑自带的独显直连 ...

  3. Android Camera2教程之打开相机、开启预览、实现PreviewCallback、拍照

    转载请注明出处: http://blog.csdn.net/lb377463323/article/details/52740411 Android API 21新增了Camera2,这与之前的cam ...

  4. android 录像 视频大小,Android相机 – 录制视频时预览放大

    我一直试图弄清楚一段时间,但由于某种原因,当我开始使用相机录制视频时,预览放大.我从以下示例中获取以下代码: @Override public void surfaceChanged(SurfaceH ...

  5. H5拍照、预览、压缩、上传采坑记录

    H5拍照.预览.压缩.上传采坑记录 公司项目前段时间需要实现手机拍照上传的功能,本来以为用createObjectURL和canvas可以很轻松的实现,结果发现问题多多,特此记录下来. DEMO预览( ...

  6. ElementUI h5 移动端照片拍照 本地预览 旋转压缩 并上传

    文章目录 调用摄像头拍照 本地预览 旋转压缩 上传 功能需求是移动端扫描二维码之后,跳转到在线网页进行自拍,然后上传拍照结果. 调用摄像头拍照 在h5中,使用input type="file ...

  7. Android相机支持的预览格式详解

    当我们想从相机的预览中拿到原始的图像用于处理,我们就要先设置相机的参数,让它输出我们期望的格式.本篇文档旨在解释清楚相机支持的预览格式,相机默认预览格式. 随便找了一台Android手机,通过log输 ...

  8. 解决input[type=file]打开时慢、卡顿问题

    解决input[type=file]打开时慢.卡顿问题 参考文章: (1)解决input[type=file]打开时慢.卡顿问题 (2)https://www.cnblogs.com/zhouyang ...

  9. WIN10下CAD在操作时按F8卡顿

    WIN10下CAD在操作时按F8卡顿 解决方法: 1.在菜单中找到:工具→自定义→界面 2.在界面中找到"自定义"项下的左侧上部的框 3.在"所有自定义文件"下 ...

最新文章

  1. maven 笔记,概念
  2. 使用exe4j将java项目打成exe执行程序
  3. servlet和filter的区别
  4. MFC中绘制动态曲线
  5. OpenMap教程3 –使用MapHandler构建基本的地图应用程序–第2部分
  6. mysql uroot e_批量 kill mysql 连接
  7. Eureka 简介和使用
  8. json 插入数据_Power BI数据回写SQL Server(2)——存储过程一步到位
  9. mysql主从、主主复制及高可用性
  10. cs231n课程作业踩坑汇总
  11. dos命令窗口光标闪烁_史上最全的Vim命令(二)
  12. red hat linux基本命令行,Red Hat Enterprise Linux4 一些常用命令总结
  13. 面向车、路、城,华人运通“智路”示范项目开通试运行
  14. c语言中不带任何修饰符的浮点常量是按,C语言练习题参考答案
  15. java7 32位官方下载_【java7】64位+32位官方下载
  16. Linux下调用wps的Tables接口,WPS二次开发简单示例
  17. php解析psd图层,PSD解析工具实现(七)
  18. 年、月、日格式正则表达式
  19. 微软Project Europe或将帮助Win10应用开发
  20. 神经架构搜索(NAS)2020最新综述:挑战与解决方案

热门文章

  1. 默然学java(一)JAVA背景 JDK和JRE的关系
  2. 改造一台可以计算滤芯使用寿命的智能空气净化器——硬件篇
  3. vue3实现搜索功能
  4. 求学生课程平均分问题
  5. 一行代码解决 ThinkPHP5 压缩水印图片后透明背景变成白色背景的问题
  6. 咸鱼怎么翻身?非计算机专业26岁转行Java,坚持了三年终于年薪36W+
  7. 三明市机器人协会_永安三中斩获三明市青少年机器人竞赛综合技能项目第一名...
  8. python【第七篇】网络编程
  9. 面试总结:任意一个整数分解为几个连续正整数之和
  10. Android工程师技能表