HDRSample 项目推荐
1. 项目基础介绍和主要编程语言
HDRSample 是一个开源项目,专注于在 Android 平台上实现 HDR(高动态范围)视频到 SDR(标准动态范围)视频的转换。该项目主要使用 Java 和 OpenGL 进行开发,充分利用了 Android 平台的 MediaCodec 和 OpenGL 技术。
2. 项目核心功能
HDRSample 项目的主要功能包括:
- HDR 到 SDR 转换:通过 MediaCodec 和 OpenGL 实现 HDR 视频到 SDR 视频的转换,解决了在非 HDR 屏幕上播放 HDR 视频时视频变灰的问题。
- 多种输出模式:支持直接输出到 Surface 或通过 OpenGL 中转输出。
- 视图模式:无缝切换 SurfaceView 和 TextureView。
- 纹理配置:支持多种纹理来源配置(如 Auto、YUV420Buffer、外部纹理 OES、Y2Y)和纹理位深配置(8 位、10 位、16 位)。
- HDR 转 SDR 配置:支持 CubeLut 配置(如 PQ 转 SDR 12 种、HLG 转 SDR 4 种)和 Shader 配置(支持 PQ 和 HLG 视频的色度矫正、色调参考、色调映射、色域转换、Gamma 压缩)。
- 测试视频:提供 10 个测试视频,支持无缝切换。
3. 项目最近更新的功能
最近更新的功能包括:
- 色调映射:支持 Android 8 的 Tonemap、Android 13 的 Tonemap、BT2446A、BT2446C、Hable。
- 色域转换:支持 BT2020 转 BT709 的 Clip、Compress、adpative_l0_cusp。
- HDR 设备兼容性:记录不同手机的 HDR 兼容性,方便开发者进行兼容性测试和优化。
- 关键代码优化:对 Shader 目录下的色度矫正、色调参考、色调映射、色域转换、Gamma 压缩等关键代码进行了优化和注释。
通过这些更新,HDRSample 项目进一步提升了 HDR 到 SDR 转换的效率和兼容性,为开发者提供了更强大的工具和资源。