Эволюция формата изображения iQiyi

01

   фон

Изображения являются основными визуальными элементами страницы приложения iQiyi и оказывают жизненно важное влияние на общий пользовательский опыт. В то же время необходимо снизить пиковую стоимость полосы пропускания CDN изображений, вызванную большим количеством запусков. Поэтому, несмотря на стремление улучшить взаимодействие с пользователем, ключевой задачей стала оптимизация пиковых затрат на пропускную способность CDN изображений. Формат кодирования и декодирования, определяющий качество отображения изображения и размер файла, является ключом к оптимизации.
1. Знакомство с форматами изображений
В приложении iQiyi используются различные форматы изображений. Конкретное сравнение выглядит следующим образом:
Формат
Поддерживать ли прозрачность
Поддерживать ли анимированную графику
Сценарии использования приложения iQiyi
JPG
нет
нет
Обложка видео, общее изображение материала
PNG
да
да
Прозрачный материал изображения
гифка
да
да
гифка
ВебП
да
да
Обложка видео, общее изображение материала, прозрачное изображение материала, анимация
ЗДЕСЬ
нет
да
Обложки видео, общие изображения материалов, анимация
АВИФ
да
да
Обложка видео, общее изображение материала, прозрачное изображение материала, анимация
С развитием технологий изображения в новых форматах изображений используются алгоритмы кодирования и декодирования с более высокой степенью сжатия. При том же качестве изображения размер файла значительно уменьшается. Сравнение размеров файлов различных форматов изображений:


2. Основные сценарии использования изображений

Сцены
Пример изображения
Сцены
Пример изображения

обложка

Схема работы

карта ресурсов

Материал изображения

Картинка аватара

Пользовательский контент


3. Эволюция форматов изображений

  • До третьего квартала 2020 года: приложение iQiyi в основном использует изображения в формате JPEG.
  • Третий квартал 2020 г.: приложение iQiyi будет отдавать приоритет использованию изображений в формате WebP.
  • Третий квартал 2022 г.: приложение iQiyi будет отдавать приоритет использованию изображений формата HEIC.
  • Третий квартал 2023 г.: приложение iQiyi будет отдавать приоритет использованию изображений в формате AVIF.


4. Панорама производства и потребления изображений

Переключение формата изображения кажется простым вопросом изменения суффикса изображения, но это очень сложный процесс, чтобы изменить все массивные изображения контента приложения iQiyi на новый формат, поскольку изображения в приложении iQiyi изменились с производства. , загрузка, производство, распространение для окончательного отображения, во всем процессе производства и потребления существует несколько стратегий. Общая связь очень длинная, и почти каждая ссылка должна быть задействована в трансформации.

1) Производственный процесс: включая синтез искусственного интеллекта, извлечение видеокадров, обеспечение эксплуатации/продюсера, съемку за пределами площадки и другие источники изображений в различных форматах.

2) Ссылка для загрузки: разные производители будут загружать контент через разные серверные системы, и масштабы трансформации широки.

3) Производственный процесс: обычно загруженные изображения необходимо предварительно обработать с использованием различных стратегий в зависимости от их назначения. Например, для видеообложек серверная система будет использовать специальные параметры для выполнения ряда подготовительных операций, таких как создание формата, регулировка пропорций, интеллектуальная обрезка, масштабирование и т. д., чтобы предварительно создать видеоизображения в нескольких форматах. и размеры видеоконтента, а также конвертировать уже созданные данные. Информация о формате и размере изображения записывается в объект медиатеки и предоставляется каждому концу для использования в различных сценариях , например, загружаются изображения материалов, такие как логотипы, в приложении; через систему управления контентом и перекодируются только для создания указанного формата, а не создаются в различных размерах.

4) Ссылка на распространение: за распространение отвечают CDN и бизнес-интерфейс приложения.

  • CDN должна поддерживать создание форматов и размеров изображений по требованию.

    Для размеров, которые выходят за пределы предпроизводственного диапазона серверной системы, например изображений AVIF с нестандартным размером 666*666 для изображений обложек, вы можете создавать их в режиме реального времени по запросу, указав суффикс размера и формата 666_666. авиф.

  • Внутренний бизнес-интерфейс приложения должен возвращать URL-адрес изображения указанного формата и размера в зависимости от характеристик внешнего интерфейса.
    Для разных бизнес-сценариев будут возвращены разные размеры изображений обложек. Например, для водопадного потока будет использоваться размер 579*772, для редактора канала фильмов и драматических фильмов — 405*540, а для поиска S-карт — 1248*624.
