HVS的真相

HVS的真相

人眼视觉系统( human visual system,HVS)是人类通过感知光线形成视觉的系统,是人类捕获外界信息最关键的系统之一。HVS在视频编码的主观优化中发挥重要作用。关于HVS有以下特性不得不知:

  1. HVS对高频信号的失真不敏感,对低频信号的失真更敏感。这个特性在视频编码的变换过程中有所应用。在对DCT系数量化过程中,对高频系数使用更大的量化步长。H.265和H.264都支持自定义量化矩阵,用户可以根据需要对低频系数进行精细量化,对高频系数进行粗略量化。

  2. 灵长类的视觉处理主要在视觉皮质和外侧膝状核(大脑的一部分)进行。眼睛是具有简单预处理功能的传感器,所有的预处理(例如,边缘增强)由视网膜的神经节细胞完成。通过神经节细胞完成预处理是一个很好的分布式计算的例子。基本形状的识别(例如,圆、矩形)在大脑中进行,由大脑皮层的柱状细胞完成。每列细胞负责检测自己的形状,列内处理是串行的。基于HVS的视频编码基本思想是去除那些被视网膜忽略的内容。如果去除过多则人眼会感觉到失真,如果去除过少则会造成压缩效率不高。

  3. HVS能够在一个场景中同时以大约10^5:1的对比度感知光线。这个范围远超现在的采集和显示设备能够提供的动态范围。现有的绝大多数消费相机和显示设备能够支持对比度约为100:1到1000:1的低动态范围(LDR)视频内容。

  4. HVS对物体的绝对亮度判断力差,而对物体的亮度变化感知敏锐。也就是说HVS对对比度大的内容失真更敏感。

  5. 人眼对亮度的适应分为亮适应、暗适应和局部适应。从平均亮度小的暗环境转入平均亮度大的亮环境的人眼视觉过程称为亮适应,其适应时间为几秒钟到几分钟。从亮环境转入暗环境的适应称为暗适应,适应时间从几秒钟到几十分钟。

  6. 有两种类型的光感受器:视杆细胞和视锥细胞。视杆细胞对弱光敏感,它们不能区分颜色,主要分布在外侧。视锥细胞对长波、中波和短波的较高波长的光敏感,它们是感知颜色的基础。视锥细胞主要集中在视网膜的中心区域(中央凹)。视杆细胞大约有1亿个,视锥细胞大约有650万个。目前最流行的色度下采样是4:2:0(4个亮度像素对于2个色度像素),亮度像素:色度像素=2:1。为什么不是8:2:0,亮度像素:色度像素=4:1?

  7. 为什么现在常用的视频编码采用YUV(或YCbCr)4:2:0?这是因为HVS对结构更敏感(亮度分量),对颜色不敏感(色度分量)。

  8. HVS对绿色更敏感,所以在由RGB空间向YUV空间转换时,Y分量中绿色(G)的权重更大。

    Y = 0.212671R + 0.715160G + 0.072169B

9.人眼对图像中心的分辨能力大于图像边缘。

感兴趣的请关注微信公众号Video Coding​

 

