视频图像中的YCbCr格式是怎么来的?

2024-04-11 19:04

本文主要是介绍视频图像中的YCbCr格式是怎么来的?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

颜色模型总述
想要知道视频图像中的YCbCr格式是怎么来的,首先简单里了解下述几种的颜色模型包括:
CIE RGB 颜色模型:基于人眼视觉感知三原色理论,CIE 通过大量实验数据建立 RGB 颜色模型,标准化了 RGB 表示。
CIE XYZ 颜色模型:为解决 RGB 模型中,与负光混合所带来的种种问题,CIE 从数学上定义了三种标准基色 XYZ,形成了 CIE XYZ 颜色模型。
NTSC YIQ 颜色模型:在模拟电视时代,RGB 工业显示器要求一幅彩色图像由分开的 R、G、B 信号组成,而电视显示器则需要混合信号输入,为了实现对这两种标准的兼容,NTSC 基于 XYZ 模型制定了 YIQ 颜色模型,实现了彩色电视和黑白电视的信号兼容。
PAL YUV 颜色模型:为了解决 NTSC YIQ 的组合模拟视频信号中分配给色度信息的带宽较低而影响了图像颜色质量的问题,PAL 引入了 YUV 颜色模型,支持用不同的采样格式来调整传输的色度信息量。
ITU-R YCbCr 颜色模型:进入数字电视时代,ITU-R 为数字视频转换制定了 YCbCr 颜色模型,成为我们现在最常使用的颜色模型。
颜色建模的背景
颜色模型:在某种特定上下文中对颜色的特性和行为进行解释的方法。没有哪种颜色模型能解释所有颜色问题,因此需要使用不同模型来帮助说明看到的不同的颜色特征。
实际应用,针对某一类型应用场景,人们希望尽量做到颜色模型统一和兼容,所以经历了一系列颜色建模和标准制定的过程。下图是颜色标准制定的关键节点图:
在这里插入图片描述
CIE 是国际照明协会的简称,是最早采用数学方式来定义颜色模型的。CIE 是从 1920 年代后期 W. David Wright(Wright 1928)和 John Guild(Guild 1931)做一系列实验中建立了初始的RGB颜色模型,且标准了RGB的表示,即为CIE RGB。
接下来,从 CIE RGB 开始依次介绍 CIE XYZ、NTSC YIQ、PAL YUV 等颜色模型,最后到 ITU-R YCbCr 结束,就来到了目前在视频开发中最常接触的 YCbCr 模型。希望在这趟历程里能帮你梳理清楚『颜色』这个概念的发展脉络。
CIE RGB 颜色模型
当光由两个或多个具有不同主频率的光源混合而成时,我们可以改变各个光源的强度来生成一系列其他颜色的光,这是构造颜色模型加色模式。
==其中用来生成其他颜色光源的色彩称为基色。==通过基色可以产生的所有颜色的集合称为该颜色模型的颜色范围(色域)。如果两种基色混合则生成白色光,就称它们为互补色,比如红色和青色、绿色和品红、蓝色和黄色都是互补色。
在基本颜色中,没有哪一组集合能组合生成所有可见的颜色。但三种基色对多数应用来说是够用的,且不包含在指定基色集的颜色范围中的颜色仍可使用扩充方法进行描述。RGB 即为一种加色模式,多种基色的量加在一起生成另一种颜色。
使用RGB表示时,要注意的是,在 光谱500 nm 附近的颜色需要从蓝光和绿光的混合光中再『减去』对应的红光得到(红光曲线在 500 nm 附近是负值)。由于这个『负光』的效果在 RGB 彩色显示器无法实现,所以 RGB 彩色显示器不能显示 500 nm 左右的颜色。
CIE XYZ 颜色模型
因为 RGB 模型中与『负光』混合所带来的种种问题,CIE 从数学上定义了三种标准基色 XYZ(是理论上的颜色,而非实际的颜色),形成了『CIE XYZ 颜色模型』。
此外,还定义了一组输出全部为正值的 『XYZ 颜色匹配函数』,指定描述任何一种光谱颜色所需要的各基色分量,XYZ 颜色匹配函数是基于 RGB 三基色颜色匹配函数的线性组合。
CIE XYZ 颜色模型是定义各种颜色的国际标准,并且使用 CIE 基色还能避免颜色负值匹配问题,以及选择一组实际基色有关的其他问题。
在 XYZ 颜色空间中任何颜色都可以表示为三个基色的单位向量 的加性组合,即:

在这里插入图片描述

其中 C(λ) 表示彩色光的亮度(luminance),对应颜色的亮度(brightness)特征。X、Y、Z 则为三基色比例系数。XYZ 颜色模型表示颜色时满足以下 3 个条件:
XYZ 颜色模型表示颜色时满足以下 3 个条件:
X、Y、Z 三色比例系数大于 0;
Y 的数值正好表示光的亮度值;
当 X = Y = Z 时,表示标准的白光。