5) Ссылка на отображение: мобильная библиотека изображений отвечает за рендеринг и отображение изображений в различных форматах. Для некоторых новых форматов ей даже необходимо интегрировать собственные декодеры изображений. Также необходимо использовать различные стратегии для запроса изображений из CDN. бизнес-сценарии.
Схема производства фотографий:
Блок-схема потребления изображений:

02

Практика реализации формата    WebP

1. История

В марте 2020 года мобильный терминал iQiyi готовится полностью применить формат изображений WebP для замены форматов JPG, PNG и GIF, которые в основном использовались в то время для экономии затрат на CDN изображений.

2. Трудности

URL-адреса изображений, используемые на мобильных страницах, в основном возвращаются внутренним интерфейсом мобильного устройства, а в мобильном внутреннем интерфейсе слишком много сервисов. Стоимость изменения этих интерфейсов для возврата URL-адресов изображений в формате WebP слишком высока, и если они будут заменены в формате WebP. В будущем другие форматы изображений придется преобразовывать заново, что занимает очень много времени и труда.

3. Решение

Адаптивная архитектура изображения в масштабе всей сети (сокращенно решение по списку пакетов)

  • Принцип: мобильная библиотека изображений автоматически добавляет параметр caplist после URL-адреса изображения, чтобы сообщить CDN изображения о формате изображения, поддерживаемом текущим устройством, а CDN изображения возвращает лучший формат изображения.

Адаптивная архитектура изображения в масштабах всей сети
  • Например: исходный URL-адрес изображения — http://...xxx.jpg, а запрос изображения, выданный библиотекой изображений, преобразует его в http://...xxx.jpg?caplist=webp,jpg. Сторона CDN получает запрос изображения, анализирует список параметров и на основе предопределенного приоритета (avif > heic > webp > jpg > png) в диапазоне форматов изображений, поддерживаемых caplist, пытается вернуть изображения в формате с более высокий приоритет. Процесс заключается в том, чтобы сначала проверить кэш, а затем проверить, поддерживает ли он производство по требованию. Если он не удовлетворен, его версия будет понижена и так далее. Конкретная логика показана на рисунке ниже. Если все попытки окажутся неудачными, будет получен код ошибки 404 (HTTP_NOT_FOUND), и библиотека изображений не сможет отобразить указанное изображение.
  • Ограничения: старайтесь избегать переходов на более ранние версии, которые увеличивают время, необходимое для запросов изображений. Следовательно, формат высококачественного изображения, подходящий для решения Caplist, должен иметь две характеристики (формат WebP соответствует этому):
    • Высокая степень подготовки к производству (увеличена частота попадания в первый запрос к кэшу)
    • Производство по требованию требует много времени и требует небольших затрат (что позволяет избежать перехода на более раннюю версию и сократить время выполнения запросов)
Пример процесса обработки общесетевого адаптивного решения изображений

4. Онлайн-эффект

В третьем квартале 2020 года несколько отделов совместно работали над реализацией стратегии адаптивного картографирования для всей сети, и было подключено более десяти сервисов. Если взять в качестве примера iPhone, посещения изображений WebP в четвертом квартале 2020 года составили 85% всех форматов изображений, что на 53 пункта больше, чем 32% в третьем квартале 2020 года. Потребление полосы пропускания коммерческой и собственной CDN снизилось на 21,16% по сравнению с предыдущим периодом.

03

Практика внедрения формата    HEIC

1. История

Еще в мае 2020 года, когда iQiyi впервые полностью использовала формат изображений WebP, она уже исследовала возможность реализации формата изображений HEIC с более высокой степенью сжатия файлов на мобильном терминале. Вывод оценки на тот момент был следующим:

  • Модель хорошо совместима: iOS11+ и Android9+ поддерживают изображения формата HEIC на системном уровне, проблем с совместимостью нет.

  • Высокая степень сжатия файлов: при том же качестве изображения изображения HEIC более чем на 30 % меньше изображений WebP.

  • Производительность декодирования: жесткое декодирование на стороне iOS быстрее, чем WebP, и имеет хорошую производительность, однако сторона Android поддерживает только мягкое декодирование, которое занимает в 7,75 раз больше времени, чем WebP, и занимает в 3,76 раза больше места в памяти, чем WebP.

Из-за низкой производительности декодирования формата изображения HEIC в системе Android формат изображения HEIC тестировался лишь в небольших масштабах в конкретных сценариях на стороне iOS.

Два года спустя, в мае 2022 года, на фоне снижения затрат и повышения эффективности, несколько департаментов объединили усилия для содействия внедрению формата изображений HEIC и увеличили долю посещений формата изображений HEIC с помощью различных методов оптимизации.


