关于YUV视频

简介: 关于YUV视频

什么是YUV

数字视频通常以YUV格式进行编码。

本文解释了YUV视频的一般概念,以及一些术语,而没有深入探讨YUV视频处理的数学问题。

如果你曾经使用过计算机图形学,你可能对RGB颜色很熟悉。RGB颜色使用三个值进行编码:红色、绿色和蓝色

这些值直接对应于可见光谱的部分。三个RGB值形成一个数学坐标系,称为颜色空间。

红色组件定义该坐标系的一个轴,蓝色定义第二个轴,绿色定义第三个轴,如下图所示。

任何有效的RGB颜色都位于该颜色空间内的某个位置。

例如,纯品红色为100%蓝色、100%红色和0%绿色。

尽管RGB是表示颜色的常用方式,但其他坐标系也是可能的

术语YUV指的是一系列颜色空间,所有这些颜色空间分别对亮度信息和颜色信息进行编码

与RGB一样,YUV使用三个值来表示任何颜色。这些值被称为Y、U和V

事实上,“YUV”一词的使用在技术上是不准确的。在计算机视频中,YUV一词几乎总是指一个特定的颜色空间,名为Y’CbCr,稍后会讨论。然而,YUV通常被用作任何与Y’Cb Cr原理相同的颜色空间的通用术语。

亮度是通过对红色、绿色和蓝色分量**进行加权平均而从RGB颜色中得出的。**对于标准清晰度电视,使用以下公式:

Y’ = 0.299R + 0.587G + 0.114B

这个公式反映了这样一个事实,即人眼对某些波长的光比其他波长的光更敏感,这会影响颜色的感知亮度。蓝光看起来最暗,绿光看起来最亮,红光介于两者之间。

这个公式也反映了早期电视中使用的磷光体的物理特性。考虑到现代电视技术,高清电视采用了一种新的公式:

Y’ = 0.2125R + 0.7154G + 0.0721B

在名为ITU-R BT.601的规范中定义了标准清晰度电视的亮度方程。对于高清晰度电视,相关规范为ITU-R BT.709。

U和V分量,也称为色度值或色差值,通过从原始RGB颜色的红色和蓝色分量中减去Y值来导出:

U = B - Y’

V = R - Y’

这些值加在一起就包含了足够的信息来恢复原始RGB值。

YUV的好处

好处一

模拟电视使用YUV的部分原因是历史原因。模拟彩色电视信号被设计为与黑白电视向后兼容。

彩色电视信号携带叠加在亮度信号上的色度信息(U和V)。黑白电视忽略色度并将组合信号显示为灰度图像。

(该信号的设计使色度不会显著干扰亮度信号。)彩色电视可以提取色度并将信号转换回RGB。

好处二

YUV的另一个优势在今天更为重要。**人眼对色调的变化不如对亮度的变化敏感。**结果,在不牺牲图像的感知质量的情况下,图像可以具有比亮度信息更少的色度信息。

例如,通常以亮度样本的水平分辨率的一半对色度值进行采样。换句话说,对于一行像素中的每两个亮度样本,存在一个U样本和一个V样本。假设使用8位对每个值进行编码,则每两个像素(两个Y’、一个U和一个V)总共需要4个字节,平均每个像素需要16位,或者比等效的24位RGB编码少30%。

YUV本质上并不比RGB更紧凑除非色度被下采样,否则YUV像素的大小与RGB像素的大小相同

此外,从RGB到YUV的转换没有损耗。如果没有下采样,YUV像素可以转换回RGB,而不会丢失信息。下采样使YUV图像更小,并且还丢失一些颜色信息。然而,如果执行正确,损失在感知上并不显著。

计算机视频中的YUV

数字

前面列出的YUV公式并不是数字视频中使用的精确转换。数字视频通常使用一种称为Y’CbCr的YUV形式

从本质上讲,Y’CbCr的工作原理是将YUV分量缩放到以下范围:

这些范围假定Y’CbCr分量的精度为8位。以下是Y’CbCr的精确推导,使用亮度的BT.601定义:

  • 从[0…1]范围内的RGB值开始。换句话说,纯黑为0,纯白为1。重要的是,这些是非线性(伽玛校正)RGB值。
  • 计算亮度。对于BT.601,Y’=0.299R+0.587G+0.114B,如前所述。
  • 计算中间色度差值(B-Y’)和(R-Y’)。(B-Y’)的这些值的范围为+/-0.886,(R-Y’)为+/-0.701。

模拟

  • 按如下方式缩放色度差值:

Pb = (0.5 / (1 - 0.114)) × (B - Y’)

Pr = (0.5 / (1 - 0.299)) × (R - Y’)

这些比例因子被设计为给两个值提供相同的数值范围,+/-0.5。

它们一起定义了一个名为Y’PbPr的YUV颜色空间。这种颜色空间用于模拟分量视频。

  • 缩放Y’PbPr值以获得最终的Y’PbCr值:

