首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

YUVRGB存储规则

前言 我们开发平常图片的数据都是RGB,但是设计视频相关的都会使用到YUV格式,为什么呢? YUV是电视信号的格式,为了同时兼容黑白彩色,只有Y就是黑白,加上UV就是彩色。...YUV采样可以大大降低传输数据的大小,以YUV420为例就是RGB的一半。 RGB/BGR 每一个点都是由三个byte组成,分别存储R、G、B,值范围是[0-255]。...而恢复为RGB的时候可以几个Y分量共用U、V分量来恢复为RGB。 这样全采样的YUV其实跟RGB所需存储空间一样了,而这种采样方式就是 YUV 4:4:4 。...在同行的像素上, U V 分量分别 交替 进行采样; YUV 4:2:0【重点】 在所有像素上,Y分量全部采样。 在(偶数行), U 分量 间隔 进行采样,而不采样V分量。...YUYV YUYV 如上所示,因为YUV的比例是2:1:1 ,所以取两个Y元素就需要分别取一个UV元素,后面同理。

1.1K20

Camera驱动 | YUVRGB格式转化相关

YUVRGB格式转化相关 RGB色彩模式的分类 RGB的分类相较YUV来说就比较简单直观,总体来说遵循“怎么取样就怎么存储的”分类方式 按照每个像素信息占据的空间分类,RGB格式可以分成以下几种:...到RGB格式的转换 简单说完了RGB的储存原理分类方式,接下来需要知道RGBYUV各个分量的转化办法,这里直接给出转换公式: R = Y + 1.402 * (V -128); G = Y – 0.34414...YUV分量进行量化 有上面的知识,加上之前对YUV的了解,下来就可以尝试将一张YUV420的图片转换成RGB888 void YUV420toRGB(unsigned char *yuv420, unsigned...char*rgb ,int width, int height) { int Ylen = width * height; unsigned char *p_Y420 = yuv420...也就是对于偶数i,共用一个ui/vi的y分量有: * yi yi+1 * yi+w yi+w+1 * 所以在yx

51910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入探索视频帧中的颜色空间—— RGB YUV

    在 ffmpeg 里面,我们可以看到源码 libavutil/pixfmt.h 中定义了一系列像素格式,绝大部分都是 RGB YUV 颜色空间类型。...带着这些疑问,开始搜索资料研究学习 RGB YUV 颜色空间相关像素格式的概念。 二、RGB YUV RGB YUV 都是颜色空间的一种。...YUV YUV 是一种彩色编码系统,主要用在视频、图形处理流水线中 (pipeline)。相对于 RGB 颜色空间,设计 YUV 的目的就是为了编码、传输的方便,减少带宽占用信息出错。...YUV 4:4:4 采样 YUV 444 采样又称全采样,意思是每个Y分量使用一个UV分量,得到的图像原始RGB图像的大小是一样的。...YUV RGB 的转换公式可以表达成矩阵相乘的形式 根据一切可以写成矩阵相乘的运算都可以利用 GPU 来加速原则,后续继续研究使用 GPU 加速 YUV 转换成 RGB 的方法,提高在业务侧落地时的性能

    1.7K10

    【音视频原理】图像相关概念 ③ ( RGB 色彩简介 | RGB 排列 | YUV 色彩简介 | YUV 编码好处 )

    一、RGB 色彩 1、RGB 色彩简介 RGB 是 计算机 中的 颜色编码方法 , 红 ( R ) / 绿 ( G ) / 蓝 ( B ) 三个颜色通道 可以设置不同的值 , 每个 通道 的 颜色值都可以取值...BGR 颜色值前面 ; AV_PIX_FMT_BGRA : 透明度通道在 BGR 颜色值后面 ; 二、YUV 色彩 1、YUV 色彩简介 YUV 也是 计算机 中的 颜色编码方法 , 常用于 模拟视频...表示 " 色度 " , 英文名称 Chrominance 或 Chroma , 即 像素颜色 ; 下图中 , 中间的图像是 Y 灰度图像 , 只有 Y 也可以成像 , 右侧是 UV 色度信息 , Y ...UV 信息 进行叠加显示 , 就可以达到 作色 彩色图像的效果 ; 2、YUV 编码好处 YUV 编码的好处是 , 亮度 Y 色度 UV 分开进行编码 , 两个信息的编码 , 互不干扰 ; 黑白电视..., 只使用 Y 编码即可 , 只需要 灰度值 就可以成像 ; 彩色电视 , 使用 YUV 编码 , 这样可以同时兼容 黑白电视 彩色电视 ; 降低 UV 色度 的编码频率 , 多个 Y 灰度 使用

    43910

    【音视频原理】图像相关概念 ⑥ ( YUVRGB 之间的转换 | YUV444 颜色编码格式 转为 RGB 格式 | RGB 颜色编码格式 转为 YUV444 格式 )

    一、 YUVRGB 之间的转换 YUVRGB 颜色格式之间进行转换时 , 涉及一系列的数学运算 ; YUV 颜色编码格式 转为 RGB 格式 的 转换公式 取决于 于 YUV 的具体子采样格式...: YUV444 YUV422 YUV420 1、YUV444 颜色编码格式 转为 RGB 格式 YUV444 格式 转为 RGB 格式 的 转换公式如下 : R = Y + 1.13983 * (V...+ 91.40992 = 135.45984 B = 1.772 \times (-128) = -126.228 计算出来的 RGB 分量 小于 0 , 则 取 0 值 , 因此 R B 分量都是...0 , 只有 G 的分量是 135.45984 , 屏幕显示绿色 ; 2、RGB 颜色编码格式 转为 YUV444 格式 RGB 格式 转为 YUV444 格式 的 转换公式如下 : Y = 0.299...; libyuv 库 是 Google 提供的一个用于处理 YUV RGB 图像数据之间转换的跨平台库 , 该函数库 支持各种 YUV 格式与 RGB 格式之间的相互转换 , 以及图像的缩放、旋转裁剪等操作

    1.7K20

    你知道RGB,那你知道什么是YUV么?

    YUV 中,每一个颜色有一个亮度信号Y两个色度信号UV。亮度信号代表亮度的强或弱。...根据 RGB 数据,YUV 从其中产生一个黑白图像,然后从数据中提取最主要的三种颜色指定为两个额外信号来描述颜色。 从真实场景到 RGB 再到 YUV 的经典过程如下: ?...YCbCrYUv只是在表示上、在针对RGB数据处理的算法上,略有不同。 下面的一张彩色图片,分别提取 Y、U(Cb)、V(Cr)信号后,如下图标注所示。...完全形态的 RGB 编码,RGB 888,一个像素的表示占用 24 bits;而 YUV 的 420 采样,可以使用 12 bits 表示一个颜色,节省了大概一半的带宽(钱),即使 RGB 555 或...所以,YUV 420 中,也就分为了 YUV 420 P YUV 420 SP 两种模式。

    2.7K31

    OpenGL YUV RGB 图像转换出现偏色问题怎么解决?

    r,g,b); } 刨根问底版 理论上,rgb2yuv yuv2rgb 的转换是可逆的,也就是说,它们可以完美地还原图像,不会引入信息损失,类似于纯粹的数学运算 1+2=3,3-2=1 。...下面来做个试验,利用上面的公式,我们对一张图片反复做多次 rgb2yuv yuv2rgb 转换,然后看下最终图像颜色的变化。...,只做 10 次 yuv rgb 的来回转换,效果如下,这时肉眼已经无法区分颜色的误差。...N=4000,做 4000 次 yuv rgb 的来回转换放大误差,效果如下,这时由于误差不断累计,出现了明显的偏色。不过,转换 4000 次这种操作在实际情况下不太可能出现。...FFmpeg 实现带滤镜的微信小视频录制功能 全网最全的 Android 音视频 OpenGL ES 干货,都在这了 一文掌握 YUV 图像的基本处理 抖音传送带特效是怎么实现的?

    92220

    摄像头图像处理YUVRGB效率分析

    YUVRGB的代码优化问题2.1 浮点转换2.2 浮点转整形2.3 浮点运算整数运算在PC上模拟的效果3. x1000上进行对比测试3.1 使用软浮点测试一帧图像转换时间3.2 开启FPU后转换图像...YUVRGB的代码优化问题 从原理上来说,对于一个YUVRGB的代码,可以从浮点浮点转整形这两种方式进行转换,而转成整数后又可以利用MXU进行计算,应该可以加快运算速度。...2.3 浮点运算整数运算在PC上模拟的效果 在PC机上模拟时间测试 ? 可以看到YUV2RGB_Native函数运行时间11158us,也就是浮点转换的时间为11158us。...考虑到乘法移位比较消耗时间,可以在代码中只做加减操作,乘法移位用MXU来进行。 主要用到的指令 而在MXU中有一个8位的乘法指令 ?...所以这四个乘法移位计算由两条MXU指令即可完成 3.3.2 程序设计 将四个char类型系数放在src1中,将四个char类型的u,v分量放在src2中 int yuv2rgb(unsigned char

    1.7K10

    色彩空间RGBCMYKHSLHSBHSVLabYUV基础理论及转换方法:RGBYUV

    基于RGB改进的HSL/HSV色彩模型HSL 模式HSB(HSV) 都是基于 RGB 的,是作为一个更方便友好的方法创建出来的。...,而不是RGB,所以要了解视频格式的基础需了解YUV。...我们常用的JPG格式,采用的YUVYUV抗干扰性强采用YUV 色彩空间更重要在于它的亮度信号Y 色度信号U、V 是分离的,这样分开的。...正常的RGB24是由24位即3个字节来描述一个像素,R、G、B各8位。而实际使用中为了减少图像数据的尺寸,如视频领域,对R、G、B所使用的位数进行的缩减,如你所说的RGB565RGB555。...这种模式是以数字化方式来描述人的视觉感应, 与设备无关,所以它弥补了RGBCMYK模式必须依赖于设备色彩特性的不足。由于Lab的色彩空间要比RGB模式CMYK模式的色彩空间大。

    74110

    色彩空间RGBCMYKHSLHSBHSVLabYUV基础理论及转换方法:RGBYUV

    之前做个设计,现在从事IT,脑子里面关于RGB,RGBA,CMY,CMYK,YUV,但是具体理论还是不扎实。...基于RGB改进的HSL/HSV色彩模型 HSL 模式HSB(HSV) 都是基于 RGB 的,是作为一个更方便友好的方法创建出来的。...实际上,上述的三种颜色:蓝、绿红色(RGB)正是我们所知道的三原色。所以,事实上,你只能看到三种颜色:蓝绿红!等等……事实不是这样啊!我们的世界明明丰富多次啊??你怎么在这里瞎扯?...这种模式是以数字化方式来描述人的视觉感应, 与设备无关,所以它弥补了RGBCMYK模式必须依赖于设备色彩特性的不足。由于Lab的色彩空间要比RGB模式CMYK模式的色彩空间大。...原文链接:色彩空间RGB/CMYK/HSL/HSB/HSV/Lab/YUV基础理论及转换方法:RGBYUV - 计算机视觉与计算机图形学的图像处理所涉及的基础理论知识 - 周陆军的个人网站,原文阅读体验可能更好

    3.5K00

    【FFmpeg】ffmpeg 命令行参数 ⑥ ( 使用 FFmpeg 提取 YUV 像素格式数据 | 使用 FFmpeg 提取 RGB 像素格式数据 | RGBYUV 之间的格式转换 )

    ; 输出 YUV 格式 视频文件 是 YUV 像素格式 , 1 分钟视频大概有 837MB , 像素格式的视频数据占据的空间是 H264 压缩格式的 80 倍 ; 3、提取 YUV 数据 - 设定提取长度画面大小...; 上述命令的核心是 -pix_fmt rgb24 设置 提取后的输出文件 的 数据格式为 rgb24 像素格式 ; 2、提取 RGB 像素格式 - 设定提取长度画面大小 提取 RGB 像素格式...ffplay 播放设置 ; 三、RGBYUV 之间的格式转换 1、设置分辨率与像素格式 将 RGB 格式的视频 转为 YUV 格式的视频 时 , 可以分别为 输入视频 输出视频 都设置 画面分辨率...具体的像素格式 输出视频 的 分辨率 像素格式 可以 不进行设置 , 默认与 输入视频 的 参数相同 ; 输入视频 必须设置 分辨率 像素格式 , 否则无法进行 像素格式的转换 ; 2、设置分辨率与像素格式...-s 320x240 是 输入文件 的 像素格式 画面大小 , -pix_fmt yuv420p -s 640x480 是 输出文件 的 像素格式 画面大小 ; 执行 ffplay -pixel_format

    73610
    领券