【ffmpeg】一篇文章搞定YUV

news2024/11/11 4:48:21

文章目录

  • 前言
    • YUV是什么?
    • YUV的用途
    • YUV采样格式
      • 采样格式是什么
      • YUV采样格式有哪些
      • YUV采样格式的区别
    • YUV与RGB
      • RGB 颜色空间
      • YUV 颜色空间
      • RGB 与 YUV 的比较
      • RGB 转 YUV 公式
      • YUV 转 RGB 公式
      • 注意事项
    • YVU数据计算
      • 通用公式
      • 4:4:4 采样格式
      • 4:2:2 采样格式
      • 4:2:0 采样格式
      • 实例计算
    • 码流
      • 码流的基本概念
      • 码流在视频和音频中的应用
      • 码流的特点
      • 码流的应用实例
  • 总结


前言

在视频处理领域,YUV是一个关键的色彩空间模型,它广泛应用于视频压缩和存储技术中。相较于RGB色彩模型,YUV更适合于传输和压缩,因为它将亮度信息(Y)与色度信息(U和V)分开,这种分离可以有效地减少数据量,同时保留视觉质量。了解YUV的基本概念和如何使用FFmpeg进行相关处理,对于从事视频编辑、转换和优化的工作非常重要。本篇文章将通过FFmpeg介绍YUV色彩空间的基本知识和常见操作,为读者提供一个全面的入门指南。


YUV是什么?

YUV是一种用来表示颜色的方式,特别适合视频处理和压缩。我们可以把它分解为三个部分:

  1. Y(亮度信息):表示图像的亮度,也就是黑白图像的明暗程度。简单来说,Y告诉我们图像的光亮程度。
  2. U(蓝色色度信息):表示蓝色和青色的色调信息。它告诉我们图像中有多少蓝色。
  3. V(红色色度信息):表示红色和品红色的色调信息。它告诉我们图像中有多少红色。

YUV的用途

  • 视频压缩:YUV色彩空间的一个主要优势是它将亮度和色度分开。这样做的好处是,人眼对亮度变化比对色度变化更敏感。通过减少色度信息的分辨率(即降低U和V的分辨率),我们可以在不显著影响画质的情况下减少文件大小。这种技术在视频压缩中非常有效。

  • 视频传输:因为YUV格式的压缩效果好,它被广泛应用于视频传输。例如,电视广播和视频会议常使用YUV格式来降低带宽需求。

  • 图像处理:在一些图像编辑软件和工具中,YUV格式被用来处理视频和图像。它使得处理亮度和色彩变得更为方便和高效。

总之,YUV是视频处理中一种重要的色彩表示方式,它帮助我们更高效地压缩和传输视频数据,同时保持较好的视觉质量。

YUV采样格式

采样格式是什么

采样格式是指将模拟信号(如声音、图像等)转换为数字信号的过程中,采集样本的方式。以图像为例,采样格式决定了如何从一个连续的图像信号中提取离散的样本点,从而生成数字图像。常见的采样格式有 RGB 和 YUV 格式。

YUV采样格式有哪些

YUV 是一种颜色空间,它通过亮度(Y)和两个色度分量(U 和 V)来表示颜色。YUV 采样格式指的是如何在数字图像中存储这些 Y、U、V 分量。常见的 YUV 采样格式有:

  1. 4:4:4:每个像素都有独立的 Y、U 和 V 值。
  2. 4:2:2:每两个像素共享一个 U 和一个 V 值,但每个像素都有独立的 Y 值。
  3. 4:2:0:每四个像素共享一个 U 和一个 V 值,但每个像素都有独立的 Y 值。

YUV采样格式的区别

  1. 4:4:4

    • 描述:每个像素都有独立的 Y、U 和 V 值,保留了最完整的颜色信息。
    • 优点:图像质量最高,没有色度失真。
    • 缺点:数据量最大,存储和传输成本高。
  2. 4:2:2

    • 描述:每两个像素共享一个 U 和一个 V 值,但每个像素都有独立的 Y 值。
    • 优点:比 4:4:4 减少了一半的色度数据,降低了数据量,但图像质量仍然较高。
    • 缺点:某些细节处可能会有轻微的色度失真。
  3. 4:2:0

    • 描述:每四个像素共享一个 U 和一个 V 值,但每个像素都有独立的 Y 值。
    • 优点:大幅减少了色度数据,数据量最小,适合视频压缩和传输。
    • 缺点:色度分辨率较低,可能会导致明显的色度失真,特别是在细节丰富的图像中。