2. Трудности

  • Хотя система Android поддерживает формат HEIC, производительность декодирования низкая, а производительность декодера HEIC с открытым исходным кодом не идеальна, и общая реализация не может соответствовать требованиям.
  • HEIC图片格式编码性能较差,耗时较长,不能满足CDN按需生产的要求。之前落地WebP格式过程中非常高效成功的caplist方案非常依赖按需生产能力。如果请求的图片没有预生产过HEIC格式,也不支持按需生产,就会直接降级到低优先级的格式,这会导致图片请求耗时增加。因此,caplist方案在HEIC格式落地中不适用,这大大提高了HEIC格式落地的难度和时间成本。
  • 已生产的HEIC图片仅覆盖2020年之后生产的部分图片,占比不够高
  • 动图流量占比大,但是iOS和Android系统都不支持HEIC动图


3、解决方案

1)自研HEIC解码器,解决Android端HEIC图片解码性能问题

HEIC图片格式是使用H265编码格式压缩的,而爱奇艺在H265视频编解码方面有丰富经验,于是决定自研HEIC图片解码方案。经过不懈努力,自研解码器的性能相对于系统解码器提升了5倍以上。解码性能虽然仍然比WebP差一点,但是考虑到CDN成本节省,图片下载耗时降低等优势,已具备上线要求。

2)通过后端接口直接返回HEIC格式图片URL的方式落地HEIC格式,解决项目前期caplist方案不能用的问题 由于HEIC格式编码耗时长,不满足caplist方案需要图片格式支持按需生产的前提,那就只能是用最简单直白的方法了,即通过移动后端接口直接返回有预生产好的HEIC格式的图片URL,来让移动前端加载HEIC格式的图片。

但是由于移动后端接口需要聚合的各个业务后端接口非常多,非常分散,而且某个图片是否有预生产好HEIC格式这个信息业务后端接口可能没有传递给移动后端接口,给移动后端接口改造也带来了难度。我们只能通过线上热度数据分析排出要改造的接口的优先级,联合多个业务后端团队有选择地挑选一些影响较大的接口,优先进行改造,以控制改造成本。

3)解决HEIC编码器性能问题,部分使用caplist方案解决项目后期HEIC格式访问量占比增长乏力的问题

Android端自研HEIC解码器的成功研发和落地也为HEIC编码性能较差问题提供了解决思路。技术团队又自研出了高性能HEIC编码方案——Q265编码器,其HEIC编码耗时接近于WebP,比老的X265编码器缩短70%,性能已满足实时生产的需求。这使得caplist方案又能够被采用了。不过,Q265编码器经过几次上线后的迭代改进,中间版本生产出来的HEIC图片有一些问题需要避免使用,因此,caplist覆盖范围必须设置为最终稳定版上线日期之后生产的HEIC图片。加上使用Q265编码器的图片生产工具没有被部署到所有图片CDN服务器,所以,针对HEIC格式的caplist方案是受限制的。

4)针对热度较高的历史图片进行补生产,进一步提升HEIC格式访问量占比

分析发现2020年之前生产的老图片仍然有较高的访问量,但是又没有预生产HEIC格式的图片,并且分布极为分散,难以通过移动后端接口改造的方式来返回HEIC格式给前端,也无法用caplist方案覆盖,因为caplist只能覆盖Q265编码器上线后生产的图片。

最终,我们通过统计线上图片的访问热度,对访问量较高的历史图片补生产了HEIC格式。

5)双端自研动图编解码渲染方案,提高降CDN成本的收益

分析发现移动端有20%-30%的图片流量来自动图,HEIC动图可以像视频编码压缩算法一样支持前后帧合成,文件压缩率比静图更高,但是当时没有现成的HEIC动图的生产端编码和移动端解码方案,需要全新自研。

  • 生产端编码方案:自研HEIC动图编码器
    使用H265格式编码,使用自研库进行格式封装,配置和调校参数以达到最优效果。实验了全I帧、IP帧、PB帧等多个方案,最终选择了自研IP帧方案,兼顾了兼容性和文件大小。
  • Android端解码方案:自研HEIC动图解码器
  • iOS端解码方案:自研HEIC动图解码器

4、上线效果

截止2023年3月8日,移动端HEIC格式图片相对于所有图片格式的访问量占比40%+,相比WebP节省流量13%+。HEIC图片格式之所以没能达到WebP格式当时85%的访问量占比,原因如下:

  • 通过移动后端接口改造的手段返回HEIC格式图片给移动前端成本较高,仅覆盖了少数访问量高的业务场景;

  • 通过caplist方案将非HEIC格式图片让CDN优先返回HEIC格式的手段,因Q265编码器上线时间不长,图片CDN服务器未全面部署等原因,仅覆盖了某个日期之后生产的某些图片CDN域名下的图片,范围较小;

  • 补生产的历史图片数量有限,全量补生产代价较大。


