算法|西瓜视频是如何实现“端到端HDR”的 | Q推荐

今年 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”的 | Q推荐
文章图片

【算法|西瓜视频是如何实现“端到端HDR”的 | Q推荐】下文将详细介绍该方案在 HDR 转码和播放环节的技术特点 。
HDR 转码对不同格式 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 设备上焕发了新生 。

算法|西瓜视频是如何实现“端到端HDR”的 | Q推荐
文章图片


算法|西瓜视频是如何实现“端到端HDR”的 | Q推荐
文章图片
图:西瓜视频 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 尽可能接近的播放效果 。

算法|西瓜视频是如何实现“端到端HDR”的 | Q推荐
文章图片
图:普通 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 观看环境 , 进而提升用户的观看体验 。
关于火山引擎多媒体实验室
实验室致力于研究、探索多媒体领域的前沿技术 , 参与国际、国内多媒体方向的标准化工作 , 为多媒体内容分析、处理、压缩、传输、创新交互等领域提供软硬件解决方案 。 目前多媒体实验室所提供的众多创新算法已经广泛应用在了抖音、西瓜视频等产品的点播、直播、实时通信、图片等多媒体业务 , 并向火山引擎的企业级客户提供技术服务 。

    推荐阅读