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

相关文章
|
4月前
|
存储 弹性计算 Linux
阿里云服务器购买教程参考:快速、自定义和通过活动购买三种主流方式全流程图文教程
阿里云服务器可以通过快速购买、自定义购买和活动购买三种主流购买方式完成购买。每种购买方式都有自己的适合场景,也有很多需要注意的地方,下面是这些购买方式的具体图文教程及注意事项,适合初次购买阿里云服务器的用户参考。
622 1
|
9月前
|
人工智能 缓存 Kubernetes
几大AI知识库致命坑点:避开它们,少走3个月弯路!
本文详解AI知识库在企业中的应用,涵盖架构设计、文档处理、工作流优化与性能调优等核心技术,结合实际案例帮助读者避开落地过程中的常见陷阱,适合希望提升AI应用能力的技术人员阅读。
798 2
|
9月前
|
Windows
Win10 在运行文明5时弹出“无法正常启动0xc0000142”《文明5》错误代码0xc0000142修复方法
错误代码0xc0000142常见于Windows系统,导致应用程序无法正常启动,如游戏、软件等。本文介绍多种修复方法,包括使用第三方修复工具、调整系统区域设置以及重新安装程序,帮助用户轻松解决该问题。
5693 1
Win10 在运行文明5时弹出“无法正常启动0xc0000142”《文明5》错误代码0xc0000142修复方法
|
缓存 资源调度
npm install安装时一直idealTree:npm: sill idealTree buildDeps解决方案(亲测有效)
npm install安装时一直idealTree:npm: sill idealTree buildDeps解决方案(亲测有效)
9480 2
|
存储 人工智能 移动开发
HTML5 游戏开发实战 | 五子棋
五子棋是一种家喻户晓的棋类游戏,它的多变吸引了无数的玩家。本章首先实现单机五子棋游戏(两人轮流下),而后改进为人机对战版。整个游戏棋盘格数为 15×15,单击鼠标落子,黑子先落。在每次下棋子前,程序先判断该处有无棋子,有则不能落子,超出边界不能落子。任何一方有横向、竖向、斜向、反斜向连到 5 个棋子则胜利。
24328 8
HTML5 游戏开发实战 | 五子棋
|
存储 边缘计算 物联网
探索边缘计算:重塑物联网时代的数据处理格局
探索边缘计算:重塑物联网时代的数据处理格局
|
网络协议 网络安全
【网络安全 | HTTP】 gopher协议原理、语法及利用总结
【网络安全 | HTTP】 gopher协议原理、语法及利用总结
1304 0
|
前端开发 计算机视觉
Building wheel for opencv-python (pyproject.toml) ,安装命令增加 --verbose 参数
Building wheel for opencv-python (pyproject.toml) ,安装命令增加 --verbose 参数
1083 2
|
监控 物联网 调度
海洋可再生能源:潮汐与波浪发电技术
【10月更文挑战第1天】在能源需求增长与化石燃料枯竭的背景下,海洋可再生能源变得尤为重要。本文探讨了潮汐与波浪发电技术的原理、现状及未来。潮汐发电利用水位周期性变化,分为潮汐流与潮汐堰发电;波浪发电则利用波浪运动,包括浮筒型、摆动装置和悬挂式装置等形式。当前,这些技术虽处于商业化初期,但在法国、中国等地已有显著进展。未来,技术创新与升级、规模化应用及多元化发展将推动潮汐与波浪发电成为重要的清洁能源来源。
|
存储 算法 安全
密码学系列之九:密钥管理
密码学系列之九:密钥管理
3079 45