1
across 2018-11-28 16:53:34 +08:00
iPhone 硬件设计有没特殊不知道,只说个大概的概念吧。可能不太准,等后面人补充。
一个 2208*1240 的屏幕,物理像素就是这么大小,如果拿到 1920*1080 大小的图需要全屏显示,是要显示控制的底层硬件做插值计算的··· 你说画质损失嘛,插值计算后,看起来也可能更平滑柔顺了,毕竟是放大过程。 如果是 4k 的图,那这过程就是缩小的超采样计算,你屏幕本身就那么点分辨率,最后看起来当然也不可能达到 4k 的标准。 那上面说的,屏幕拿到的 1920*1080 的图怎么来的? 对游戏来说,这就是内部先创建一张对应分辨率的贴图(通过在 OpenGL、Metal 这类 API 中指定渲染输出大小),每帧更新时,在 3D 转 2D 的计算中( GPU 的活),按这个像素精度来渲染。这个分辨率对性能影响是比较明显的··· 视频我不是清楚原理,大概 1080p 解码后就是 1920*1080 的图输出给屏幕硬件吧,之后还是硬件自己再做插值计算喽。 |
2
psychoo 2018-11-28 17:00:26 +08:00
视频的话,1080p 解码后(CPU/GPU?)内部 插值 /缩小 到需要显示的分辨率(在 app 里是一个小于等于屏幕分辨率的矩形区域),再送到屏幕显示,绝大多数屏幕硬件本身(非显示器)是只接收自己原生的分辨率的。
|
3
emmm OP |
4
across 2018-11-28 18:17:13 +08:00 1
查了下还真是,文章里面把 2208*1242 转到实际 1920·1080 分辨率的过程叫 scaling stage,不过(调用 opengl 和 metal 的)游戏,以及视频测试表明这些任务会跳过 scaling stage。想想应该也是···不然性能损失太大。
https://www.idownloadblog.com/2014/11/20/iphone-6-downsampling-explained/ |