yuv色彩空间和色彩范围

简介: yuv色彩空间和色彩范围

1.yuv色彩空间和色彩范围

色彩空间定义了视频采样中颜色的表示方式。常用的色彩空间包括 RGB 和 YUV,其中 YUV 更常用,因为它对人类视觉系统的特性更加符合。在 YUV 中,Y 表示亮度(luma),而 U 和 V 则表示颜色(chroma)。


色彩范围定义了视频中亮度和颜色的取值范围。完整范围(0-255)包含了所有可能的取值,包括黑色(0)和白色(255);而标准计算机范围(16-235)则排除了极端的黑色和白色值,使亮度和颜色范围更加均衡。


在使用 ffplay 播放视频时,可以通过设置命令行参数来指定色彩空间和色彩范围。


1.1要指定色彩空间,可以使用 -colorspace 参数,后跟所需的色彩空间名称。例如,要将视频解码为 BT.709 色彩空间,可以使用以下命令:

ffplay -colorspace bt709 input.mp4


1.2要指定色彩范围,可以使用 -color_range 参数,后跟所需的色彩范围名称。例如,要将视频解码为完整范围(0-255)的色彩范围,可以使用以下命令:

ffplay -color_range pc input.mp4


example:



以下是常用的色彩空间和色彩范围选项:


2.色彩空间:


bt601: ITU-R BT.601 色彩空间

bt709: ITU-R BT.709 色彩空间

smpte170m: SMPTE 170M 色彩空间

smpte240m: SMPTE 240M 色彩空间

这些标准就是rgb与yuv转换时的公式不同。参考文未链接。

-colorspace bt709 是 FFmpeg 中用于指定色彩空间的选项之一。它表示视频采用了 BT.709 色彩空间。BT.709 是一种广泛应用于高清电视和蓝光光盘等场景的标准色彩空间,它与 sRGB 色彩空间相似,但是有些微小的差异。在数字视频中,BT.709 色彩空间被广泛应用于 720p 和 1080p 的高清视频中。


除了 -colorspace bt709 之外,FFmpeg 中还有许多其他的色彩空间选项,如 -colorspace sRGB、-colorspace bt601、-colorspace smpte170m 等等。这些选项表示视频采用了不同的色彩空间标准。其中,sRGB 是计算机屏幕常用的色彩空间标准,而 bt601 和 smpte170m 则是早期电视和视频技术中常用的色彩空间标准。


这些不同的色彩空间选项之间的差异主要体现在以下两个方面:


2.1色彩分布:不同的色彩空间标准对颜色的分布方式和亮度和色度分量的权重分配有所不同。比如,在 sRGB 色彩空间中,亮度和色度的分配比例是 0.2126、0.7152 和 0.0722,而在 bt601 和 bt709 中则是 0.299、0.587 和 0.114。


2.2色彩范围:不同的色彩空间标准对亮度和色度的取值范围也有所不同。比如,在 bt601 中,亮度的取值范围是 16-235,而在 bt709 中则是 16-235 或 0-255(取决于色彩范围选项)。

在实际的视频处理中,正确指定视频使用的色彩空间非常重要,因为不同的色彩空间之间可能存在差异,如果没有正确指定色彩空间,就可能导致视频颜色不准确、失真等问题。因此,在处理视频时,应该根据实际情况选择正确的色彩空间选项,并结合其他选项,如 -color_range、-color_primaries、-color_trc 等一起使用,以确保视频的颜色正确、准确和一致。


3.色彩范围:


mpeg: MPEG 色彩范围

jpeg: JPEG 色彩范围

tv: 完整范围(0-255)

pc: 标准计算机范围(16-235)

色彩范围则指视频中亮度和颜色的取值范围。完整范围使用 0-255 表示所有可能的取值,包括黑色(0)和白色(255),而标准计算机范围则使用 16-235 表示亮度范围,使用 16-240 表示色度范围,排除了极端的黑色和白色值,使亮度和颜色范围更加均衡。对于完整范围和标准计算机范围的区别,可以看作是类似于线性和对数缩放的区别,即标准计算机范围是对完整范围进行了对数缩放。

注意:色彩空间和色彩范围选项的可用性取决于视频的编码和容器格式。某些格式可能不支持特定的色彩空间或范围选项。


thxchtb3wcn3k_d11fc1ff3db9431d8ad7575e9297ae48.png

相关文章
|
机器学习/深度学习 存储 编解码
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
13552 1
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
|
2月前
|
Web App开发 安全 数据安全/隐私保护
利用Python+Requests实现抖音无水印视频下载
利用Python+Requests实现抖音无水印视频下载
|
8月前
|
算法 数据安全/隐私保护 计算机视觉
基于Retinex算法的图像去雾matlab仿真
本项目展示了基于Retinex算法的图像去雾技术。完整程序运行效果无水印,使用Matlab2022a开发。核心代码包含详细中文注释和操作步骤视频。Retinex理论由Edwin Land提出,旨在分离图像的光照和反射分量,增强图像对比度、颜色和细节,尤其在雾天条件下表现优异,有效解决图像去雾问题。
|
4月前
|
算法 Linux API
tzst:我的首个 PyPI 项目——高效处理 Zstandard 压缩归档
`tzst` 是一个专注于简化 `.tzst` 和 `.tar.zst` 文件创建与管理的 Python 库,基于高性能 Zstandard 压缩算法。它提供命令行工具和 Python API,支持高压缩比、快速解压、跨平台运行及灵活解压选项。通过 `pip install tzst` 即可安装,适用于高效归档和数据处理场景。欢迎试用并反馈!
197 18
|
前端开发 计算机视觉
Building wheel for opencv-python (pyproject.toml) ,安装命令增加 --verbose 参数
Building wheel for opencv-python (pyproject.toml) ,安装命令增加 --verbose 参数
680 2
|
存储 C# 计算机视觉
将彩色图转化为灰度图及其原理介绍
将彩色图转化为灰度图及其原理介绍
287 0
|
Linux Shell
Linux基础:常用命令之echo命令详解(一)
Linux基础:常用命令之echo命令详解(一)
1450 0
Linux基础:常用命令之echo命令详解(一)
|
Prometheus 监控 数据可视化
面试分享:Airflow工作流调度系统架构与使用指南
【4月更文挑战第10天】Apache Airflow是关键的工作流调度系统,本文结合面试经验,深入探讨其核心架构和使用技巧。重点包括:1) Airflow的Scheduler、Web Server、Worker和Metadata Database组件;2) DAG、Task和Operator的概念;3) DAG编写、调度及错误处理策略;4) 监控与扩展性,如自定义Operator和最佳实践。通过学习,助你在面试中应对Airflow相关问题,并提升实际工作中的数据工程能力。
868 5
|
消息中间件 存储 算法
【云计算与大数据技术】数据编码LZSS算法、Snappy压缩库及分布式通信系统的讲解(图文解释 超详细)
【云计算与大数据技术】数据编码LZSS算法、Snappy压缩库及分布式通信系统的讲解(图文解释 超详细)
764 0
|
数据中心
《阿里巴巴浸没液冷数据中心规范》电子版地址
阿里巴巴浸没液冷数据中心规范
448 0
《阿里巴巴浸没液冷数据中心规范》电子版地址