深入理解Android相机体系结构之十一

2023-11-12

手机相机的未来与发展

Android相机发展至今,通过开发者对框架的不断优化,算法人员对图像处理算法的不断提升,硬件工程师对硬件性能地不断调教,换来了在某些领域完全可以媲美专业相机的成像效果,这些成绩是有目共睹的,但是我们不能仅仅着眼于过去,试着将眼光放得长远些,如何将Android相机推向更高的维度,使其成为手机相机的王者,想必这是每一个热衷于技术的开发者都需要反复思考的问题,当然就我个人而言,对于它的未来,有着我自己的思考。

Android相机,首先是基于Android系统,所以对于系统端的优化,我相信Google依然会不断的进行完善,特别地,谷歌一直奉行着接口与实现相分离的设计原则, 这就将很多的实现让渡给各自有实现需求的开发者,所以其实我们有很大的创作空间,比如App部分,通过设计良好的业务框架,让整个相机应用在一个高效且稳定的框架中运行,处理来自用户需求,下发图像需求至相机框架中。又比如对于Camera Hal的实现,其实这部分高通做的已经相当完备,从QCamera&MM-Camera架构到而今的CamX-CHI,都是在为上层提供更好地相机而努力着,但是框架谈不上完美,只能是比较符合当下实际情况,针对CamX-CHI而言,存在着内存占用过大以及CPU负载较高的问题,这些也是我们作为开发者所需要去攻克的难题。

麻雀虽小,五脏俱全,Android相机的小体积中俨然具备着一个完整的相机硬件体系,从光圈到透镜组,再到感光器件最后到后期的图像处理模块,每一个器件都承担着自己特有的使命。对于整套硬件体系而言,对于每一个器件的一个小小的提升都有可能使其在一系列竞争者中脱颖而出,比如某品牌的一亿像素,由于机身厚度的限制,大尺寸的CMOS会给透镜组乃至后期的算法处理带来不小的压力。

一张完美的图像,仅仅依靠前期的成像系统是远远不够的,就像当我们看见一副美景时,心中所呈现的并不是单单眼前的景色而已,我们所独有的人生阅历会在我们心中不经意地给其铺上一层独特的滤镜,赋予其独特的意义,而对于相机系统而言,算法便是其给图像铺上灵魂滤镜的关键因素,不同的算法可以赋予图像不同的属性,但是评价算法的好坏,经常会通过效果与效率两个方面来衡量,所以图像的更多意义,需要更多的算法来实现,而算法的更好更快处理便是其实现的目标,一个好的算法往往能够为平庸无奇的图像带来质的飞跃。

而今的Android相机已经完全不局限于记录身边的美好,而是在创造属于每个人的美好,可以通过它来和相隔万里的亲人朋友进行视频通讯,可以编辑属于自己的独一无二的图像表情,可以让多个自己存在在同一个空间中,以及通过萌拍模式记录下自己的可爱瞬间等,这一切的一切都极大的扩展了Android相机的功能性和可玩性,所以针对新Feature的开发,势必是一个大的趋势,这也印证了一个道理,对于相机的开发,我们有时候不是在满足需求,而是在创造需求。