总结起来,4:4:4 提供最高的图像质量,但数据量最大;4:2:2 是一个折中方案,保持了较高的图像质量,同时减小了数据量;4:2:0 则大大减小了数据量,适合需要高效压缩和传输的视频应用,但图像质量会有所降低。

YUV与RGB

YUV不是我们手机上显示的,我们需要把YUV转成RGB才能显示
RGB 和 YUV 是两种不同的颜色空间,各有其独特的表示方式和应用场景。以下是它们的主要区别:

RGB 颜色空间

  1. 组成部分

    • R(Red,红色)
    • G(Green,绿色)
    • B(Blue,蓝色)
  2. 定义

    • RGB 颜色空间使用红、绿、蓝三个基色通过加法混合来表示各种颜色。
    • 每个颜色分量的值通常在 0 到 255 之间(8 位表示),也可以是浮点数在 0.0 到 1.0 之间。
  3. 优点

    • 直观:与人眼的视觉感知一致,因为人眼有三种感光细胞,分别对红、绿、蓝光敏感。
    • 广泛使用:用于显示设备(如计算机显示器、电视机)和图像处理。
  4. 缺点

    • 不适合视频压缩:在视频压缩和传输中,RGB 格式的效率较低,因为每个颜色分量都需要高分辨率。

YUV 颜色空间

  1. 组成部分

    • Y(Luma,亮度)
    • U(Chrominance Blue,色度蓝)
    • V(Chrominance Red,色度红)
  2. 定义

    • YUV 颜色空间将颜色信息分为亮度(Y)和色度(U 和 V)分量。
    • 亮度分量表示图像的亮暗程度,色度分量表示颜色信息。
  3. 优点

    • 高效视频压缩:人眼对亮度变化比对色度变化更敏感,因此可以降低色度分量的分辨率(如 4:2:2 或 4:2:0 采样),从而减少数据量,提升压缩效率。
    • 兼容性:适合广播电视和视频传输,广泛应用于视频编解码(如 MPEG、JPEG)和视频流媒体。
  4. 缺点

    • 不直观:不如 RGB 那样直观,因为它将颜色信息分离成亮度和色度分量。
    • 转换复杂:需要在 RGB 和 YUV 之间进行颜色空间转换,这可能会导致颜色失真。

RGB 与 YUV 的比较

  1. 表示方式

    • RGB:通过红、绿、蓝三种颜色直接表示颜色。
    • YUV:通过亮度和两种色度分量间接表示颜色。
  2. 应用场景

    • RGB:适用于显示设备、图像处理、计算机图形学等领域。
    • YUV:适用于视频压缩、视频传输、电视广播等领域。
  3. 数据量和效率

    • RGB:每个像素需要三个完整的颜色分量,数据量较大。
    • YUV:通过降低色度分量的分辨率来减少数据量,提高压缩和传输效率。

总结起来,RGB 更适合于图像显示和处理,而 YUV 更适合于视频压缩和传输。选择使用哪种颜色空间,取决于具体的应用需求。

RGB 和 YUV 之间的转换可以通过以下公式来实现。这些公式将 RGB 颜色分量转换为 YUV 颜色分量,反之亦然。

RGB 转 YUV 公式

首先,我们使用标准的 ITU-R BT.601 转换公式:

在这里插入图片描述

YUV 转 RGB 公式

反过来,我们使用以下公式将 YUV 转换回 RGB:

在这里插入图片描述

注意事项

  1. 范围和归一化

    • 通常情况下,RGB 分量的取值范围是 0 到 255。
    • Y 分量的取值范围是 16 到 235,U 和 V 分量的取值范围是 16 到 240。在某些情况下,这些值可能会被缩放到 0 到 1 的范围内。
  2. 矩阵形式

    • 有时,转换公式会以矩阵的形式表示,便于批量处理像素。上述公式也可以写成矩阵形式:

      RGB 转 YUV:
      在这里插入图片描述

      YUV 转 RGB:
      在这里插入图片描述

  3. 色域和标准

    • 这里使用的是 BT.601 标准。如果使用其他标准(如 BT.709 或 BT.2020),转换系数会有所不同。

