图形图像处理算法(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

相关文章

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

使用Python处理CSV和Excel文件的操作方法

《使用Python处理CSV和Excel文件的操作方法》在数据分析、自动化和日常开发中,CSV和Excel文件是非常常见的数据存储格式,ython提供了强大的工具来读取、编辑和保存这两种文件,满足从基... 目录1. CSV 文件概述和处理方法1.1 CSV 文件格式的基本介绍1.2 使用 python 内

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用