ArchSummit 深圳站日程上线,80+国内外技术团队现场分享,点击查看 了解详情
写点什么

西瓜视频是如何实现“端到端 HDR”的

Keith

2021 年 8 月 26 日

西瓜视频是如何实现“端到端HDR”的

今年 6 月,西瓜视频宣布全面支持 HDR 视频功能,成为首个 HDR 技术覆盖全形态(手机、PC 和平板)、打通全环节(拍摄、编辑和消费)的视频平台。


HDR(High Dynamic Range,高动态范围 ) 视频,相比普通 SDR 视频拥有更高的色深、更广的动态范围和更强的色彩表现力,能显著提升视频画质。当西瓜用户拍摄、编辑、预览、上传和观看 HDR 视频时,字节跳动旗下火山引擎多媒体实验室的“端到端 HDR 视频解决方案”发挥了重要作用,该方案也已逐步开放给火山引擎的企业级客户。


近几年,众多厂商纷纷在不同终端设备上提供 HDR 技术,包括拍摄、播放的能力支持等。但是,HDR 技术的运营并不是单一的某个环节,而是从内容制作到传输再到设备显示的端到端技术。为了有效转码处理 HDR 格式相关视频内容,并在终端设备上完美呈现 HDR 的画面,火山引擎多媒体实验室打造了一套完整的解决方案,支持多种不同格式 HDR 视频内容从上传、转码、分发,最终到终端适配播放的能力。


为了提升用户体验,该方案在端到端的不同环节采用了以下独特技术:


一、为丰富 HDR 视频来源,设计独特的逆色调映射 (Inverse Tone Mapping) 算法,最大程度地实现了对现有 SDR 节目的 HDR“还原”及向上兼容;


二、为提升普通 SDR 设备上的用户观看体验,设计特有的色调映射(tone mapping)算法,在 SDR 设备上获得与 HDR 尽可能接近的播放效果;


三、播放端高色彩还原渲染及低功耗解决方案,可支持高达 4K 分辨率和 60fpsHDR 视频流畅播放;


四、为安卓平台提供了国内首个通用 HDR 亮度管理方案,确保不同安卓机型都能有相对稳定的 HDR 观看体验。


火山引擎多媒体实验室“端到端 HDR 视频解决方案”流程图如下:

下文将详细介绍该方案在 HDR 转码和播放环节的技术特点。

HDR 转码

对不同格式 HDR 源的转码支持


HDR 的标准经过多年的发展,分化出了多种标准,如 HDR10、HDR10+、Dolby Vision 及 HLG,而西瓜视频等产品用户上传的 HDR 视频还涉及不同的编码位深(8bit,10bit,12bit)和多种视频编码器标准,目前的转码工作流能够准确识别和兼容已知的所有 HDR 视频格式


为了更好地处理 HDR 这种高动态视频,字节跳动自研编码器 BVC 也做了大量针对性优化,包括但不限于 SIMD 实现,编码优化算法等,在计算复杂度和编码效率方面取得了一个较高的平衡。

由 SDR 生成 HDR 视频的算法处理


HDR 内容最早由电影节和广播电视公司生产,第一批 4K HDR 电影在 2015 年由福克斯电影公司推出,同年 Sony 在 SMPTE 会议上展示了他们的 HLG 视频,HDR 渲染在电子游戏领域的应用则要更早。直到最近几年,消费侧的 HDR 播放功能才开始慢慢普及开来,而在此之前,为了兼容主流播放设备,HDR 内容都不得不被转换为 SDR 进行传播。


因此,网络上存在大量原本是 HDR 格式的 SDR 内容,如电影片段、游戏画面,专业摄影作品等。对于这部分内容,技术团队利用算法对其进行了重制,使用了 inverse tone mapping 技术,将这些 SDR 视频还原为了原有的 HDR 格式,在用户的 HDR 设备上焕发了新生。



图:西瓜视频 SDR 及 HDR 效果对比

对于非 HDR 设备的兼容支持


当 HDR 视频在 SDR 设备上播放时,会发生黑屏(解码器不支持)或者色彩异常(播放器不支持)等诸多兼容性问题。为了保证还在使用 SDR 设备的用户体验,服务端必须进行向下兼容的转码处理,对于 HDR 源视频,技术团队使用了 tone mapping 算法,转换出相应的 SDR 版本并下发给这部分用户。


HDR 到 SDR 视频的转换,经历了亮度动态范围和色彩空间的压缩(BT.2020 到 BT.709)以及光电转换函数 EOTF 的变化,同时信号位深也由 10bit 降低到 8bit,视频信号可用的色阶数量减少了 75%(1024 到 256 个)。为了最大限度保留 HDR 视频中的暗部和亮部细节,同时保证色彩不失真,技术团队通过分析视频图像的亮度和色域分布等图像特征,动态调整不同场景下的转换参数,充分利用 8bit 信号的 256 个色阶来表现原本的 HDR 内容,保证 HDR 源视频中的画面能够尽量准确完好地呈现给 SDR 设备的用户。


