视频图像的两种表示方式YUV与RGB(4)

这篇具有很好参考价值的文章主要介绍了视频图像的两种表示方式YUV与RGB(4)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇主要讲YUV与RGB之间的转换,包括YUV444 颜色编码格式 转为 RGB 格式 ,RGB颜色编码格式转为 YUV444 格式。
一、 YUV与RGB之间的转换
YUV与RGB颜色格式之间进行转换时 , 涉及一系列的数学运算 ;
YUV 颜色编码格式转为RGB格式的转换公式 取决于 于 YUV 的具体子采样格式 :

  • YUV444
  • YUV422
  • YUV420

1、YUV444颜色格式转为RGB格式的转换公式如下 :
R = Y + 1.13983 * (V - 128)
G = Y - 0.39465 * (U - 128) - 0.58060 * (V - 128)
B = Y + 2.03211 * (U - 128)
公式中UV 色度值分量减去 128 , 是因为这两个分量都是从中心值 ( 256 / 2 = 128 ) 进行偏移的 , 计算时需要先将这个偏移量减去 , 然后将其转换到正确的范围中 ;
上述计算的颜色位深度 是 8 bit , 也就是1字节 , 取值范围是 0 ~ 255 , 有 256 个值 , 128 的偏移量也就是这个值的中间值 ;
如果计算出来的 RGB分量小于 0 , 则取 0 值 ;
如果计算出来的 RGB分量大于255 , 则取 255 ;

如果 YUV 解码错误 , 导致三个分量的值都是 0 , 则最终计算时 , 得到如下 3 个 RGB 分量值 ;
视频图像的两种表示方式YUV与RGB(4),音视频
若计算出来RGB分量小于 0 , 则取0值 , 因此R和B分量都是0 , 只有G的分量是135.45984 , 屏幕显示绿色 。
2、RGB 颜色格式转为YUV444 格式的转换公式如下 :
Y = 0.299 * R + 0.587 * G + 0.114 * B
U = -0.14713 * R - 0.28886 * G + 0.436 * B + 128
V = 0.615 * R - 0.51498 * G - 0.10001 * B + 128
UV 分量在计算后增加一个中间值偏移量 , 这个中间值一般是256的一半 128 , 确保UV值在合适范围之内 ;
上述计算颜色位深度是8bit , 也就是1字节 , 取值范围是 0 ~ 255 , 有256个值 , 128的偏移量也就是这个值的中间值 ;
3、YUV 格式各分量的取值范围
广播电视标准 : BT601标准 , BT709标准 , BT2020标准 ,Y 分量取值范围 : 16 ~ 235 ,UV分量取值范围 : 16 ~ 240 ;在FFmpeg中 , 这种范围称为 " MPEG 范围 ",这类标准是在电视信号中使用的 ;
计算机标准 : 在FFmpeg中, 这种范围称为 "JPEG 范围 ",YUV分量取值范围 : 0 ~ 255 ,这类标准是在计算机 中使用的。
4、转换函数库
实际使用时 , RGB与YUV 编码格式转换 , 都调用接口实现 , 如 FFmpeg 的 swscale 库 , 或者 libyuv 库 ;
FFmpeg的swscale 库是用于图像缩放和像素格式转换的库 , 该函数库提供了 高度优化的函数 , 用于在不同的像素格式之间进行转换 , 以及进行图像的大小调整 ;
libyuv库是Google 提供的一个用于处理YUV和RGB 图像数据之间转换的跨平台库 , 该函数库 支持各种YUV格式与RGB 格式之间的相互转换 , 以及图像的缩放、旋转和裁剪等操作 ;文章来源地址https://www.toymoban.com/news/detail-847878.html