这些公式提供了从 RGB 到 YUV 以及从 YUV 到 RGB 的基本转换方法,用于各种图像处理和视频处理应用中。

YVU数据计算

计算 YUV 数据量的公式取决于使用的采样格式(如 4:4:4、4:2:2 或 4:2:0)以及图像的分辨率。下面分别介绍这些采样格式的数据量计算公式。

通用公式

假设图像的分辨率为宽度 ( W ) 和高度 ( H ),每个分量使用 ( B ) 位来表示(通常为 8 位)。

4:4:4 采样格式

在 4:4:4 采样格式中,每个像素都有独立的 Y、U 和 V 分量。因此,总数据量可以这样计算:

在这里插入图片描述

假设每个分量占 8 位(即 1 字节),则总数据量为:

在这里插入图片描述

4:2:2 采样格式

在 4:2:2 采样格式中,每两个像素共享一个 U 和一个 V 分量。因此,总数据量可以这样计算:

在这里插入图片描述

假设每个分量占 8 位(即 1 字节),则总数据量为:

在这里插入图片描述

简化后:

在这里插入图片描述

4:2:0 采样格式

在 4:2:0 采样格式中,每四个像素共享一个 U 和一个 V 分量。因此,总数据量可以这样计算:

在这里插入图片描述

假设每个分量占 8 位(即 1 字节),则总数据量为:

在这里插入图片描述

简化后:

在这里插入图片描述

实例计算

假设图像的分辨率为 1920 × 1080(全高清),每个分量 8 位:

  1. 4:4:4 采样格式
    在这里插入图片描述

  2. 4:2:2 采样格式
    在这里插入图片描述

  3. 4:2:0 采样格式
    在这里插入图片描述

这些公式和示例计算说明了不同 YUV 采样格式的数据量如何变化,并展示了如何根据图像的分辨率和采样格式计算总数据量。

码流

码流(Bitstream)是指在数字通信中,数据以连续比特(bit)序列的形式传输或存储。码流可以表示为视频、音频、数据文件等在传输或存储过程中的一系列二进制数据。码流的主要特征包括其数据率、数据格式和传输方式。

码流的基本概念

  1. 数据率(Bit Rate)

    • 数据率指的是单位时间内传输或处理的数据量,通常以比特每秒(bps, bits per second)为单位。
    • 在视频编码中,数据率越高,通常意味着视频质量越好,但所需的存储和带宽也越大。
  2. 数据格式

    • 码流的数据格式取决于所传输或存储的数据类型,例如视频码流、音频码流、文本码流等。
    • 视频码流可能包含视频帧、压缩信息、同步信息等。
    • 音频码流可能包含音频采样、压缩信息、同步信息等。
  3. 传输方式

    • 码流可以通过不同的介质传输,例如网络、电缆、无线电波等。
    • 传输过程可以是连续的(如实时视频流)或间歇的(如文件下载)。

码流在视频和音频中的应用

  1. 视频码流

    • 视频码流是视频数据的连续比特序列,包含视频帧的压缩信息和其他必要的控制信息。
    • 视频编码标准如 MPEG、H.264、H.265 等定义了如何压缩和解压缩视频码流。
    • 实时视频流(如视频通话、直播)需要稳定的码流传输,以保证视频质量和流畅度。
  2. 音频码流

    • 音频码流是音频数据的连续比特序列,包含音频采样的压缩信息和其他必要的控制信息。
    • 音频编码标准如 MP3、AAC 等定义了如何压缩和解压缩音频码流。
    • 实时音频流(如语音通话、音乐流媒体)也需要稳定的码流传输,以保证音频质量和流畅度。

码流的特点

  1. 连续性

    • 码流通常是连续的,尤其是在实时传输过程中,要求数据按时间顺序连续传输。
    • 例如,在视频直播中,视频帧必须按照时间顺序连续传输,以保证观看体验。
  2. 同步性

    • 码流中的数据需要同步传输,特别是音视频同步(lip-sync)非常重要。
    • 同步信息通常嵌入在码流中,以确保解码器能正确地重建原始信号。
  3. 压缩性

    • 由于码流数据量通常很大,特别是高质量视频和音频,压缩技术被广泛使用。
    • 压缩技术可以大幅减少码流的数据量,同时尽量保持原始信号的质量。