Y’ = 16 + 219 × Y’

Cb = 128 + 224 × Pb

Cr = 128 + 224 × Pr

这些最后的缩放因子产生上表中列出的值范围。当然,您可以直接将RGB转换为Y’CbCr,而无需存储中间结果。

这里单独列出了这些步骤,以显示Y’CbCr是如何从本文开头给出的原始YUV方程中导出的。

下表显示了各种颜色的RGB和YCbCr值,同样使用亮度的BT.601定义。

如该表所示,Cb和Cr与关于颜色的直观想法不一致。例如,纯白和纯黑都含有中性水平的Cb和Cr(128)。

Cb的最高值和最低值分别为蓝色和黄色。对于Cr,最高值和最低值分别为红色和青色。

三个问题

Y’PbPr和Y’CbCr有什么关系和区别?

在图像处理中,Y’PbPr和Y’CbCr是两种常见的色彩空间表示方式,分别用于模拟和数字电视信号。

Y’PbPr是模拟分量信号的表示方式,其中Y’是亮度信号,Pb和Pr是色度信号。

Y’CbCr是数字分量信号的表示方式,其中Y’是亮度信号,Cb和Cr是色度信号。

Y’PbPr和Y’CbCr都是分量接口的表示法,但是它们代表的是两种不同的概念,没有直接的关系。

Y’PbPr是模拟分量信号或模拟分量接口的表示法,Pb是Parallel的缩写,意为并行。它采用并行传输的方式,是满足高质量视频传输而设计的色彩分量形式及接口形式。

Y’CbCr是数字电视标准化时,为了兼容亮度、色差这种色彩编码方式而采用的一种类似于Y’PbPr的分量形式。CbCr这种表示方式早于Y’PbPr。CbCr是YUV经过缩放和偏移处理后的结构,是数字分量信号的表示法。

在进行图像处理或传输时,可能需要在这两种色彩空间之间进行转换。如果要将Y’PbPr转换为Y’CbCr,就需要对Y’PbPr值进行缩放和偏移处理,以得到与Y’CbCr值相对应的值。这个过程通常涉及到一些数学运算和转换算法。

Y’PbPr怎么转为Y’CbCr

在将Y’PbPr色彩空间转换为Y’CbCr色彩空间时,需要进行一系列的处理和转换。首先,需要对Y’PbPr信号进行数字化处理,即将模拟信号转换为数字信号。这个过程中需要使用模拟数字转换器(ADC)将模拟信号转换为数字信号。数字化处理后的Y’PbPr信号为数字信号,可以进行后续的转换处理。

接下来,需要进行色度信号的转换。在Y’PbPr色彩空间中,色度信号是Pb和Pr,而在Y’CbCr色彩空间中,色度信号是Cb和Cr。因此,需要进行色度转换,将Pb和Pr转换为Cb和Cr。这个过程中需要使用色度转换矩阵和一些数学算法来进行转换处理。

最后,将数字化后的Y’信号和Cb、Cr信号组合成Y’CbCr色彩空间表示的信号。这个过程中需要使用一些数学算法来进行组合处理,以得到完整的Y’CbCr色彩空间表示的信号。

需要注意的是,在进行转换时,由于数字化处理和色度信号的转换过程中可能存在误差和噪声等因素,因此需要进行一些处理和滤波等操作,以保证转换后的信号质量。此外,不同的转换算法和处理方法也会影响转换后的信号质量,因此需要根据具体情况选择合适的算法和方法来进行转换处理。

什么场景下会需要Y’PbPr怎么转为Y’CbCr

Y’PbPr色彩空间和Y’CbCr色彩空间都是色彩空间表示方式,它们之间的转换通常在数字图像处理和电视信号传输等领域中需要使用。转换的条件和场景可能因具体应用而异,但以下是一些可能需要将Y’PbPr色彩空间转换为Y’CbCr色彩空间的场景:

数字图像处理:在数字图像处理中,通常需要将图像从一种色彩空间转换到另一种色彩空间,以便更好地处理或显示图像。例如,当需要在图像处理软件中调整图像颜色或进行色彩平衡时,可能需要将图像从RGB色彩空间转换为Y’CbCr色彩空间,以便更好地处理图像的亮度和颜色。

数字电视信号传输:数字电视信号通常使用Y’CbCr色彩空间来表示图像,这是因为这种色彩空间可以更好地处理图像的亮度和颜色。在数字电视信号的传输过程中,通常需要将信号从一种色彩空间转换为另一种色彩空间,以便更好地传输和处理信号。例如,在将模拟电视信号转换为数字电视信号时,可能需要将信号从Y’PbPr色彩空间转换为Y’CbCr色彩空间。

多媒体应用:在多媒体应用中,例如视频编辑和流媒体传输等,通常需要将图像从一种色彩空间转换到另一种色彩空间,以便更好地处理或显示图像。例如,在视频编辑中,可能需要将图像从RGB色彩空间转换为Y’CbCr色彩空间,以便更好地处理图像的亮度和颜色。

