原文地址

前面的学习中,我们把 SD UNet 网络当成黑盒,不太影响对图片生成大致原理的理解,但在继续学 SD 的过程中,发现 ControlNet、T2I-Adapter、IPAdapter 等这些技术,都是在原 SD 网络模型上以各种方式对网络做修改叠加,要理解这些技术,还是得先了解下 SD UNet 网络结构的一些细节,不然看得很费劲。

SD 模型构成


从之前的学习我们知道,Stable Diffusion 模型里包含了三个组件:CLIP、VAE、UNet,这三个组件的参数和大小分布(来源):

组件 参数个数 文件大小 占比
CLIP 123,060,480 492 MB 12%
VAE 83,653,863 335 MB 8%
UNet 859,520,964 3.44 GB 80%
Total 1,066,235,307 4.27 GB 100%

整个生图的核心网络就是 UNet。UNet 最初是用于医学图像分割任务而提出来的,但它的特性展现了在图像其他领域的应用潜力,后续经过扩散模型的改进,很好应用在了图像生成上,所以 Stable Diffusion 的 UNet 实际上在原 UNet 网络架构上做了一些改造。

阅读全文 »

原文地址

最近关注和学习 AI 比较多,包括 AIGC 和 LLM 大模型,现在 AI 的原理介绍和入门教程已经非常多了,但还是想自己写一下,主要是遵从费曼学习法,分享是最好的学习,帮助自己整理思路。

本文介绍这一轮图片生成热潮的集大成者 Stable Diffusion 涉及的一些图片生成基本原理,这里全篇不会有数学公式,因为大部分公式我也不懂,但应该不会太影响理解基本原理和思路,有理解错误的地方欢迎指正。

阅读全文 »

原文地址

本文基于 Session 10158 梳理。随着直播互动性增强,对直播延时的要求也越来越高,高延时会严重影响用户体验。本 Session 介绍的 VideoToolbox 低延时编码从编码角度来降低延时,给我们提供了降低延时的新思路。

VideoToolbox 编解码基础

VideoToolbox 简介

VideoToolbox 是苹果提供的一个直接访问硬编解码器的底层框架,可以用来编码、解码和像素格式转换。这些功能都以 session 的形式提供。如果你的 App 中不需要直接访问硬编解码器,那不需要使用 VideoToolbox,可以使用其他框架例如 AVFoundation。

阅读全文 »

视频编码

为什么要编码

假设一个 1 小时的未压缩的电影(1920 * 1080),像素数据格式为 RGB(3 Byte),按照每秒 25 帧来计算:

1
3600 * 25 * 1920 * 1080 * 3 = 521.42GB

500 多 G 的电影显然太大了,下载耗时也占地方,在线看也很慢,毕竟我们平时看的一般也就几个 G 而已。所以我们要对视频进行 压缩,而 编码 就是 压缩 的过程。

视频编码的作用: 将视频像素数据(RGB,YUV 等)压缩成对应标准的视频码流,从而降低视频的数据量。

视频编码首先要转换下色彩空间, 从 RGB 转化为 YUV:

阅读全文 »

JPEG 与有损压缩

一张图片通过屏幕展示一般需要解码和渲染两个步骤, 解码将图片原始数据转换为像素点, 渲染将像素点展示在屏幕上. 图片原本就是像素点组成, 展示在屏幕上仍旧是像素点, 为什么还需要解码呢?

我们以常用的 RGB 格式为例, 每一个像素点需要红绿蓝三个颜色各 8bit 来表示, 即一个像素点有 24 bit / 3 字节, 一张 1980*1080 的图片需要存储理论上需要 6.1MB(1980*1080*3/1024/1024=6.1MB), 但是实际一张这样的 PNG 图片大概只有 4MB, JPEG 格式的甚至只有 500KB, 这就是图片压缩的效果.

  • 一方面信息的存储有着巨大的冗余, 比如一张纯色图明显没必要存储所有的像素点, 这是无损压缩技术; (PNG)
  • 另一方面, 人眼会更在乎一张图的大体轮廓, 对于细节则较为不敏感, 因此保留轮廓信息忽略一些细节纹理可以进一步压缩, 这是有损压缩技术. (JPEG)
阅读全文 »

原文地址
摘要:本文将介绍 Safari 支持的媒体格式,包括图像和视频,并介绍了 Safari 17 中的新技术。文章还会讨论网站视频演变历程和最新技术 Managed Media Source API,实现自适应流媒体视频,提供更好的控制和更高效的性能。

本文是根据 Explore media formats for the web 进行撰写,旨在探索现代的图片和视频格式以及他们在 Web 中的应用。

阅读全文 »

原文链接

摘要:本文首先简要阐述了 HDR 相关的基本概念,例如 reference white、headroom 以及 tone mapping,然后回顾了苹果以往建立的 HDR 标准以及 HDR 渲染技术,最后重点介绍了今年新推出的 Adaptive HDR 标准以及在该标准下,如何对 HDR 图片进行读写、编辑和展示。本文基于WWDC24 - Use HDR for dynamic image experiences in your app整理。

WWDC24 主要介绍了苹果新推出的 HDR 图片标准:自适应 HDR (Adaptive HDR)。自适应 HDR 技术通过在同一文件中存储 SDR 基线图以及 HDR 显示所需要的元数据(metadata)和增益图(Gain Map),实现向前兼容 SDR 系统、解码器和应用程序的能力,且有助于在不同的显示环境下进行色调映射(tone mapping)。在介绍如何在自适应 HDR 标准下实现对 HDR 图片的读写和处理前,文本将简要介绍 HDR 的基本概念并回顾往年 WWDC 中与 HDR 有关的内容。

阅读全文 »

原文地址

踩内存问题分析成本较高,尤其是低概率问题困难更大。本文详细分析并还原了两个由于动态库全局符号介入机制(it’s a feature, not a bug)触发的踩内存案例。

踩内存不仅仅是调皮

进程是资源分配的最小单位,线程是cpu调度的最小单位。在同一个进程中各个线程是共用整个进程的地址空间的。

把进程的地址空间比作一张大画布,大家(各个线程)可以从这张大画布中裁剪出来一张张小画布使用,用完归还。每个人借还都在管理员那里登记好即可。同一张小画布也可以小A用完归还后小B使用。大家都遵守规则的情况下是非常和谐的。但是某一天,小A同学突然调皮了一下,在小B借用的小画布上乱涂乱画,甚至踩了个大脚印——这就是踩内存了!每一块画布除了画图区域外还有边框,小A同学如果对边框踩上几脚,归还的时候管理员也会非常无语的。

可以看到,小A的行为不仅仅是调皮了,简直是”恶劣行径”,很可能导致小B同学或者管理员同学”崩溃”大哭。

阅读全文 »