04

   AVIF格式落地实践

1、背景

比HEIC更新、更先进的图片格式是AVIF(AV1 Image File Format,是由开放媒体联盟开发,采用AV1视讯编码技术压缩图像的一种图像档案格式),其具有更高的图片压缩率,如果能推广落地,又能进一步降低图片CDN成本。经调研,iOS16+,Android12+系统层面对AVIF格式图片进行了支持。

由于在HEIC格式落地的过程中积累了很多成功经验,技术团队对支持更先进的AVIF图片格式信心满满。于是在2023年5月,我们又启动了AVIF图片格式落地专项,基本可以照搬HEIC格式落地的模式。

2、难点

  • 系统解码性能不佳

    由于iOS和Android系统解码层面依然存在解码性能差的问题,并且对于系统版本要求过高(Android 12+、iOS 16+),符合要求的线上设备数量占比不够高,导致无法直接使用系统解码作为上线方案。

  • 不支持透明图

    由于爱奇艺自研的QAV1编码器之前一直应用于视频编码,对于透明内容没有硬性要求,因此AVIF编解码器刚开始不支持透明内容。而在图片的使用过程中,透明图是比较常见的场景。


  • 图片覆盖范围不广
    在AVIF全面上线后,根据CDN团队的反馈,caplist方案仅能覆盖有AVIF预生产且支持按需生产的部分图片CDN域名下的部分目录,AVIF格式访问量整体占比依然偏低。通过数据分析发现访问量占比较大的一些目录还未支持AVIF格式图片预生产。另一方面,目前AVIF按需生产的支持范围依然不是很广。这两方面导致caplist方案覆盖范围非常受限。


3、解决方案

  • 自研avif解码器,解决移动端AVIF解码性能不佳的问题
    得益于爱奇艺QAV1视频编解码器已经广泛使用,可以将成果复用于图片的编解码方案。最终编解码团队自研的AVIF解码器支持iOS9+,Android7+以上的系统版本,并且解码性能优于libheif、libaom、libdav1等开源解码器。
  • 改进自研的avif编解码器,解决透明图问题
    经过编解码团队的不懈努力,在2023Q4对AVIF透明图的编解码进行了支持。
  • 用caplist方案覆盖更多图片CDN目录,提高AVIF格式占比
    后台系统在2023Q4对相关目录进行了预生产支持,使得这些目录下预生产日期之后生产的图片可以被caplist方案覆盖到。但是整体覆盖的目录下的图片访问占比仍然偏低。
    CDN团队正在研发全按需方案:所有图片CDN域名,所有目录都支持按需生产,且不需要使用caplist参数,通过文件名后缀指定图片格式。届时可以解决不同域名和路径对AVIF的支持。

4、上线效果

通过分析线上数据,观察到图片文件体积优化效果:

静图:HEIC比WebP小30%,AVIF比HEIC小11%,AVIF比WebP小38%;

动图:HEIC比WebP小60%,AVIF比HEIC小30%,AVIF比WebP小72%。

截止2024年Q1,爱奇艺移动端AVIF访问量占比46.54%,相对WebP节省流量30.71%。

05

   总结与展望

通过图片生产消费全流程跨部门通力合作,核心技术攻关,HEIC/AVIF编解码完整方案全自研等实践,爱奇艺逐步将主要图片格式从JPG迁移到最新的AVIF,在保证图片显示质量的前提下,有效地降低了图片CDN带宽成本。

未来,爱奇艺将继续努力提高AVIF图片格式的使用率,实现极致的图片CDN成本控制。


也许你还想看
奇异果投屏的进化之路
爱奇艺大数据离在线混部
工信部发布2023移动互联网应用服务能力优秀案例 爱奇艺两项目入选


本文分享自微信公众号 - 爱奇艺技术产品团队(iQIYI-TP)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

老乡鸡“开源”了 deepin-IDE 终于实现了自举! 好家伙,腾讯真把 Switch 变成了「思维驰学习机」 腾讯云4月8日故障复盘及情况说明 RustDesk 远程桌面启动重构 Web 客户端 微信基于 SQLite 的开源终端数据库 WCDB 迎来重大升级 TIOBE 4 月榜单:PHP 跌至历史最低点 FFmpeg 之父 Fabrice Bellard 发布音频压缩工具 TSAC 谷歌发布代码大模型 CodeGemma 不要命啦?做的这么好还开源 - 开源图片 & 海报编辑器工具
{{o.name}}
{{m.name}}

рекомендация

отmy.oschina.net/u/4484233/blog/11044121
рекомендация