码流的应用实例

  • 在线视频流媒体:视频网站(如 YouTube、Netflix)通过码流传输视频内容给用户。视频内容被编码成码流,用户通过互联网实时接收和观看。
  • 音频流媒体:音乐流媒体服务(如 Spotify、Apple Music)通过码流传输音频内容。音频内容被编码成码流,用户通过互联网实时收听。
  • 实时通信:视频通话和语音通话应用(如 Zoom、Skype)通过码流实现实时通信。音视频信号被编码成码流,通过网络实时传输和解码。

总结来说,码流是数字通信中的基础概念,它在视频、音频及其他数据传输中扮演着重要角色。码流的有效传输和解码直接影响到用户的使用体验。


总结

本文通过介绍YUV色彩空间的基本概念和在FFmpeg中的应用,旨在帮助读者理解YUV与RGB之间的差异及其在视频处理中扮演的角色。FFmpeg作为一个强大的工具,支持各种YUV格式的转换和处理,掌握这些操作能够有效提升视频处理效率和质量。希望通过本文的讲解,读者能够熟练掌握使用FFmpeg处理YUV色彩空间的方法,从而在实际工作中得心应手。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1935794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

win10删除鼠标右键选项

鼠标右键菜单时,发现里面的选项特别多,找一下属性,半天找不到。删除一些不常用的选项,让右键菜单变得干净整洁。 1、按下键盘上的“winR”组合按键,调出“运行”对话框,输入“regedit”命令,点击…

达梦数据库的系统视图v$rapply_log_task

达梦数据库的系统视图v$rapply_log_task 达梦数据库的V$RAPPLY_LOG_TASK视图是一个动态性能视图,主要用于在备库上查询。该视图需要在备库上查询(DMDSC 备库需要在控制节点(重演节点)上查询),用于查询备库…

专业PDF编辑工具:Acrobat Pro DC 2024.002.20933绿色版,提升你的工作效率!

软件介绍 Adobe Acrobat Pro DC 2024绿色便携版是一款功能强大的PDF编辑和转换软件,由Adobe公司推出。它是Acrobat XI系列的后续产品,提供了全新的用户界面和增强功能。用户可以借助这款软件将纸质文件转换为可编辑的电子文件,便于传输、签署…

RocketMQ单结点安装/Dashboard安装

目录 1.安装NameServer 2.安装Broker 3.使用自带工具测试数据发送 4.使用DashBoard进行查看 5.关闭相关设备 前置条件:两台虚拟机CentOS Linux release 7.5.1804(ps:当然也可以都部署在一台机器上) RocketMq属于天生集群。需要同时启动nameServer和Broker进行…

STP(802.1D)

802.1D:也成为生成树协议(Spanning Tree Protocol,STP),是一种工作在数据链路层的通信协议 作用:防止交换机冗余链路产生的环路,确保以太网中无环路的逻辑拓扑结构,从而避免广播风暴…

MacBook电脑远程连接Linux系统的服务器方法

一、问题简介 Windows 操作系统的电脑可使用Xshell等功能强大的远程连接软件。通过连接软件,用户可以在一台电脑上访问并控制另一台远程计算机。这对于远程技术支持、远程办公等场景非常有用。但是MacBook电脑的macOS无法使用Xshell。 在Mac上远程连接到Windows服…

昇思25天学习打卡营第18天 | 基于MindSpore的GPT2文本摘要

昇思25天学习打卡营第18天 | 基于MindSpore的GPT2文本摘要 文章目录 昇思25天学习打卡营第18天 | 基于MindSpore的GPT2文本摘要数据集创建数据集数据预处理Tokenizer 模型构建构建GPT2ForSummarization模型动态学习率 模型训练模型推理总结打卡 数据集 实验使用nlpcc2017摘要数…

详解MLOps,从Jupyter开发到生产部署