考虑到传统的 SDR 标准基于 100nit 的最大亮度设计,而如今的智能手机屏幕亮度普遍高于这个数值。为了充分利用手机屏幕的亮度范围,在用户设备上呈现最佳的显示效果,需要给画面暗部细节分配更多的色阶,同时需要更高的画面整体对比度。因此在转换处理中,技术团队基于消费端的播放环境重新设计了 tone mapping 算法的参数,使得转换后的视频在普通 SDR 设备上也能呈现出与 HDR 尽可能接近的播放效果。


图:普通 SDR 设备播放 HDR 视频的效果(右图应用了 Tone Mapping 算法)

HDR 播放

兼容性及高性能优化


西瓜视频等产品使用字节跳动自研播放器,在 Android 和 iOS 上均支持 HDR10/HLG 等多种 HDR 格式,通过机型数据探测出具备 HDR 播放能力的设备,并进行分发、播放支持,在不同机型上都能有稳定的 HDR 画质表现。


值得一提的是,该播放器在 Android 上还具备 HDR 回退 SDR 的渲染能力,在不支持真 HDR 的 Android 机型上,可使用 Tone Mapping 将 HDR 转到 SDR 渲染,保证用户终端播放画质的最优显示。在 iOS 端则使用异步初始化技术,极大地缩短了 HDR 视频的起播时长,进一步提升视频播放体验。


在保证极致色彩体验及低功耗的情况下,字节播放器可支持高达 4K 分辨率和 60fps 流畅播放。

HDR 亮度自适应方案


为了给用户充分展现 HDR 内容,西瓜视频在移动端播放视频时,需要充分利用设备屏幕的高动态范围。根据动态范围的定义,屏幕的动态范围由最大亮度和最低亮度(黑位)的比值决定。当人们在一块 OLED 屏幕上观看 HDR 视频时,由于其黑位是固定值,视频的动态范围完全由屏幕的最大亮度决定。因此,为了让用户观看 HDR 内容时感受到比 SDR 视频更高的动态范围,需要调高屏幕亮度来做到这一点。


目前主流的安卓设备厂商缺乏统一的亮度管理方案。为此,火山引擎多媒体实验室提出了国内首个安卓端通用 HDR 亮度管理方案,在实验室测定了不同初始亮度下的最佳 HDR 观看亮度曲线,并集成到了西瓜视频安卓端 APP,在不同机型和不同初始亮度下播放 HDR 视频时自适应地调整当前屏幕亮度,保证了不同安卓机型都能够有相对稳定的 HDR 观看环境,进而提升用户的观看体验。

关于火山引擎多媒体实验室


实验室致力于研究、探索多媒体领域的前沿技术,参与国际、国内多媒体方向的标准化工作,为多媒体内容分析、处理、压缩、传输、创新交互等领域提供软硬件解决方案。目前多媒体实验室所提供的众多创新算法已经广泛应用在了抖音、西瓜视频等产品的点播、直播、实时通信、图片等多媒体业务,并向火山引擎的企业级客户提供技术服务。

2021 年 8 月 26 日 15:452126

评论

发布
暂无评论
发现更多内容

技术选型(一)

wing

极客大学架构师训练营

架构师训练营 - 作业 - 第五周

Max2012

架构师训练营第 5 周学习总结

netspecial

极客大学架构师训练营

架构师训练营第二期 Week 1 总结

bigxiang

UML作图

Arthur

极客大学架构师训练营

架构师训练营 Week5 技术选型 - 缓存/消息队列/负载均衡

负载均衡 缓存 消息中间件

食堂就餐卡设计

博博

一致性Hash算法的实现及分析

天天向上

极客大学架构师训练营

极客时间第 2 期架构师训练营第一周作业 1

willson

如何将文章高效发布到多个平台|MWeb 七牛云图床配置

彭宏豪95

写作 markdown 图床 MWeb

食堂就餐系统

落朽

架构师训练营第二期Week 1作业

bigxiang

极客大学架构师训练营

week05学习总结

追风

架构师一期

架构师训练 第一周 学习总结

阿光

训练营第五周作业 1

仲夏

极客大学架构师训练营

【第五周】课后作业

云龙

架构师训练营第五周课程笔记及心得

Airs

week05作业

追风

架构师一期

架构师训练营 第一周 作业 食堂就餐卡系统设计

阿光

极客时间架构 1 期:第5周 技术选型(一) - 学习总结

Null

[架构师训练营第 1 期] 第五周命题作业

猫切切切切切

极客大学架构师训练营

食堂就餐卡系统设计

水浴清风

[架构师训练营第 1 期] 第五周学习总结

猫切切切切切

极客大学架构师训练营

架构设计-UML案例

架构师训练营第 1 期 -Week5 - 技术选型一学习总结

鲁小鲁

极客大学架构师训练营 负载均衡架构 缓存架构 消息队列架构

架构设计学习笔记1

Arthur

极客大学架构师训练营

架构师训练营第1期第五周作业

Leo乐

极客大学架构师训练营

架构师训练营 1 期 -- 第五周笔记

曾彪彪

极客大学架构师训练营

Netty源码解析 -- ChannelOutboundBuffer实现与Flush过程

binecy

源码分析 Netty nio

第一章学习笔记

博博

第一周学习总结

陈浩

极客大学架构师训练营

MySQL 核心特性与优化

MySQL 核心特性与优化

西瓜视频是如何实现“端到端HDR”的-InfoQ