到了这里,关于视频图像的两种表示方式YUV与RGB(4)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安卓音视频开发(3)—— AudioTrack两种方式播放pcm音频

    前言 之前学习了AudioRecord录制pcm音频,与之对应的就是AudioTrack播放pcm音频(MediaPlayer、SoundPool有其他应用场景),它有两种数据加载模式(MODE_STATIC、MODE_STREAM)。 模式 MODE_STATIC :这种模式下,一次将所有的数据放入一个固定的buffer,然后写入到AudioTrack中,后续就不用继续

    2023年04月22日
    浏览(53)
  • 彩色图像灰度化 (RGB ⇒ Gray )(RGB ⇒ YUV)(Verilog)

    简介:         把一个彩色图像,也称为 RGB(红,绿,蓝)图像转化为灰度图像的行为称为彩色图像灰度化处理。也就是由原来的三个通道 RGB 转化为一个通道 YCrCb(从三个亮度值转换为一个亮度值), 也即 YUV(亮度,饱和度)的过程。常见的 24 位深度彩色图像 RGB888 中的每

    2024年01月25日
    浏览(47)
  • RAW、RGB、YUV 图像格式区别

    颜色是人的视觉系统对光谱中可见区域的感知效果,它仅存在于人的眼睛和大脑中。为了准确地描述颜色,必须引入色彩空间的概念。正如几何上用坐标空间来描述坐标集合,色彩空间用数学方式来描述颜色集合。 RAW 图像就是图像感应器将捕捉到的光源信号转化为数字信号

    2024年02月04日
    浏览(43)
  • 图像处理算法大全(基于libyuv或IPP)----RGB32(ARGB)转成yuv420,RGB24,nv12,yuv422集合

    《周星星教你学ffmpeg》技巧 libyuv源码:  ok!打完收工!

    2024年02月07日
    浏览(43)
  • Unity3D教程:播放视频的两种方式

    Unity3D 中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上。第二种是在GUI层面上播放视频。播放视频其实和贴图非常相像,因为播放视频用到的MovieTexture属于贴图Texture的子类,那么本章我们就

    2024年02月11日
    浏览(40)
  • 音视频编码实战-------pcm+yuv数据转成MP4

    avcodec_find_encoder: 根据编码器ID查找编码器 avcodec_alloc_context3:创建编码器上下文 avcodec_open2:打开编码器 avformat_alloc_output_context2:为输出格式创建复用器上下文 avformat_new_stream:创建音视频流 avcodec_parameters_from_context:将编码器上下文中的参数拷贝到音视频流中的编码器参数中AVCodec

    2024年02月15日
    浏览(66)
  • 如何将yuv420p图像数据转换为RGB数据并使用opencv保存为jpg图片

    yuv420是用4个byte存储4个Y的信息,用1个Byte存储U的信息,一个Byte存储V的信息, 这4个Y共用这2个U和V ,也就是用6个Byte 存储4个像素信息,也就是一个像素需要12个Bits(6*8/4),也就是12bpp。 注意yuv420p里面的p是指planar,也就是分层存储,先存全部Y的信息,然后是U的信息,最后

    2024年02月16日
    浏览(39)
  • MR300C工业无线WiFi图传模块 内窥镜机器人图像传输有线无线的两种方式

    MR300C无线WiFi图传模使用方法工业机器人图像高清传输 ⚫ MR300C图传模块基于MIPS处理器实现,电脑/手机连接模块的WIFI热点或网口即可查看视频流 ⚫ 模块的USB 2.0 Host接口,可接入USB uvc摄像头/内窥镜默认输出的视频格式必须是MJPG ⚫ 模块支持接入摄像头/内窥镜分辨率最大支持

    2024年02月12日
    浏览(49)
  • 一文看懂图像格式 RAW、RGB、YUV、Packed/Unpacked、Bayer、MIPI、Planar、Semi-Planar、Interleaved

    目录 一、通用属性 1. Packed/Unpacked 2. 压缩/非压缩 二、RAW 1. Bayer格式 2. 分类 3. MIPI RAW 三、RGB 分类 四、YUV 1. YUV与RGB转换 2. 分类 3. 内存计算 五、压缩格式 有的人,错过了,一生再也找寻不到。 本文详细分析各种图像格式(RAW、RGB、YUV)的分类、内存分布。一篇文章让你看懂

    2024年02月06日
    浏览(38)
  • Python图像处理:使用OpenCV对图像进行HSV和RGB表示法的转换

    Python图像处理:使用OpenCV对图像进行HSV和RGB表示法的转换 在图像处理中,我们经常需要使用不同的颜色表示法来处理图像。在OpenCV中,我们可以使用HSV(色相、饱和度、亮度)表示法来替代标准的RGB(红、绿、蓝)表示法来处理图像。HSV表示法更为直观和易于使用,因为它将

    2024年02月06日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包