RGB与YCbCr转换算法

目录

  • RGB与YCbCr转换算法
    • RGB与YCbCr色域介绍
      • RGB模型
      • YCbCr色域
        • 简介
        • YCbCr的应用
        • YUV 和 YCbCr 的区别
    • 色彩转换公式
  • RGB 转 YCbCr 实现
    • RGB 转 YCbCr 的 Matlab 实现
    • RGB 转 YCbCr 的 FPGA 实现
  • YCbCr 转 RGB 实现
    • YCbCr 转 RGB 的 Matlab 实现
    • YCbCr 转 RGB 的 FPGA 实现

RGB与YCbCr转换算法

RGB与YCbCr色域介绍

RGB模型

为了研究RGB模型,我们需要从光线的底层物理组成开始分析。光也属于电磁波,有着同样的特性,电磁波光谱图。

在这里插入图片描述

在电磁波波段中,400-700nm范围内为可见光波段,即人眼可见的光,大自然的色彩均是由可见光组成的。

在这里插入图片描述

红、绿、蓝三色被称为三原色。

在这里插入图片描述

饱和度均为100%的RGB能组合8种颜色,那么当RGB饱和度在0~100%(色彩深度)变化时,就能细分组合出更多的颜色。计算机处理的BMP图片为24bit的位图,即每一通道的颜色可以细分为28=256级别(RGB888),每一通道的色彩分辨率能达到256级,总共能综合出的颜色种类计算如下:

R的种类xG的种类xB的种类 = 28 x 28 x 28 = 16777216 ≈ 1600万

YCbCr色域

简介

YCbCr 由Y(Luminance)、Cb(Chrominance-Blue)和 Cr(Chrominance-Red)组成,其中 Y 表示颜色的明亮度和浓度,Cb 和 Cr 则分别表示颜色的蓝色浓度偏移量和红色浓度偏移量。

医学研究证明,人眼对视频的 Y 信号分量更敏感,因此在通过对色度分量进行子采样来减少色度分量后,肉眼将察觉不到图像质量的变化。如果只有 Y 信号分量,而没有 U、V信号分量,那么表示的图像就是黑白灰度图像。

YCbCr 格式可以细分成两种格式:tv range 格式与 full range 格式,主要区别如下:

  • tv range 格式

    Y ∈ [16,235],Cb,Cr ∈ [16,240],主要是广播电视采用的数字标准。

  • full range 格式

    Y,Cb,Cr ∈ [0,255],主要是 PC 端采用的标准,所以也称为 pc range 格式。

YCbCr的应用
  1. HDMI、DP等接口,UVC、BT656/709/1120等协议,都可以采用YCbCr格式进行传输,(YCbCr422/420 有效降低了传输带宽);
  2. 不管是H.264还是AVS、JPEG、MJPEG等格式,都采用YUV格式进行编码压缩;
  3. 很多机器视觉、图像处理、检测识别算法,不关注色彩,只需要在灰度域处理即可。
YUV 和 YCbCr 的区别
  • YUV 是一种模拟信号,其色彩模型源于 RGB 模型,即亮度与色度分离,适合图像算法的处理,常应用于模拟广播电视中,其中 Y ∈ [0,1],U,V∈[-0.5,0.5]
  • YCbCr 是一种数字信号,其色彩模型源于 YUV 颜色模型,是 YUV 压缩和偏移的版本(所谓偏移就是从 [-0.5,0.5] 偏移到 [0,1],因此计算的时候会加 128),在数字视频领域应用广泛,JPEG、MPEG、H.264/5、AVS等都采用 YCbCr 格式。我们通常广义讲的 YUV ,严格讲就是 YCbCr。

色彩转换公式

在进行颜色转换之前,需要明确 YCbCr 的格式范围,否则会导致偏色。

在这里插入图片描述

另外,图像传感器可以配置输出 RGB/YCbCr 格式图像,对应的手册一般也会给出转换公式,在 VO7725图像传感器手册中,RGB 与 YCbCr 的转换关系如下所示:

在这里插入图片描述

与前面介绍的 full range 格式下的转换公式比较还是有略微差别。

RGB 转 YCbCr 实现

RGB 转 YCbCr 的 Matlab 实现

  1. 读取图像

在这里插入图片描述

  1. 转换公式参数化设计

在这里插入图片描述

  1. 生成仿真测试源文件和验证文件

在这里插入图片描述

RGB 转 YCbCr 的 FPGA 实现

  • 流水线延迟3个时钟周期

  • 封装成 IP 例化界面如下所示:

在这里插入图片描述

YCbCr 转 RGB 实现

YCbCr 转 RGB 的 Matlab 实现

YCbCr 转 RGB 的 FPGA 实现

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

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

相关文章

【STM32】I2C通信协议

文章目录 I2C通信协议简介I2C协议硬件规定I2C协议软件规定I2C时序基本单元I2C典型时序 参考 STM32硬件I2C与软件模拟I2C超详解 I2C通信协议简介 I2C 也叫 IC、IIC (Inter-Integrated Circuit) ,集成电路总线是由 Phiilps 公司开发的两线式串行总线,用于…

大数据挖掘

大数据挖掘 数据挖掘 数据挖掘定义 技术层面: 数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中、人们事先不知道的、但又潜在有用的信息的过程。 数据准备环节 数据选择 质量分析 数据预处理 数据仓库 …

leetcode101:对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false提示: 树中节点数目在范围…

湘潭大学软件工程算法设计与分析考试复习笔记(一)

