0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么不同帧数的画面流畅度不同?

如意 来源:中关村在线 作者:周迅 2021-03-03 14:32 次阅读

相信不少人有这样的疑惑,虽然多数电影帧数只有24帧,但播放起来看不出什么卡顿,甚至可以说相当流畅。但是玩游戏的时候,只要帧率在60帧以下,卡顿感就会瞬间提升,甚至玩着玩着还会头晕,这是为什么?

其实这个问题很容易理解,不过有必要先为大家简单介绍以下帧数是什么。

帧数就是在1秒钟时间里传输的图片的量。通常用fps(Frames Per Second)表示。

每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。高的帧率可以得到更流畅、更逼真的动画。每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅。

所以我们看到参数中的 “30帧” 其实就是说 ,在一秒的时间内,拍摄30张静态画面,然后通过播放使其连接起来。

因为人眼的视觉残留特性:是光对视网膜所产生的视觉在光停止作用后,仍然保留一段时间,原因是由视神经元的反应速度造成的。

反应速度时值是二十四分之一秒(也就是说播放每秒超过24帧静态画面,在人类肉眼看起来就是流畅而连续无卡顿的动态画面),这也是电影等视觉媒体形成和传播的根据。所以我们目前看到的电影基本都是24帧的。

那么问题来了,为什么电影24帧很流畅,而游戏30帧却让玩家不能忍呢?这其中的原因就在于,电影和游戏的图像生成原理不同。

电影的24fps,是每1/24秒拍摄一副画面,如果你玩过相机的手动设置,你应该知道如果以1/24秒的快门速度拍摄一个运动的物体会“糊”掉,而正是这样“糊”掉的画面连起来才让我们的眼睛看上去很“流畅”。

而游戏画面不是按1/24秒快门拍出来的,而是每一幅画面都是独立渲染出来的,之所以跑成24fps是因为显卡处理能力不够而“丢弃”了其中的一些画面,这样一来每两幅画面之间就不连续了,自然看上去会“卡”。

举个例子,一个圆从左上角移动到右下角,如果是电影,第一帧与第二帧可能是类似下图这样的:

如果是游戏画面,第一帧与第二帧会类似下面这两张图:

大家也可以拿电影中的快速移动画面截图与游戏中的相比较,效果会更加直观,例如这样:

可以看出上面第一张截图,车辆明明在行驶之中,但是如果我们截图的话,还是比较清晰的帧。而电影中无论是车辆还是快速运动的背景都是虚化的。

电影虽然帧率仅为24帧,但是每一帧都包含了一段时间的信息,而游戏则只包含那一瞬间的信息。

一个电影在一段时间内曝光,画面的每一帧,都包含有一段时间的信息,这段时间的长度由快门时间决定,最长不能超过1/24秒,所以视频中每一帧包含信息量较大(帧与帧之间有模糊的图像,这与人眼快速转换视角也是相似的)。

而游戏里的每一帧只有这一个瞬间的信息,帧与帧之间的信息完全丢失了,所以必须通过更多的帧数来使图像过渡自然,为了解决这一问题,一些游戏中也加入了模拟电影模糊效果的画质选项。

此外,帧与帧之间间隔恒定:人眼对于动态视频的捕捉是非常敏感的,电影帧率是固定不变,肉眼很难察觉出异常。

而游戏的帧率却是很容易变化的——如果手动锁定帧数,显卡会默认渲染最高帧率。

玩家触发的很多剧情往往伴随剧烈的画面变动,这时显卡的帧率就会出现下降,前后不一致的帧率很容易被肉眼捕捉,这时我们就会觉得,游戏变“卡”了。
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 显示技术
    +关注

    关注

    13

    文章

    932

    浏览量

    72602
  • 帧结构
    +关注

    关注

    0

    文章

    12

    浏览量

    10620
  • 画质
    +关注

    关注

    0

    文章

    18

    浏览量

    9384
