今年 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 的标准经过多年的发展,分化出了多种标准,如 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 设备上焕发了新生。
对于非 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 算法)
兼容性及高性能优化
西瓜视频等产品使用字节跳动自研播放器,在 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 观看环境,进而提升用户的观看体验。
关于火山引擎多媒体实验室
实验室致力于研究、探索多媒体领域的前沿技术,参与国际、国内多媒体方向的标准化工作,为多媒体内容分析、处理、压缩、传输、创新交互等领域提供软硬件解决方案。目前多媒体实验室所提供的众多创新算法已经广泛应用在了抖音、西瓜视频等产品的点播、直播、实时通信、图片等多媒体业务,并向火山引擎的企业级客户提供技术服务。