最后,纵观Android历史,不难发现谷歌自始至终秉承着开源普惠大众的宗旨,从未停止过对Android系统的迭代优化,在整个Android相机系统架构中,不难发现接口与实现相分离的这一简单设计原则在其身上随处可见,这样既保证了整体架构的足够稳定,也实现了系统细节实现的多样性,同时也体现出了强大的灵活性,总的来讲,这样一套优秀的架构体系并且依托如今强大的硬件设备,加之全球开发者们在算法、新feature的不懈努力,我相信Android 相机会在以后的发展中一路高歌猛进,超越苹果成为手机相机领域的王者。
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深入理解Android相机体系结构之十一 的相关文章

  • 使用Java播放MP3或Wav音频

    JavaSound是一个小巧的低层应用程序接口 API 它支持数字音频和乐器数字接口 MIDI 数据的记录和回放 在JDK 1 3 0之前 JavaSound是一个标准的Java扩展API 但从Java 2的1 3 0版开始 JavaSou
  • 视频无损放大修复工具:Topaz Video AI对Mac和Windows的系统要求

    Topaz Video AI是一款基于人工智能技术的视频增强软件 旨在提供高质量的视频修复 增强和转换功能 它可以通过智能算法和图像处理技术 改善视频的清晰度 稳定性 降噪效果 还能进行视频转码和格式转换 Mac Topaz Video A
  • 软考:中级软件设计师:多媒体基础,音频,图像,颜色,多媒体技术的种类,图像音频视频的容量计算,常见的多媒体标准

    软考 中级软件设计师 多媒体基础 提示 系列被面试官问的问题 我自己当时不会 所以下来自己复盘一下 认真学习和总结 以应对未来更多的可能性 关于互联网大厂的笔试面试 都是需要细心准备的 1 自己的科研经历 科研内容 学习的相关领域知识 要熟
  • rust + ffmpeg + sdl2 视频播放器,用纯RUST实现音视频流媒体服务

    Rust是一门系统编程语言 专注于安全 尤其是并发安全 支持函数式和命令式以及泛型等编程范式的多范式语言 RTMP协议确实复杂 在做这个项目之前 看过很多帖子 看过官方文档 但总是感觉不能彻底的理解清楚 在实现过一遍此协议之后 感觉清楚了不
  • Qt视频播放器[QMediaPlayer+QVideowidget]

    目录 参考 一 安装K Lite 解码器 二 Qt代码结构 VideoPlayer pro main cpp videoplayer h 播放器 videoplayer cpp 播放器 videoplayer ui 播放器 playersl
  • Unity 音频卡顿 静帧 等待等问题的解决方案

    是否遇到过在Unity中加载音频文件卡顿 也就是画面卡住 的现象 特别是加载外部音频文件时 虽然时间很短 但这终归不是什么好现象 尤其是打游戏的话 影响很大 但是一些有牌面的Boss也不能不配音乐 当然也可以通过其它方式解决 比如特定条件统
  • public static void main(String[] args) { //填入通过分享获取到的抖音视频地址 String videoUrl = getVid...

    这段代码的作用是从抖音 douyin 分享链接中获取视频的无水印播放地址 首先 它通过调用 HttpRequest get url 方法获取抖音视频的分享页面的 HTML 源代码 然后 通过调用 sub 方法并传入 HTML 源代码 开始字
  • windows下使用FFmpeg生成YUV视频文件并播放(通过命令的方式)

    一 YUV的定义 YUV是一种颜色编码方法 它跟我们常见的RGB格式区分开来 常使用在各个视频处理组件中 其中 Y 代表明亮度 U 和 V 代表其色度 视频播放器把市面上流行的MP4等格式文件的视频部分解码出来 得到的一般会是YUV格式的数
  • uniapp使用uni.createInnerAudioContext()播放指定音频并且切换

    uniapp使用uni createInnerAudioContext播放指定音频并且切换 注意 效果图 主要代码 放上所有的代码 注意 uniapp API 中 uni createInnerAudioContext 是无法多音频播放的
  • SDL无法打开音频设备的问题:Couldn‘t open audio/video device: No available audio/video device

    解决中标麒麟下SDL无法打开音频设备的问题 root登录 首先就是一定要用root登录 这个可能是权限问题 否则后面实验不能成功 安装ALSA库 首先下载alsa lib https www alsa project org main in
  • 【ffmpeg基础】ffmpeg音频编码

    一 aac编码 输入raw音频编码为AAC ffmpeg i input wav acodec aac y input aac 通过 acodec来指定音频编码器 视频编码器为 vcodec 也可以使用 c a来指定音频编码器 ffmpeg
  • 海思编码:1、mpp系统详谈以及VI、VPSS、VENC之间的关系

    在HiMPP手册中都会有这么一张图 先讲一下视频缓存池这个概念 视频缓存池主要向媒体业务提供大块物理内存管理功能 负责内存的分配和回收 这部分具体什么作用 首先视频输入回需要大量的内存 打比方1080P的视频输入 VI部分怎么保存或者使用呢
  • Downie 4 4.6.12 MAC上最好的一款视频下载工具

    Downie for Mac 简介 Downie是Mac下一个简单的下载管理器 可以让您快速将不同的视频网站上的视频下载并保存到电脑磁盘里然后使用您的默认媒体播放器观看它们 Downie 4 Downie 4 for Mac Downie
  • STM32之音频数据的Flash读取与DAC播放

    文章目录 一 STM32103之内部Flash原理 1 Flash介绍 2 Flash的组成 3 STM32内部框架图 二 SD卡的读写 1 实验过程 2 查看hello txt 3 从SD卡里读出数据 三 Flash地址空间的数据读取 1
  • 音视频的功耗优化

    前言 在应用中 录制与音视频模块往往是高耗能的模块 设备容易发热 影响体验 什么是功耗优化 手机有多个耗电模块 SOC CPU GPU DDR Display Audio Video Camera WIFI 等 通过参数配置优化 代码优化等
  • onvif协议笔记

    一 简介 ONVIF官网 ONVIF协议网络摄像机 IPC 客户端程序开发 1 专栏开篇 onvif协议开发 二 gSOAP gsoap官网 1 下载和编译 下载地址 bin sh 指定源码目录 解压源码 GSOAP SRC gsoap 2
  • 【音视频 | AAC】AAC音频编码详解

    博客主页 https blog csdn net wkd 007 博客内容 嵌入式开发 Linux C语言 C 数据结构 音视频 本文内容 介绍AAC音频编码 金句分享 你不能选择最好的 但最好的会来选择你 泰戈尔 本文未经允许 不得转发
  • 电动车低速提示音系统(AVAS)

    随着电动汽车的迅速发展 以及电动汽车的保有量也越来越多 根据车辆的特征来说电动汽车相比于传统的内燃机汽车要安静 为了保护行人 减少事故的发生 欧盟最近发布了一项关于电动车的新法规 自2019年7月1日开始 欧盟关于电动汽车的最新法律正式生效
  • 光端机技术综述:从理论到实践的全面探索

    在当今数据驱动的时代 光端机技术 已成为通信领域的核心组成部分 从理论的深度研究到实践的广泛应用 光端机技术不断推动着信息社会的发展 成为连接不同设备和网络的关键技术 技术特点 高速数据传输 光端机 利用光纤传输数据 具有极高的传输速率 相
  • 实用软件分享,打工人必备~

    在这个数字化时代 各种实用软件已经成为我们生活中不可或缺的工具 它们可以帮助我们更高效地完成工作 提高生活质量 节省时间和精力 本文将为您介绍几款实用的软件 让您的工作和生活更加便捷 一 视频下载工具 犀牛下载器 一款免安装的在线视频下载工

随机推荐

  • wangEditor富文本编辑器+react+antd的使用

    1 github上发现富文本编辑器 官网地址及github地址 2 结合react antd的具体使用 案例使用场景 MyModal为弹窗 弹窗显示 编辑名称及描述 描述使用wangeditor富文本编辑器实现 MyModal js imp
  • 免费的HTML5连载来了《HTML5网页开发实例详解》连载(六)媒体查询

    响应式设计的另一个重要技术手段是媒体查询 如果只是简单的设计一个流式布局系统 那么可以保证每个网格按比例的放大和缩小 但有可能会使得在小屏幕下 如手机设备 网格太小而严重影响阅读 这样的设计称不上响应式设计 媒体查询可以来解决这一问题 媒体
  • VMware workstation 14.1.8 pro 下载地址 14最新版

    VMware Workstation 14 1 8 Pro 发布于2019年11月12日 官网下载地址如下 https download3 vmware com software wkst file VMware workstation f
  • linux如何查看安装了哪些软件

    linux查看安装了哪些软件的方法 1 利用 rpm qa 命令查看rpm方法安装的软件 2 利用 dpkg l 命令查看deb方法安装的软件 3 利用 yum list installed 命令查看yum方法安装的软件 本教程操作环境 l
  • python爬虫笔记

    python爬虫笔记 找到了一个网址 https blog csdn net belalds article details 80694126 1 使用requests库 import requests 导入requests库 respon
  • MetaMask 添加BSC、Polygon网络配置

    打开浏览器 点击MetaMask插件 选择网络 点击弹窗中的 Add Network 按钮 添加各网络配置如下 1 BSC Binance Smart Chain 主网 key value 网络名称 Network Name Binance
  • python3爬虫 selenium+pyquery爬取人才网简历实战

    不废话 直接贴代码 各位看官要是觉得可以的话 麻烦点个赞 import requests pymysql pyquery time from bs4 import BeautifulSoup from selenium import web
  • 【2022年第十三届蓝桥杯省赛个人题解】

    A 九进制转十进制 5分 题目描述 九进制正整数 2022 9 2022 9 2022 9 转换成十进制等于多少 AC代码 include
  • 【数据结构】HashMap

    文章目录 参数 DEFAULT INITIAL CAPACITY MAXIMUM CAPACITY loadFactor initialCapacity threshold 方法 tableSizeFor hash 参数 DEFAULT I
  • Python+selenium的web自动化—PageObject模式解析及案例

    一 PO模式 Page Object 简称PO 模式 是Selenium实战中最为流行 并且是自动化测试中最为熟悉和推崇的一种设计模式 在设计自动化测试时 把页面元素和元素的操作方法按照页面抽象出来 分离成一定的对象 然后再进行组织 做we
  • Qt 绘制炫彩时钟

    录制 2022 09 15 09 44 58 720 思路 1 使用定时器 每秒给 秒值 增加 1 当 秒值 等于 60 时 给 分值 增加1 当分值为60时 给 时值 加1 2 绘制界面时 可以用信号槽触发 也可以调用函数触发 我这里用的
  • 高中辍学后,我转行做了程序员

    大家好 我是黑洋葱 非常普通的一个人 没有太多的故事 可以拿得出手的经历大概就是我从高中辍学后通过自考顺利拿到本科证书 以及通过自学成功转行成IT行业的程序员这一段 今天写下这段完全改变了我人生轨迹的经历 同时也稍微整理了 转行程序员 的学
  • 新手如何使用IntelliJ IDEA创建Java项目

    前提 已安装好IntelliJ IDEA 已安装好jdk 已配置好环境变量 后续会继续推出IntelliJ IDEA的安装 jdk的安装和环境变量的配置 1 第一步打开IntelliJ IDEA 这里默认已经安装好IntelliJ IDEA
  • Elasticsearch 2.x版本往5.x版本迁移数据

    Elasticsearch 2 x版本往5 x版本迁移数据 迁移前准备 1 String类型 2 x版本 跟 5 x版本有一个比较大的改动就是ES的基本类型string字段 5 x版本中使用text keyword字段替代了2 x版本的st
  • Eos离线签名PHP代码

    EOS区块链的钱包服务器Keosd 提供了sign transaction开发接口 允许开发者进行交易签名 但是 如果我们希望自己管理密钥而不是交给keosd管理 应该如何在PHP代码中实现交易的离线签名功能 答案是使用 EosTool 这
  • jq+swiper 实现今日头条App的选项卡效果

  • 新版iTunes 不能安装 ipa 包的五种解决办法

    前言 1 新版iTunes指的是 V12 7 2 新版iTunes界面无应用按钮 即无法安装ipa包 五种方法 1 使用iTools 2 使用低版本的iTunes 1 降低iTunes版本的方法 http bbs feng com read
  • C语言基础入门详解二

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 一 C语言多级指针入门 include
  • 1.5 条件生成对抗网络(CGAN)

    1 什么是CGAN 在CGAN训练期间 生成器学习为训练数据集中的每个标签生成逼真的样本 而鉴别器则学习区分真的样本 标签对与假的样本 标签对 只学习接受真实且样本 标签匹配正确的对 拒绝不匹配的对和样本为假的对 2 生成器 条件标签称为y
  • 深入理解Android相机体系结构之十一

    手机相机的未来与发展 Android相机发展至今 通过开发者对框架的不断优化 算法人员对图像处理算法的不断提升 硬件工程师对硬件性能地不断调教 换来了在某些领域完全可以媲美专业相机的成像效果 这些成绩是有目共睹的 但是我们不能仅仅着眼于过去