View in English

  • 打开菜单 关闭菜单
  • Apple Developer
搜索
关闭搜索
  • Apple Developer
  • 新闻
  • 探索
  • 设计
  • 开发
  • 分发
  • 支持
  • 账户
在“”范围内搜索。

快捷链接

5 快捷链接

视频

打开菜单 关闭菜单
  • 专题
  • 相关主题
  • 所有视频
  • 关于

返回 WWDC20

大多数浏览器和
Developer App 均支持流媒体播放。

  • 简介
  • 转写文稿
  • 探索 Core Image 纠错技术

    运用 Xcode 环境变量发现并且修复 Core Image 管道的渲染及优化问题。探索如何设置环境变量,从而对 Core Image 图表进行呈现。你将会了解如何生成 Core Image 图表以及如何对其进行解读,从而发现内存、色彩,以及性能问题,并更好地提升和优化 Core Image 管道。

    资源

    • Core Image
      • 高清视频
      • 标清视频

    相关视频

    WWDC21

    • 拍摄和处理 ProRAW 图像
    • 探索 Core Image 内核改进

    WWDC20

    • 优化 Core Image 视频 app 工作流
    • 如何在 Xcode 环境下 构建基于 Metal 的 Core Image 内核
  • 搜索此视频…

    (你好) (2020 全球开发者大会)

    你好 欢迎来到全球开发者大会

    (Core Image 纠错技术) 欢迎大家 我叫David Hayward 我今天要做一个简单的演说 向你展示一些 强大的 Core Image 调试技术 此调试功能将为你提供一些新的见解 关于 Core Image 如何在你的 app 中工作 我正要详细讲述的调试功能 被称为 CI_PRINT_TREE 在此演示中 我会告诉你 CI_PRINT_TREE 是什么

    如何在你的 app 中启用和控制它 然后我将演示如何获取 和解释它所生成的文件

    好 那让我们从了解什么是 CI_PRINT_TREE 开始吧 它基于相同的基础设施 在 Xcode 中提供 Core Image Quick Look 支持 这为开发者提供了 Core Image 的即时可视化

    并且它精美地集成在 Xcode 调试器中

    让我来为你展示它是如何操作的 假设你正在调试一些创建过滤器的代码 设置它的输入属性 然后获取它的输出图像属性

    如果在调试时 你把鼠标悬停在一个 CI 图像变量上 会出现一个小的弹出窗口 显示对象的地址 然后如果你点击小眼睛的符号 将出现一个新窗口 它显示了制作图像组成的可视化表示 但快速查看图像只是一个开始 CI_PRINT_TREE 是一个灵活的环境变量 具有多种模式及操作方式

    通过它可以查看 Core Image 如何优化和渲染图像 首先你需要知道的 就是如何启用 CI_PRINT_TREE 从 Xcode 设置环境变量 有两种方法可以启用 CI_PRINT_TREE 环境变量 最常见的是编辑你的 Xcode 目标计划 转到参数窗格 将其添加到环境变量列表中 从 Terminal.app 中设置一个环境变量 你也可以启用 CI_PRINT_TREE Terminal.app 中的环境变量 通过在启动 app 的 可执行文件之前设置它

    接下来你需要知道的是 如何控制 CI_PRINT_TREE

    CI_PRINT_TREE 的值 是一个这种形式的字符串 一个图形类型 一个输出类型和选项 我将在下面的幻灯片中 描述每个部分的作用

    图形类型代表 Core Image 渲染的三个阶段 (1 初始图谱) 如果想查看每个图像渲染的初始状态 请指定类型一 这对于查看使用了什么颜色空间等很有用 (2 优化的图形) 如果你想查看 Core Image 如何优化渲染 请指定类型二 这对于了解 Core Image 如何重新排序、组合到一起非常有用 并对每个渲染的阶段进行精简 (4 连贯图形) 请指定类型四 当你想了解 Core Image 是如何把阶段性的东西 连成图形处理器 app 的 这对于查看每次渲染 需要多少中间缓冲区很有用 (7 打印图形 1、2 和 4) 最后 以上数值可以组合 例如 指定 7 将打印图形 1、2 和 4 输出类型可以是 pdf 或 png

    如果你指定“任一” 则对于每个渲染 Core Image 都会将树另存为文档 在 Mac OS 上 文件将被保存到临时项目目录中 在 iOS 上 它们将被保存到文档目录中 如果不行 就启用临时目录

    如果没有指定输出类型 那么 Core Image 将 以紧凑的文本格式将树输出为标准输出 你也可以把文本转到 Console.app 通过设置 CI_LOG_FILE="oslog" 这样在开发 iOS 系统的时候 可以更加方便 最后 你还可以指定各种附加选项 使用 context equals name 将限制输出 所以只有特定命名的 CI 上下文的输出才会被记录

    同样 frame- 数字也会限制输出 因此只有每个上下文的 第n次渲染才会被记录下来

    还有一些选项要求在文档中 包含输入、中间物和输出图像 这些选项可以提供非常有用的调试信息 但需谨慎使用 因为它们增加了制作文件的时间和内存 接下来 你需要知道 如何获取 CI_PRINT_TREE 文件

    在 Mac OS 上 这是件很容易的事 你只需要去临时目录 在那里你可以找到 Core Image 制作的文件 请注意 沙盒 app 将有一个独特的临时目录 为了让你在调试 iOS app 时 同样轻松地获取文件 你应该使用一个重要的设置

    进入你 app 的自定义 iOS 目标属性 一旦进入这里 你要确保 app支持 iTunes 文件共享键为值“是”

    在这个设置下 你只需要连接你的 iOS 设备即可 选择查找器侧边栏 然后进入文件窗格 在那里 你可以看到你的 app 的文件 然后拖动它们到你的 Mac 的驱动器 接下来 你需要知道的是 如何解读 CI_PRINT_TREE 文件

    下面是一些关于如何阅读 CI_PRINT_TREE 文档的提示

    首先 在底部输入 在顶部输出

    绿色节点代表线包裹核 红色节点代表颜色核

    在初始树中寻找图中的 色彩匹配节点很容易 在这里你可以看到色彩空间的名称 在这种情况下 输入图像从 HLG 色彩空间 到 Core Image 线性工作空间 进行了色彩匹配 每个节点还显示其 ROI 即 "兴趣区域 "的意思 这显示了本次渲染所需的每个节点的面积

    如果使用 4 和 dump-intermediates 那么连接的图形文档 将显示除输出通道外的 每一遍的中间缓冲区 这对于追踪渲染中 引入错误的位置非常有帮助 如果在树上看不到中间图像 那么 Core Image 不需要渲染它 因为它是从早期渲染中缓存下来的

    而如果你仔细观察 文档可以显示出每一个通道的执行时间 以及每个中间的像素数和像素格式 这可以帮助你了解 哪些通道使用的时间和内存最多

    至此 我对如何使用 CI_PRINT_TREE 作为 Core Image 调试技术的 逐步描述就结束了 我希望这能让你进一步了解并改进 你的 app、图像和视频的视觉效果 非常感谢你的收看 请享受 2020 全球开发者大会的剩余时光

