图像色彩编码YUV(YCbCr)的基本知识

2023-11-06

参考地址

https://www.cnblogs.com/lifan3a/articles/4930182.html

YUV与YCbCr的定义

YCbCr是DVD、摄像机、数字电视等消费类视频产品中,常用的色彩编码方案。YCbCr 有时会称为 YCC。YCbCr 在模拟分量视频(analog component video)中也常被称为 YPbPr。YCbCr不是一种绝对色彩空间,是YUV压缩和偏移的版本。

YUV与YCbCr的区别

正如几何上用坐标空间来描述坐标集合, 色彩空间用数学方式来描述颜色集合。常见的3 个基本色彩模型是RGB , CMYK和YUV。
YCbCr 则是在世界数字组织视频标准研制过程中作为ITU - R BT1601 建议的一部分,其实是YUV经过缩放和偏移的翻版。其中Y与YUV 中的Y含义一致, Cb , Cr 同样都指色彩, 只是在表示方法上不同而已。在YUV 家族中,YCbCr 是在计算机系统中应用最多的成员,其应用领域很广泛,JPEG、MPEG均采用此格式。一般人们所讲的YUV大多是指YCbCr 。YCbCr 有许多取样格式,如4∶4∶4 , 4∶2∶2 ,4∶1∶1 和4∶2∶0 。
YUV是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间。在现代彩色电视系统中,通常采用三管彩色摄影机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的YUV色彩空间表示。采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。
YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。人的肉眼对视频的Y分量更敏感,因此在通过对色度分量进行子采样来减 少色度分量后,肉眼将察觉不到的图像质量的变化。主要的子采样格式有 YCbCr 4:2:0、YCbCr 4:2:2 和 YCbCr 4:4:4。
4:2:0表示每4个像素有4个亮度分量,2个色度分量 (YYYYCbCr),仅采样奇数扫描线,是便携式视频设备(MPEG-4)以及电视会议(H.263)最常用格式;4:2:2表示每4个像素有4个亮度 分量,4个色度分量(YYYYCbCrCbCr),是DVD、数字电视、HDTV 以及其它消费类视频设备的最常用格式;4:4:4表示全像素点阵(YYYYCbCrCbCrCbCrCbCr),用于高质量视频应用、演播室以及专业视频产品。

关于YUV存储格式

YUV 存储格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将 YUV 分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(macro-pixel);而后者使用三个数组分开存放 YUV 三个分量,就像是一个三维平面一样。

几种常见的YUV存储格式

1.YUV422 Planar
这里,Y,U,V数据是分开存放的,每两个水平Y采样点,有一个Cb和一个Cr采样点,如下图:
1