文章目录 前言随机类(第七章)随机概述数值随机化舍伍德拉斯维加斯蒙特卡罗 模拟退火遗传人工神经网络 回溯(第五章)动态规划(第四章)后记 前言 考试还剩十一天,现在准备开始复习这门课了。好像全…

Win11专业版Docker安装、配置记录

零,系统环境配置 首先,安装Docker需要系统支持开启硬件虚拟化及Hyper-V功能,所以这里需要Win10/11的专业版,这样才能进行Docker for Windows软件安装。 1,硬件虚拟化 至于如何开启硬件虚拟化,自行百度即…

【Android】线程池的初见

引言 在Android当中根据用途分为主线程与子线程,主线程当中主要处理与界面相关的操作,子线程主要进行耗时操作。除了Thread本身以外,在Android当中还有很多扮演者线程的角色,比如AsyncTask( 底层为线程池,…

春秋云镜-2022网鼎杯

flag1 进入网站,发现是wordpress,这种一般都不会有啥直接漏洞,应该是插件漏洞,或者弱口令 fscan扫描ip 好像没扫出啥东西 wp-login进入后台 爆破密码,弱口令admin,123456,之前lazysysadmin好…

js ResizeObserver API

一、ResizeObserver 是什么 ResizeObserver 是一个浏览器提供的 JavaScript API,用于监测一个元素的大小变化。它可以帮助开发者在元素的宽度或高度发生改变时执行某些操作,比如调整布局、重新渲染内容等。 二、Resize Observer和监听resize的区别及其…

《探索Zynq MPSoC》学习笔记(三)

引言:本文简要介绍FPGA器件技术发展以及当今FPGA器件的体系架构和特性。 第二章 FPGA、Zynq和Zynq MPSoC(2) 在本章涵盖的三种器件类型中,FPGA是建立时间最长的,也是Zynq和Zynq MPSoC器件PL元件的基础。因此&#xf…

支持用户注册和登录、发布动态、点赞、评论、私信等功能的社交媒体平台创建!!!

需要整体源代码的可以在我的代码仓下载https://gitcode.com/speaking_me/social-media-platformTest.git 社交媒体平台 描述:社交媒体平台需要支持用户注册、发布动态、点赞、评论、私信等功能。 技术栈: 前端:React, Angular, Vue.js后端…

跨平台WPF框架Avalonia教程 十五

ListBox 列表框 列表框从元素源集合中显示多行元素,并允许选择单个或多个。 列表中的元素可以组合、绑定和模板化。 列表的高度会扩展以适应所有元素,除非特别设置(使用高度属性),或由容器控件设置,例如…

STL之mapset续|红黑树篇

STL之map&set续|红黑树篇 红黑树红黑树的规则红黑树的模拟实现 map&set的模拟实现封装map/set关于红黑树的复用红黑树模板参数set的const迭代器问题 红黑树 红黑树也是一种搜索二叉树,它通过颜色和规则控制树上没有一条路径会比其他路径长两倍,…

三、计算机视觉_03LeNet5及手势识别案例

1 LeNet-5基本介绍 LeNet-5是一种经典的卷积神经网络(CNN)架构,由Yann LeCun在1998年提出,用于手写数字识别,LeNet-5是卷积神经网络的开创性工作之一,它引入了卷积层、池化层和全连接层的组合,为…

【论文模型复现】深度学习、地质流体识别、交叉学科融合?什么情况,让我们来看看

文献:蓝茜茜,张逸伦,康志宏.基于深度学习的复杂储层流体性质测井识别——以车排子油田某井区为例[J].科学技术与工程,2020,20(29):11923-11930. 本文目录 一、前言二、文献阅读-基于深度学习的复杂储层流体性质测井识别2.1 摘要2.2 当前研究不足2.3 本文创新2.4 论文…

Uni-APP+Vue3+鸿蒙 开发菜鸟流程

参考文档 文档中心 运行和发行 | uni-app官网 AppGallery Connect DCloud开发者中心 环境要求 Vue3jdk 17 Java Downloads | Oracle 中国 【鸿蒙开发工具内置jdk17,本地不使用17会报jdk版本不一致问题】 开发工具 HBuilderDevEco Studio【目前只下载这一个就…

Unity-Editor扩展Odin + 自定义EditorWindow记录

没有上下文,可能你不知道这是什么(关于Odin Inspector) 在写一个 Odin 插件的完整文章,卡了三天,之后会放出 使用Unity的人之中 1/10 可能会使用Editor扩展,而这之中的又1/10的 人可能会用Odin这个Editor的附加扩展 -…

FIFO系列 - FIFO使用中需要注意的若干问题

FIFO使用中需要注意的若干问题 文章目录 FIFO使用中需要注意的若干问题前言场景1:包数据FIFO设计之冗余法场景2、FIFO数据传输之流控总结前言 场景1:包数据FIFO设计之冗余法 场景:类似图像、文字等码流数据是不需要重复被访问的,因此使用FIFO进行缓存(如果需要被存储,一…

计算机毕业设计 | springboot+vue大学城水电管理系统 校园学校物业水电管理(附源码+文档)

1,绪论 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理大学城水电管理系统的相关信息成…

5-对象的访问权限

对象的访问权限知识点 对象的分类 在数据库中,数据库的表、索引、视图、缺省值、规则、触发器等等、都可以被称为数据库对象,其中对象主要分为两类 1、模式(schema)对象:模式对象可以理解为一个存储目录、包含视图、索引、数据类型、函数和…

药方新解:Spring Boot中药实验管理系统设计

3系统分析 3.1可行性分析 通过对本中药实验管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本中药实验管理系统采用SSM框架,JAVA作为开发语…