大家好,Jupyter notebook 是机器学习的便捷工具,但在应用部署方面存在局限。为了提升其可扩展性和稳定性,需结合DevOps和MLOps技术。通过自动化的持续集成和持续交付流程,可将AI应用高效部署至HuggingFace平台。 本文将介绍MLOps…

网安播报|Python 的 GitHub 核心资源库 token 意外曝光,风险巨大

1、Python 的 GitHub 核心资源库 token 意外曝光,风险巨大 网络安全专家发现了意外泄露的 GitHub token,能以最高权限访问 Python 语言、Python 软件包索引(PyPI)和 Python 软件基金会(PSF)存储库。如果该 …

如何确保微型导轨电能表的精准计量?

微型导轨电能表是一种小型化的电表,通常用于精密仪器和设备中。采用模数化设计,精确度高,具有体积小,易安装,易组装等优点。易于实现终端照明电能计量,便于照明系统加装电度表的改造。 对于用户来说&#x…

2024北京国际智能工厂及自动化展览会亮点前瞻

随着“工业创新,智造未来”的浪潮席卷而来,2024年度北京国际智能工厂及自动化与工业装配展览会定于8月1日至3日在中国国际展览中心(顺义新馆)盛大开幕。本次展会汇聚了智能制造与自动化技术的最新成果,通过三展联动的创…

ozon计算器5.0版本,ozon计算器5.0定价产品价格

在跨境电商的浩瀚星海中,俄罗斯Ozon电商平台以其庞大的市场规模和快速增长的势头,成为了众多卖家竞相布局的蓝海。然而,在这片充满机遇的土地上,如何精准定价,确保利润最大化,同时又能吸引消费者&#xff0…

【Git分支管理】分支策略 | Bug分支

目录 1.分支策略 2.特殊场景-Bug分支 2.1 master出现bug ​2.2 dev2正在开发☞stash区域 2.3 dev2正在开发master出现bug 2.3.1 fix_bug修复bug和master合并 2.3.2 dev2分支开发完和master合并 合并冲突:merge☞手动解决☞提交没有合并冲突:mer…

基于Go语言快速开发抖音小程序 提高性能、效率和降低成本开发框架 让开发变得极简单 开箱即用省时又省钱

前言 用Go语言Arco Design集成后台框架,我们把日常开发常用的基础开发成基础包,等到有项目时安装、下载基础代码就可以马上开发业务,您可以快速搭建好抖音小程序应用开发,为大家搭建抖音后台管理、抖音原生开发模板、小程序登录、…

大模型-Bert+PET实战

PET(Pattern-Exploiting Training) 背景:预训练语言模型(比如BERT)知识全面,但是没有针对下游任务做针对训练,所以效果一般,所以需要根据任务做微调。 核心思想:根据先…

langchain 简介

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 LangChain 是一个用于语言模型和应用程序开发的框架,它提供了一系列工具和组件, 帮助开发者更轻松地构建基于大型…

【JVM基础02】——组成-程序计数器解读

目录 1- 引言:程序计数器1-1 程序计数器是什么?为什么用程序计数器?(What)(Why) 2- 核心:程序计数器的原理(How)2-1 使用 javap 查看程序计数器的作用2-2 多线程下程序计数器原理举例 3- 小结:什…

Linux HOOK机制与Netfilter HOOK

一. 什么是HOOK(钩子) 在计算机中,基本所有的软件程序都可以通过hook方式进行行为拦截,hook方式就是改变原始的执行流。 二. Linux常见的HOOK方式 1、修改函数指针。 2、用户态动态库拦截。 ①利用环境变量LD_PRELOAD和预装载机…

Calibre:soft check

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 soft check检查在lvs检查中属于必看的类型,往往是因为衬底没有硬连接,接pg stripe造成的 下图是一个soft check的错误报告,重要信息有两个: 1)问题在ntap上,也就是着重检查power pin相关的连…

七款最佳公司电脑屏幕监控软件推荐|2024年屏幕监控软件超全盘点!

在当今企业管理中,电脑屏幕监控软件已成为保障数据安全和提升员工生产力的关键工具。选择一款合适的监控软件,可以帮助管理者有效监督员工的电脑使用行为,防止潜在的安全威胁和不当行为。小编分享七款备受好评的电脑屏幕监控软件,…