NTSC YIQ 颜色模型
RGB 工业显示器要求一幅彩色图像由分开的 R、G、B 信号组成,而电视显示器则需要混合信号输入,为了实现对这两种标准兼容,NTSC(美国国家电视系统委员会)制定了 『YIQ 颜色模型』,主要优点是可实现对彩色电视和黑白电视兼容,即可用黑白电视收看彩色电视信号。
YIQ 颜色模型是以 CIE XYZ 颜色模型为基础定义,其参数 Y 与 XYZ 模型中参数 Y 相同,为图像的亮度信息。在没有色度情况下,Y 就对应黑白图像,或者说黑白电视只接收 Y 信号,参数 I 包含有橙-青颜色信息,提供鲜艳色彩的明暗度,参数 Q 包含绿-品红颜色信息。
NTSC 组合颜色信号的设计允许黑白电视机从一幅占 6 MHz 带宽的图像信息中提取所需的灰度信息,因此,YIQ 信息必须在 6 MHz 带宽限制下编码。亮度值和色度值用不同模拟信号进行编码,这样只是在原来的带宽内增加了颜色信息,黑白电视机仍然可以按原来的方式取得原样的亮度信号。
亮度信息(Y 值)以调幅的方式用带宽约为 4.2 MHz 的载波传输;色度信息(I、Q 值)被结合在一起用带宽约为 1.8 MHz 的载波传输。参数名称 I、Q 指的就是用来在载波上编码颜色信息的调制方法。
PAL YUV 颜色模型
上面提到,因为NTSC YIQ 组合模拟视频信号中分配给色度信息带宽较低,所以 NTSC YIQ 图像颜色质量会受一些影响。当开始追求更高图像品质时,需改善这个问题,诞生了多种 YIQ 编码变体来提高视频传输的颜色质量。『YUV 颜色模型』就是一种变体,它为 PAL 广播制式提供视频传输的组合颜色信息,它可用不同采样格式来调整传输的色度信息量。
YUV 颜色模型中用亮度、色度来表示颜色。它的亮度信息和色度信息是分离的,其中 Y 表示亮度通道,U 和 V 则表示色度通道。如果只有 Y 信息,没有 U、V 信息,表示的图像就是灰度图像。YUV 常用在各种影像处理场景中。YUV 在对照片或视频编码时,考虑到人眼对亮度信息的敏感度高于色度信息,允许降低色度的带宽。
ITU-R YCbCr 颜色模型
YCbCr 颜色模型是目前广泛使用的一种 YUV 变体,它是为数字视频转换而设计的颜色模型。YCbCr 由 ITU-R(国际电信联盟无线电通信部门,前身是国际无线电咨询委员会 CCIR)在 ITU-R BT.601 首次制定,并在后续的 ITU-R BT.709、ITU-R BT.2020 等标准中都有涉及。
ITU-R BT.601/709/2020 系列标准,规定了彩色视频转换成数字图像时使用的采样率,RGB 和 YCbCr 两个彩色模型之间的转换关系等,它们分别面向标清电视(SDTV)、高清电视(HDTV)、超清电视(UDTV)应用场景。各个标准下的颜色范围如下:
在这里插入图片描述
结论
下面对图像数字描述过程中的颜色建模的发展历程总结如下:
基于人眼视觉感知三原色理论,CIE 通过大量实验数据建立了 RGB 颜色模型,标准化了 RGB 表示 → 为解决 RGB 模型中与负光混合所带来的种种问题,CIE 从数学上定义了三种标准基色 XYZ,形成了 CIE XYZ 颜色模型 → 在模拟电视时代,RGB 工业显示器 要求一幅彩色图像由分开的 R、G、B 信号组成,而电视显示器则需要混合信号输入,为了实现对这两种标准的兼容,NTSC 基于 XYZ 模型制定了 YIQ 颜色模型,实现了彩色电视和黑白电视信号兼容 → 为解决 NTSC YIQ 的组合模拟视频信号中分配给色度信息的带宽较低,而影响了图像颜色质量的问题,PAL 引入了 YUV 颜色模型,支持用不同的采样格式来调整传输的色度信息量 → 进入数字电视时代,ITU-R 为数字视频转换制定了 YCbCr 颜色模型,成为我们现在最常使用的颜色模型。

这篇关于视频图像中的YCbCr格式是怎么来的?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

Mac备忘录怎么导出/备份和云同步? Mac备忘录使用技巧

《Mac备忘录怎么导出/备份和云同步?Mac备忘录使用技巧》备忘录作为iOS里简单而又不可或缺的一个系统应用,上手容易,可以满足我们日常生活中各种记录的需求,今天我们就来看看Mac备忘录的导出、... 「备忘录」是 MAC 上的一款常用应用,它可以帮助我们捕捉灵感、记录待办事项或保存重要信息。为了便于在不同

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见