Developer Footer

  • 视频
  • WWDC20
  • 探索 Core Image 纠错技术
  • 打开菜单 关闭菜单
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    打开菜单 关闭菜单
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    打开菜单 关闭菜单
    • 辅助功能
    • 配件
    • App 扩展
    • App Store
    • 音频与视频 (英文)
    • 增强现实
    • 设计
    • 分发
    • 教育
    • 字体 (英文)
    • 游戏
    • 健康与健身
    • App 内购买项目
    • 本地化
    • 地图与位置
    • 机器学习
    • 开源资源 (英文)
    • 安全性
    • Safari 浏览器与网页 (英文)
    打开菜单 关闭菜单
    • 完整文档 (英文)
    • 部分主题文档 (简体中文)
    • 教程
    • 下载 (英文)
    • 论坛 (英文)
    • 视频
    打开菜单 关闭菜单
    • 支持文档
    • 联系我们
    • 错误报告
    • 系统状态 (英文)
    打开菜单 关闭菜单
    • Apple 开发者
    • App Store Connect
    • 证书、标识符和描述文件 (英文)
    • 反馈助理
    打开菜单 关闭菜单
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program (英文)
    • News Partner Program (英文)
    • Video Partner Program (英文)
    • 安全赏金计划 (英文)
    • Security Research Device Program (英文)
    打开菜单 关闭菜单
    • 与 Apple 会面交流
    • Apple Developer Center
    • App Store 大奖 (英文)
    • Apple 设计大奖
    • Apple Developer Academies (英文)
    • WWDC
    获取 Apple Developer App。
    版权所有 © 2025 Apple Inc. 保留所有权利。
    使用条款 隐私政策 协议和准则