总之,需要根据具体的应用和需求来确定是否需要将Y’PbPr色彩空间转换为Y’CbCr色彩空间。模拟电视信号转换为数字电视信号是为了提高信号质量、兼容性、分辨率和传输速度等。

参考资料

  • Recommended 8-Bit YUV Formats for Video Rendering
  • Keith Jack. Video Demystified, Fifth Edition. Newnes, 2007.
  • Charles A. Poynton. A Technical Introduction to Digital Video. Wiley, 1996.
目录
相关文章
|
6月前
|
机器学习/深度学习 移动开发 编解码
YOLO26 改进 - C2PSA | C2PSA融合MSLA多尺度线性注意力:并行多分支架构融合上下文语义,提升特征判别力 | Arxiv 2025
本文提出多尺度线性注意力机制MSLA,通过并行3×3/5×5/7×7/9×9深度卷积提取多尺度特征,结合低复杂度线性注意力(O(N)),兼顾细粒度局部细节与全局长程依赖。将其集成至YOLO26,构建C2PSA_MSLA模块,在医学图像分割与目标检测任务中显著提升性能、效率与鲁棒性。(239字)
YOLO26 改进 - C2PSA | C2PSA融合MSLA多尺度线性注意力:并行多分支架构融合上下文语义,提升特征判别力 | Arxiv 2025
|
人工智能 安全 数据挖掘
暸望塔丨AI+云,双轮驱动中企扬帆出海
处在出海不同阶段的企业,关注点有所差异,但对于致力于全球开展业务的企业而言,全球数字化平台始终是企业能够快速开展全球业务的关键支撑。
暸望塔丨AI+云,双轮驱动中企扬帆出海
|
11月前
|
负载均衡 并行计算 异构计算
大模型训练推理优化(5): FlexLink —— NVLink 带宽无损提升27%
本期我们将介绍蚂蚁集团ASystem团队在大模型通信优化上的新工作FlexLink,旨在通过动态聚合多路通信(NVLink,PCIe,RDMA),在H800等典型硬件上将典型通信算子如(AllReduce, All Gather)吞吐提升最高达27%,尤其适合大模型长序列推理(Prefill阶段),及训练等通信密集的带宽bound场景。方案对精度无影响。
|
人工智能 IDE 程序员
Qoder用户上手指南:安装、登录、快捷键、功能亮点(新用户免费领300credits,首购2美元/月)
这个容易让程序员上瘾的 Agentic Coding 平台有哪些上头的功能?对于小白开发者和资深开发者如何用好Qoder呢?
19892 6
Qoder用户上手指南:安装、登录、快捷键、功能亮点(新用户免费领300credits,首购2美元/月)
|
9月前
|
监控 NoSQL PHP
高并发手机直播系统:从直播架构设计开发到搭建部署上线
本文深入剖析高并发直播系统全链路架构与实战:涵盖需求分析、微服务设计、移动端优化、PHP后台性能提升、CentOS环境调优、CDN加速及运维监控,助力打造稳定、低延迟、可扩展的直播平台。
|
人工智能 Cloud Native 机器人
未来数据观丨中企出海,AI+ 云赋能
依托云计算和 AI 构建数字生态,正成为中国企业出海和全球化战略的必然路径和选择。
未来数据观丨中企出海,AI+ 云赋能
|
9月前
|
数据采集 存储 自然语言处理
113_数据收集:Common Crawl过滤与高质量LLM训练数据构建
在大型语言模型(LLM)的训练过程中,数据质量直接决定了模型的性能上限。即使拥有最先进的模型架构和训练算法,如果没有高质量的训练数据,也难以训练出优秀的语言模型。Common Crawl作为目前互联网上最大的公开网络爬虫数据集之一,为LLM训练提供了宝贵的资源。然而,从原始的Common Crawl数据中提取高质量的训练素材并非易事,需要经过严格的过滤和清洗。本文将全面探讨Common Crawl数据集的特性、过滤策略的设计原则、以及2025年最新的过滤技术,为构建高质量的LLM训练语料提供系统指导。
1279 0
|
10月前
|
供应链 搜索推荐 Oracle
一文看懂 供应链管理系统:是什么,功能模块,怎么定制开发?
供应链管理系统就像企业的“智能管家”,帮助企业高效管理采购、生产、库存、物流和销售等环节。对于新手来说,它不仅能减少人为错误、优化库存、提升客户满意度,还能通过自动化流程节省大量时间和成本。无论是电商、小工厂还是个性化定制企业,都能找到适合自己的解决方案,尤其通过低代码平台(如Zoho Creator),无需编程也能轻松搭建专属系统。从基础功能入手,逐步优化,小企业也能实现高效运营,让生意越做越顺。
1246 0
|
前端开发 Python
【前端验证】通用型顺序比对的uvm scoreboard组件编写
【前端验证】通用型顺序比对的uvm scoreboard组件编写
786 0