这种形式,对应于FFmpeg中的定义,PIX_FMT_YUV422P, ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
在Android OMX中的定义,OMX_COLOR_FormatYUV422Planar //* YUV422Planar : Three arrays Y,U,V。
2.YUV420 Planar
这个格式跟YUV422 Planar 类似,但对于Cb和Cr的采样在水平和垂直方向都减少为2:1,如下图:
4
对应FFmpeg中的定义,PIX_FMT_YUV420P //< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Android OMX中的定义,OMX_COLOR_FormatYUV420Planar // * YUV420Planar : Three arrays Y,U,V
3.YUV422 Semi-Planar
Semi 是’半‘的意思,我的理解这个半平面模式,这个格式的数据量跟YUV422 Planar的一样,但是U、V是交叉存放的,如下图:
7
FFmpeg中未找到定义;
Android OMX 中 ,OMX_COLOR_FormatYUV422SemiPlanar YUV422SemiPlanar : Two arrays, one is all Y, the other is U and V
4.YUV420 Semi-Planar
这个格式的数据量跟YUV420 Planar的一样,但是U、V是交叉存放的,如下图:
9
FFmpeg中定义 ,PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V)
Android OMX 中定义 OMX_COLOR_FormatYUV420SemiPlanar //YUV420SemiPlanar : Two arrays, one is all Y, the other is U and V
5.YUV422 Interleaved
Interleaved – 交错
这个格式的数据量跟YUV422 Planar的一样,但是Y、U、V是交叉存放的,下图是打包(packed)格式的:
b
FFmpeg中的定义,PIX_FMT_UYVY422 ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1
Android OMX中的定义,OMX_COLOR_FormatCbYCrY //CbYCrY : Organized as 16bit UYVY (i.e. CbYCrY)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像色彩编码YUV(YCbCr)的基本知识 的相关文章

  • YUV解析

    一般的视频采集芯片输出的码流一般都是 YUV 格式数据流 xff0c 后续视频处理也是对 YUV 数据流进行编码和解析 所以 xff0c 了解 YUV 数据流对做视频领域的人而言 xff0c 至关重要 在介绍 YUV 格式之前 xff0c
  • 超分辨率重建-PNSR与SSIM的计算(RGB、YUV和YCbCr互转)

    RGB YUV和YCbCr 自己复现的网络跑出来的模型进行预测的时候 xff0c 不知道为啥算出来的结果比论文中要低好多 不论scale factor为多少 xff0c 我算出来的结果均普遍低于论文中给出的 xff0c PSNR大概低个1
  • 55、RK3588使用MPP编码yuv到h264、解码h264到yuv模块开发和集成OAK深度相机解码&编码&推流测试

    基本思想 xff1a 需要使用独立模块代码去实现自己的逻辑功能 xff0c 所以在基于官方源码基础上 xff0c 和参考附录几个官方链接 xff0c 搞出一版rk3588编码测试和解码测试demo 测试视频 生成h264 生成yuv 链接
  • FFmpeg视频解码中的YUV420P格式

    参考文章 在做基于FFmpeg解码的视频播放时 需要涉及到帧数据存储的YUV与RGB格式 所以了解了一下 参考下述博文 https blog csdn net lanxiaziyi article details 74139729 avfr
  • qt采用opengl显示yuv视频数据

    作者 使徒保罗 邮箱 297329588szh 163 com 声明 欢迎交流学习 如有任何疑问 请通过邮箱联系本人 应用场景 qt opengl渲染yuv420p数据 开发环境 win7 64位 qt opensource windows
  • RGB与YUV格式详解

    一 RGB RGB是最常见的一种颜色编码格式 它的三个通道 R G B分别对应红 绿 蓝三个分量 通常每个分量的位宽为8bit 值的范围是0 255 对应其256个灰阶 也即颜色的亮度 值越大表示该分量越亮 也即颜色越浅 红绿蓝这三个分量都
  • 图文详解YUV420数据格式

    原文地址 http www cnblogs com azraelly archive 2013 01 01 2841269 html 1 YUV简介 YUV定义 分为三个分量 Y 表示明亮度 Luminance或Luma 也就是灰度值 而
  • 图像色彩编码YUV(YCbCr)的基本知识

    参考地址 https www cnblogs com lifan3a articles 4930182 html YUV与YCbCr的定义 YCbCr是DVD 摄像机 数字电视等消费类视频产品中 常用的色彩编码方案 YCbCr 有时会称为
  • 使用 DirectX11 像素着色器在 GPU 中将颜色从 DXGI_FORMAT_B8G8R8A8_UNORM 转换为 NV12

    我正在编写一个代码 用于使用桌面复制捕获桌面 并使用英特尔硬件MFT 将其编码为 h264 编码器仅接受 NV12 格式作为输入 我有一个 DXGI FORMAT B8G8R8A8 UNORM 到 NV12 转换器 https github
  • 将多个 yuv 帧转换为一个 yuv 帧

    我有一些 yuv 格式的图像 它们都是我捕获的一个序列的一部分 现在我想通过将它们转换为 mpg4 文件来制作视频 但在此之前 我需要以某种方式从我拥有的所有 yuv 帧中制作一个 yuv 文件 我听说这是可能的 但在互联网上找不到任何东西
  • YUV 颜色空间中的皮肤检测?

    我可以使用一组规则执行皮肤检测 例如 x1 简短的答案是yes 你可以 然而 亮度 Y 实际上是不相关的 这是色度 CbCr 或 UV 很重要 该领域被引用最多的论文之一是this one 未压缩的 PS 文件 我已经实现了它并且看起来效果
  • 使用opengl es着色器将YUV转换为RGB

    我想在 opengl es 着色器中仅使用一个包含 yuv 数据的采样器将 yuv 转换为 RGB 我的代码如下 1 我将 yuv 数据发送到纹理 GLES20 glTexImage2D GLES20 GL TEXTURE 2D 0 GLE
  • YUY2 与 YUV 422

    我无法理解两者之间的确切区别 从研究来看 更多地讨论两者是不同的 但少数人似乎将它们分组在 4 2 2 抽样方案下 YUV 422 I 和 J 版本 有一个亮度平面 Y 和 2 个色度平面 U V 然而 在 I422 中 色度平面 蓝色和红
  • Unity 的 YUV 着色器?

    我在 Unity 中有一些 适当的 平面的 YUV 纹理 我只想看看它们供开发使用 Unity 他们的着色器语言变体 实际上有一个可用的 YUV 着色器吗 从概念上讲 从 YUV 转换为 RGB 很简单 但有点繁琐 YUV 到 RGB 转换
  • NV21 格式和奇数图像尺寸

    我在 Android 中使用 NV21 图像已经有一段时间了 我一直在跟踪可能由 NV21 图像中不正确的索引字节引起的错误 答案中的图片这个问题 https stackoverflow com questions 5272388 extr
  • Android Renderscript - 在 Renderscript 中旋转 YUV 数据

    根据我的讨论Camera2 api Imageformat yuv 420 888 旋转图像上的结果 https stackoverflow com questions 44652828 camera2 api imageformat yu
  • YUV420p 上的大量绿色 --> iOS 上 OpenGL 2.0 着色器中的 RGB

    我想使用 ffmpeg 和 OpenGL ES 2 0 为 iOS 制作一个电影播放器 但我有一些问题 输出 RGB 图像有很多绿色 这是代码和图像 480x320 宽度和高度 512x512 纹理宽度和高度 我从 ffmpeg AVFra
  • OpenCV:如何从网络摄像头获取原始 YUY2 图像?

    你知道如何获得吗raw YUY2来自网络摄像头的图像 使用 OpenCV DirectShow 无 VFW http opencv willowgarage com wiki CameraCapture http opencv willow
  • 如何在OpenGL ES中显示yuv格式的数据而不转换rgb?

    我一直在研究 iOS 的 OpenGL ES 我想知道YUV格式的数据是否可以在不转换RGB的情况下显示 大多数情况下 yuv 数据必须转换为 RGB 才能显示 但是 转换过程非常慢 然后 显示不流畅 所以 我想尝试在不转换为RGB的情况下
  • YUV420和YUV422的区别

    您能帮我了解一下 YUV420 和 YUV422 格式之间的区别吗 我读到了这个 http www fourcc org yuv php http www fourcc org yuv php 但我找不到区别 YUV420 和 YUV420