<think>好的,我需要帮助用户理解HVS与Python的关系,以及如何在Python中使用或实现HVS。首,我得明确HVS指的是什么。HVS通常有两种常见解释:人眼视觉系统(Human Visual System)或混合电压系统(Hybrid Voltage System)。根据用户提到的Python应用场景,可能更偏向于人眼视觉系统,尤其是在图像处理或计算机视觉领域。 首,我需要确认HVS的具体含义。用户没有提供更多上下文,但根据常见的Python库和引用内容,人眼视觉系统在图像处理中更为常见。例如,在图像压缩、质量评估等任务中,模拟HVS特性可以提高算法效果。因此,接下来需要查找Python中与HVS相关的库或实现方法。 查阅引用内容,发现用户提供的引用[1]是关于Python量化交易的课程,可能与HVS直接关联不大。引用[2]提到了Qt框架,包含GUI、多媒体等功能,可能涉及图像处理,但不确定是否直接支持HVS模型。因此,可能需要依赖其他资源。 接下来,思考如何在Python中实现HVS模型。通常,HVS模型涉及对比敏感度、多通道分解、视觉掩蔽效应等。Python中的图像处理库如OpenCV、scikit-image,以及科学计算库如NumPy、SciPy,可以用于实现这些模型。此外,可能需要参考相关论文或开源项目,了解具体的算法步骤。 例如,图像质量评估中的结构相似性指数(SSIM)就部分基于HVS特性。Python的scikit-image库已经实现了SSIM,这可能是一个切入点。另外,小波变换模拟HVS的多通道特性,可以使用PyWavelets库进行处理。 还需要考虑是否有现成的库或框架专门针对HVS建模。搜索发现,HVS相关的实现可能需要自行编码,但可以结合现有库的函数。例如,使用OpenCV处理图像,用NumPy进行矩阵运算,实现对比敏感度函数或视觉掩蔽模型。 用户可能希望了解具体的代码示例,比如如何应用HVS模型进行图像压缩或增强。因此,需要提供一个简单的示例,展示如何将HVS特性应用到图像处理中。例如,调整图像的频域成分以符合HVS的敏感度,从而优化压缩效果。 同时,用户可能对HVS的理论基础感兴趣,需要简要介绍HVS的关键特性及其在算法中的应用。例如,人眼对亮度变化更敏感,对高频细节不敏感,因此在压缩时可以适当去除高频噪声而不影响视觉效果。 最后,生成相关问题,帮助用户进一步探索HVS的应用,如与其他模型的比较、在深度学习中的应用,或者性能优化的方法。</think>关于HVS(Human Visual System,人眼视觉系统)在Python中的应用,通常涉及图像处理、计算机视觉和质量评估等领域。以下是关键点解析和实现方法: --- ### **1. HVS基础与Python关联** HVS研究人眼对亮度、颜色、纹理的感知特性,常用于: - **图像压缩**(如JPEG利用HVS的频率敏感度) - **质量评估**(如SSIM指标[^1]) - **图像增强**(根据视觉敏感度调整对比度) 在Python中,可通过以下库实现HVS相关模型: - **OpenCV**:处理图像预处理和频域变换 - **scikit-image**:提供SSIM等质量评估函数 - **PyWavelets**:模拟HVS的多通道感知特性 --- ### **2. 实现示例:基于HVS的图像对比度调整** ```python import cv2 import numpy as np def hvs_contrast_enhancement(image_path): # 读取图像并转为YUV色彩空间(分离亮度通道) img = cv2.imread(image_path) yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV) y, u, v = cv2.split(yuv) # 对亮度通道应用CLAHE(限制对比度自适应直方图均衡化) clahe = cv2.createCLAHE(clipLimit=3.0, tileGridSize=(8,8)) y_eq = clahe.apply(y) # 合并通道并转回BGR merged = cv2.merge([y_eq, u, v]) result = cv2.cvtColor(merged, cv2.COLOR_YUV2BGR) return result ``` **原理**:HVS对亮度变化敏感,通过增强亮度通道的局部对比度,使图像更符合人眼感知[^2]。 --- ### **3. HVS模型在质量评估中的应用** 使用`scikit-image`计算SSIM: ```python from skimage.metrics import structural_similarity as ssim def calculate_ssim(img1, img2): # 转为灰度图像 gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY) # 计算SSIM(考虑亮度和结构相似性) score, _ = ssim(gray1, gray2, full=True) return score ``` --- ### **4. 进阶应用:频域滤波模拟HVS** ```python import pywt def hvs_based_denoising(image): # 小波变换分解图像 coeffs = pywt.dwt2(image, 'haar') cA, (cH, cV, cD) = coeffs # 根据HVS高频系数进行阈值处理(人眼对高频噪声不敏感) threshold = 0.1 * np.max(np.abs(cD)) cD_filtered = pywt.threshold(cD, threshold, mode='soft') # 重构图像 coeffs_filtered = cA, (cH, cV, cD_filtered) reconstructed = pywt.idwt2(coeffs_filtered, 'haar') return reconstructed ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值