已绑定手机
资料通过chatgpt查找,仅供各位参考
|
海思HDR 开发指南主要介绍 HDR 开发:包括 HDR 业务 的数据流程 、相关模块的功能介绍 、相关 API 接口调用,并通过实例介绍 HDR 的开发过程以及注意事项。
相对应的产品版本如下。
一、概述
HDR(High-Dynamic Range)高动态范围技术,是下一个前沿的高质量视频解码和显示的技术,相比普通的图像效果,可以提供更多的动态范围和图像细节,能够更好的反映出真实环境中的视觉效果,带来绝佳的视觉体验。
HDR 显著增加亮度分量的动态范围和使用更广泛的颜色空间(BT 2020)。它是 4K UHD在电视领域进化的中心元素。本文主要描述如何利用 SDK 的 UNF 接口去播放 HDR 码流。目前主要支持 HDR10、VP9HDR、HLG、DolbyVision 等类型。
软件架构主要包含以下 4 层:
应用层(如 hiplayer)发送 es 数据给 AVPLAY。
处理器各模块硬件能力实现层的用户态部分。
处理器各模块硬件能力驱动层的内核态部分。
处理器各模块的硬件抽象层。
软件平台可划分为如下功能模块:
AVPLAY 功能主要是集成管理整个播放通路,包括收发数据、同步调整等。
视频解码器,输入是视频 ES 数据,输出视频帧,对于双流双层码流,需要开两路VDEC 通道。
WINDOW 为视频帧输出控制模块,包括窗口控制、图像质量提升等功能。DISP为显示模块。WINDOW 是基于 DISP 创建的,一个 WINDOW 对应一个 DISP,一个 DISP 可应多个 WINDOW。
SYNC 模块主要功能是用于音视频同步,AVPLAY 内部调用,不对外提供 UNF 接口,用户可通过 AVPLAY 接口设置 SYNC 参数。
以 sample_esplay 为例,播放 HDR 码流调用的模块主要就 AVPLAY、VO、DISP,它们的关系如图 1-1 所示。
APP 调 AVPLAY、WINDOW、DISP 的 UNF 接口就可以完成控制、播放的动作。数据流走 VDEC/VPSS/WINDOW 通路。
图1-1 模块关系图
模块关系图
二、重要概念
HDR Dolby vision 码流格式封装上包含 3 种形式:
【双层单流格式】
Hiplayer(上层应用以 hiplayer 为例,下同)从容器中解析到这种双层单流格式的 HDR流,和双层双流格式 HDR 流有所不同,不需要拆分出 BL 层与 EL 层,可直接将容器中解析到的 BL 与 EL,Metadata 打包数据送入 SDK 进行解码,AVPLAY 需要分配 BLbuffer 与 EL buffer,但是只向 Hiplayer 提供 BL Buffer 的写入和获取接口,Hiplayer 通过该接口送入 BL 与 EL、Metadata 数据,AVPLAY 内部把送入的数据拷贝一份再送入EL Buffer。由解码器解析实现 BL,EL 数据拆分。
【双层双流格式】
由于 EL 与 Metadata 数据打包在一起,BL 数据单独打包, AVPLAY 需要分配 BLbuffer 与 EL buffer,并提供 BL 与 EL 两种类型 buffer 的获取和写入接口,Hiplayer 通过该接口分别送入 BL 数据与 EL 、Metadata 数据。
【单层单流格式】
由于只有 BL 与 Metadata 数据,AVPLAY 只需要分配 BL Buffer,Hiplayer 通过 BLBuffer 写入接口送数据即可。
三、功能描述
3.1 功能特点
AVPLAY 模块提供了以下功能:
HI_UNF_AVPLAY_SetAttr:设置 HI_UNF_AVPLAY_ATTR_ID_HDR 属性。HDR 播放模式下,需要兼容只有单路视频解码通道的普通播放,为了区分 HDR播放与普通播放,需要通过 UNF 接口设置 AVPLAY 属性,传递 HDR 流封装类型,源类型,EL 层编码协议等信息。
AVPLAY 判断当前播放模式为 HDR 时,在调用 Start 接口进行播放前,需要创建另一路解码通道,并通过新增的 VDEC 属性设置接口,单独设置每路解码通道属性。调用 Start 接口进行播放时,同时打开两路播放通道。
HI_UNF_AVPLAY_SetHDRInfo:设置 HDR 信息接口,用户可通过此接口把metadata 传递到帧信息中。
HI_UNF_AVPLAY_GetHDRInfo:获取 HDR 信息接口,用户可通过此接口获取当前 HDR 码流 metadata 信息。
VDP 模块提供了以下功能:
HI_UNF_DISP_SetHDRType 设置输出 HDR 类型,默认 SDR 输出,用户可通过此接口设置为 SDR、DOLBY、HDR10、HLG 以及 AUTO,AUTO 模式主要是根据源和 Sink 端的能力自动选择一种最优的输出类型,配置为 AUTO 模式时必须先通过 HI_UNF_DISP_SetSinkCapability 接口设置 Sink 端的能力。
3.2 模块原理
典型的应用架构图如图 3-1 所示。
图3-1 DolbyVision HDR 数据流图
DolbyVision HDR 数据流图
数据流流程如下:
步骤 1 用户将 BL,EL 的 ES 数据送入 VDEC 解码。
步骤 2 解码后通过 VPSS 做后级处理。
步骤 3 AVPLAY 收取 BL,EL 的帧做同步处理后。
步骤 4 送入 SYNC 做音视频同步处理。
步骤 5 同步后的视频帧送入 Window 做后级显示处理。
----结束
HDR10、HLG、VP9HDR 等数据流图与普通 HEVC 数据流图一致。
图3-2 HDR10/HLG/VP9HDR 数据流图
HDR10/HLG/VP9HDR 数据流图
海思HDR 开发指南
- 文件大小:
- 517.3 KB
- 下载次数:
- 1
-
本地下载
|
|