随机推荐

  • ubuntu pytorch 深度学习环境配置

    目录 一 Ubuntu20 04下用ppa源安装NVIDIA显卡驱动 1 先查询适用自己电脑型号的英伟达驱动版本 官网查选 官方 GeForce 驱动程序 NVIDIA 2 禁用默认驱动 nouveau 3 打开 软件与更新 点击 附加驱动
  • 物理磁盘的四种使用方式

    一 物理磁盘整个直接使用 把整个物理磁盘直接格式话成文件系统 然后mount 二 通过分区使用 把整个物理磁盘通过fdisk dev sdx这样分区 通过格式化各个分区来使用磁盘 三 通过逻辑卷使用 可以把整个物理磁盘作为一个物理卷pvcr
  • 电子科技大学软件工程期末复习笔记(一):概论

    目录 前言 重点一览 软件的定义 软件的特点 软件的双重作用 软件危机 软件工程的概念 软件工程的目标与原则 软件工程的一些误解 本章小结 前言 2022年底疫情彻底放开 开始自愿返乡 大面积传染开始 在校生几乎无一幸免 因为自愿返乡后只能
  • The Code is successfully generatd...使用stm32cude生成工程时报错

    找了一下午的方法 在此总结 1 路径问题 路径不能包含中文以及空格字符 如E 举例 测试 以及路径不能太深 本人未测试 不是我的情况 2 金山等即时翻译软件未关闭 论坛上看到 本人未测试 3 版本问题 本人测试通过 有的人说是jdk版本太高
  • 2019年底总结

    一年很快 又到改写总结的时候了 回顾这一年 2019年办成了很多的事情 在此借用这句 忆往昔 年少轻狂时 俱远矣 看今日 而立之年始 继拼之 表达下吧 看看2018年的计划 发现大部分自己都在不自不觉中做了 时事 经济领域 用平时的碎片时间
  • C语言快速排序,以及注意点。

    快速排序尤其适用于对大数据的排序 它的高速和高效无愧于 快速 两个字 虽然说它是 最常用 的 可对于初学者而言 用它的人却非常少 因为虽然很快 但它也是逻辑最复杂 最难理解的算法 因为快速排序要用到递归和函数调用 快速排序所采用的思想是分治
  • SpringBoot2.0.5.RELEASE 整合Activiti7启动后不创建表

    环境描述 SpringBoot版本 2 0 5 Activiti版本 7 0 0 Beta3 MySQL版本 8 011 解决办法 在数据库访问的地址上添加配置 nullCatalogMeansCurrent true 问题原因 从mysq
  • java输出相对路径

    在 Java 中 您可以使用 java io File 类来获取文件或目录的相对路径 下面是一个简单的示例 展示了如何使用 File 类获取文件或目录的相对路径 import java io File public class Main p
  • QProgressDialog进度条类

    QProgressDialog 常用API 简单的使用 QProgressDialog类是QDialog的子类 通过这个类我们可以得到一个带进度条的对话框窗口 常用API 构造函数 参数 labelText 对话框中显示的提示信息 canc
  • Centos8安装英伟达显卡驱动并通过docker部署深度学习环境

    20201107 每个人的机器和实际需要的环境都不一样 本文只是提供了在自己实验室centos8上的部署过程 部署过程中 没有什么问题 请谨慎参考本篇文章 以免浪费宝贵时间 0 引言 之前的时候 在实验室的深度学习服务器上安装深度学习的环境
  • NStepSCAN和FSCAN

    NStepSCAN 在最短寻道时间优先 SSTF 扫描算法 SCAN 和循环扫描算法 CSCAN 中 都可能出现磁臂停留在某处不动的情况 例如 有一个或几个进程对某一磁道有较高的访问频率 这些进程反复请求对某一磁道的I O操作 从而垄断了整
  • Git将其他分支合并至主分支

    主要思想 把分支代码合并到master 合给谁 就先切换到谁的分支 1 当前分支是dev 开发完成后 需要合并到master分支 先把该提交的提交 需要push的push完成后 再切换分支 否则也会告诉你要提交本地代码才可以切换分支 2 本
  • 6. JVM调优工具详解及调优实战

    JVM性能调优 1 前置启动程序 1 1 Jmap 1 1 1 Jmap查询内存信息 1 1 2 Jmap查询堆信息 1 1 3 jmap查询堆内存dump 1 2 Jstack 1 3 远程连接jvisualvm 1 4 jstack找出
  • Mongo 数据导出、导入

    1 下载 mongodb database tools windows 2 解压 打开window Powershell 或 doc命令窗口 使用命令进入解压后的文件夹 3 导出数据命令 mongodump exe h 127 0 0 1
  • 2021-06-23 各种经典卷积神经网络总结

    各种经典卷积神经网络总结 1 原始卷积 Vanilla Convolution 2 分组卷积 Group convolution 2 1 组卷积案例1 2 2 组卷积案例2 Resnext 2 3 ShuffleNet 3 转置卷积 Tra
  • 遥感变化检测综述 Change Detection Based on Artificial Intelligence:State-of-the-Art and Change

    遥感变化检测综述 Change Detection Based on Artificial Intelligence State of the Art and Change 现存的变化检测综述主要专注于在多时态高光谱图像 HSIs 和高空间
  • 终极秘密---------windows里藏着9.11的惊天大密码

    终极秘密 windows里藏着9 11的惊天大密码 神秘连锁 密码 泄漏恐怖分子袭美玄机 方法 用WORD 编辑文档输入Q33NY 必须大写 这是9 11撞击世界贸易中心的沙特勇士们乘坐的航班号 第三 将字体大小改到72 最后 将字体转成
  • JS实现简单的购物车

    以下是一个基本的 JS 购物车实现 由于是实现基本的功能 就不弄得多复杂了 代码可以直接Ctrl c v 大家可以试一试 HTML div h2 产品列表 h2 ul li h3 商品1 h3 p 价格 10元 p li ul div
  • SVN 报错:does not support the HTTP/DAV protocol

    原因 我是直接粘贴了上面的网址 而正确做法应该是 点击checkout 复制这个里面的url
  • 图像色彩编码YUV(YCbCr)的基本知识

    参考地址 https www cnblogs com lifan3a articles 4930182 html YUV与YCbCr的定义 YCbCr是DVD 摄像机 数字电视等消费类视频产品中 常用的色彩编码方案 YCbCr 有时会称为