收藏 人收藏

    评论

    相关推荐

    讯维解码矩阵技术为机场监控提供高清、流畅的视频解决方案

    实时处理大量的视频流数据,保证视频画面的清晰度和流畅性。在机场监控中,需要对各个关键区域进行实时监控,包括跑道、停机坪、航站楼等。讯维解码矩阵技术能够确保这些区域的监控视频能够清晰、流畅地展示在监控中心的大屏上,
    的头像 发表于 03-25 17:22 127次阅读

    ADV71841D输出画面偏移且画面左边有蓝色竖条纹怎么解决?

    ,设置sil9134为RGB输出,但是画面出现偏移和画面左边出现蓝色竖条纹现象。 可以确定的是视频源是OK的,用视频源点其他显示器显示OK,对Sil9134的配置应该也是OK的,sil9134的配置在其
    发表于 12-13 07:10

    串口通信中怎么确定一帧数据接收完成?

    串口通信中怎么确定一帧数据接收完成
    发表于 10-27 06:24

    modbus是通过什么方式来判断一帧数据已经传输完成?

    modbus是通过什么方式来判断一帧数据已经传输完成
    发表于 10-12 07:11

    对SPI通信的过程中怎么判断一帧数据的起始位?

    SPI通信是通过什么方式来识别一帧数据起始
    发表于 10-12 06:11

    LVGL怎样将当前显示画面存储为图片?

    比如现在有一张 背景图片 作为壁纸,上面有一些控件,现在想将目前显示的画面保存下来,后面将这个保存的画面当做 img 控件(缩放、移动等)使用? 目前暂不知如何实现,请教各位大佬指点一下方向?
    发表于 09-26 06:14

    stm32如何实现串口超时接收一帧数据?

    stm32如何实现串口超时接收一帧数据?
    发表于 09-22 07:00

    stm32如何实现串口超时接收一帧数据?

    stm32如何实现串口超时接收一帧数
    发表于 09-20 06:08

    硬编的画面输出是绿屏的原因?

    硬编的画面输出是绿屏
    发表于 09-19 06:59

    帧缓冲区大小计算 主控影响帧数的因素有哪些?

    帧率(Frame Rate)是图像领域中的定义,通俗来讲就是指动画或视频每秒显示的画面数(帧数Frames),即FPS( Frame per Second)。帧率越高,则每秒钟显示的帧数越多,所显示的动作就会越
    的头像 发表于 09-04 09:21 1583次阅读
    帧缓冲区大小计算 主控影响<b class='flag-5'>帧数</b>的因素有哪些?

    WINCC flexiblo创建画面浏览功能

    画面浏览指过程画面的组态体系。 使用画面浏览,为项目定义一个固定的浏览结构。 操作员可以使用运行系统的浏览控制在结构中的不同画面之间浏览。
    的头像 发表于 08-31 16:19 402次阅读
    WINCC flexiblo创建<b class='flag-5'>画面</b>浏览功能

    高清画面分割器,图像处理设备领跑者!

    随着大屏幕系统及指挥中心的大规模应用,高清画面分割器在系统里的应用越来越广泛,这对高清画面分割器的功能及操作要求也越来越高。一款好的高清画面分割器不仅能满足系统现场图像处理的需求,还能大大简化操作
    的头像 发表于 08-21 10:46 393次阅读
    高清<b class='flag-5'>画面</b>分割器,图像处理设备领跑者!

    视频监控画面怎么上拼接屏显示

    视频监控系统在安保和监控领域中起着至关重要的作用,而将监控画面显示在拼接屏上,则可以提供更大尺寸、更清晰的图像,增强监控效果。
    的头像 发表于 08-14 20:48 2172次阅读
    视频监控<b class='flag-5'>画面</b>怎么上拼接屏显示

    官网上只有EMWIN的例程,没有LVGL,想自己移植,可行怎么样?

    官网上只有EMWIN的例程,没有LVGL,想自己移植,可行怎么样?有人做过移植吗? 另外,新项目需要用到视频播放的功能,N9H26的H264的硬解播放视频的流畅如何?有没有演示视频?
    发表于 06-26 08:32

    为什么无法使用OpneCV API获取mp4视频文件的总帧数

    我尝试使用 OpenCV API 获取视频文件的总帧数。 cv::VideoCapture capture(video_path); if (!capture.isOpened()){ throw
    发表于 05-06 08:35