图形图像处理算法(1) ---- HDR 技术简介

2023-10-29 07:20

本文主要是介绍图形图像处理算法(1) ---- HDR 技术简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

随着HDR技术的发展,越来越多的视频平台和技术厂商持续推动 HDR 内容的制作和传播,HDR可以提供更加丰富的细节,更宽广的色域和更加自然的色彩过度,为了呈现更高的图像品质,给体验者带来更加沉浸的感受,HDR 的概念既可以是指显示设备,表示显示设备支持更高的色深,更广的色域范围,能显示更高和更低的亮度,也可以是指数字媒体内容,比如视频,表示视频的编码使用了更高的色深,更广的色域范围,支持更高更低的亮度并且采用了对应的压缩曲线。

1. 动态范围的概念

一般来说,动态范围是指某个观测值的最大值和最小值的比值或范围,比如,我们观测场景中不同物体的亮度,它的最大值和最小值的比值就是这个场景亮度的动态范围,或者简单称这个场景的动态范围。类似的,人的各种感观(视觉,听觉和痛觉)也有可以分辨的最大值和最小值,因此也有相应的动态范围。

自然场景中的动态范围比较大,通常可以达到 10^9 量级,人眼的动态范围很广,一般至少在 10^8 量级,但是由于采用 8 位整型记录像素值,传统的数字图像和视频格式,只可以区分 256 个不同的亮度等级,在普通的显示器上显示时,其亮度范围大概在 10^3 这个量级,因此,从动态范围的角度看,传统的图形视频内容和人眼所见的真实场景存在很大的差距,限制了视频内容的丰富性,这也是视频看上去总是不像真实世界的一个重要原因。

对比度和动态范围的区别:

对比度是画面最亮和最暗部分的比值,对比度的是包含在动态范围里的概念,我们提高对比度是把画面亮的部分变得更亮,暗的部分变得更暗,调节对比度可以改变画面的动态范围,有可能增加也有可能降低,要根据画面的实际情况来看。字面意思来讲对比度是一个比值,动态范围是一个范围

2. HDR视频格式

传统的图像和视频中的像素值都被记录为 8 bit 整型数据,这是受多方面因素共同影响的结果,从信号处理和视觉系统的角度看,这主要是因为传统显示器的亮度不高,大约在100nit 这个量级,在这个范围内,256 等级的量化足以使相邻亮度级之间的差异,小于人眼对亮度变化的感受阈值,增加额外的量化等级,并不能带来明显的画质提升,而随着显示技术的发展,当下的显示器已经可以高质量的支持 1000 nit 的最大亮度,这个时候,256 级的量化方案中,相邻两个亮度级之间的差异就很容易被人眼观察到。如下图所示,在亮度平缓变化的区域,量化间隔过大造成了条带现象(亮度和色彩断层),严重影响画质。

随着量化间隔的增大,图像的缓慢变化的灯光区域出现 条带现象,验证影响画面质量。

为了解决这个问题,HDR视频中至少采用10bit 整型数据记录像素值,从而支持不少于 1024 个亮度级,更密集的亮度等级分布,能在很大程度上避免图像质量的下降,此外,不同于SDR 视频所用的曲线,HDR视频使用的是 PQ(Perceptual Quantizer)曲线或者是 HLG(Hybrid log_Gamma)曲线压缩场景亮度,这些压缩曲线在设计的时候很好的考虑到了人眼对于不同亮度的敏感度,更适合亮度变化范围很大的场景。

3. HDR 视频的特点

除了上面的量化误差问题,和SDR视频相比,HDR视频还有很多优势,比如:

3.1 HDR 视频可以展示更高范围的亮度

一方面,这使得HDR视频能够同时记录高亮区域和低亮度区域的细节,从而使视频的细节更加丰富,如果使用SDR视频,这些区域内的细节会因为曝光过度或者曝光不足而丢失。另一方面,这使得HDR视频的对比度更大,画面更富有层次感。传统的SDR视频为了在有限的亮度范围内展示原始场景,通常为严重压缩自然场景的亮度范围,造成视频内容对比度不足,如下图所示:

 和上图的 SDR视频相比,HDR视频具有更大的亮度范围,画面层次更加丰富

3.2 HDR 视频可以展示更加丰富的色彩

HDR视频各个颜色分量的取值范围更大,从而能记录更大范围的色彩,尤其是饱和度较大的色彩因此 HDR 视频一般采用能覆盖更多色彩的 Rec 2020 色彩空间。比较直观的讲,由于采用10bit 整型数据,HDR视频的每个像素都可以表示超过 10 亿种颜色,与之相比,采用 8bit 的SDR视频中,每个像素仅仅可以表示不到 2千万(16,777,216)种颜色。HDR视频中这些丰富的色彩,可以更好的展现自然场景中更为细致的色彩变化。

 由于这些优势特性的存在,HDR视频呈现的画面更接近人眼观看自然场景时的情况,从而给观察者带来更加真实的视觉体验。

这篇关于图形图像处理算法(1) ---- HDR 技术简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/299101

相关文章

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Java堆转储文件之1.6G大文件处理完整指南

《Java堆转储文件之1.6G大文件处理完整指南》堆转储文件是优化、分析内存消耗的重要工具,:本文主要介绍Java堆转储文件之1.6G大文件处理的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言文件为什么这么大?如何处理这个文件?分析文件内容(推荐)删除文件(如果不需要)查看错误来源如何避

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口