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.rhkb.cn/news/475417.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

子串【Lecode_HOT100】

1.和为K的子数组No.560 前缀和枚举 public int subarraySum(int[] nums, int k) {int count 0;//满足条件的个数//计算前缀和int[] preSum new int[nums.length1];for(int i 1 ; i<preSum.length;i){preSum[i]preSum[i-1]nums[i-1];}//查找满足kfor(int l 0;l<preSum…

13.C++内存管理2(C++ new和delete的使用和原理详解,内存泄漏问题)

⭐本篇重点&#xff1a;new, delete的使用和原理 ⭐本篇代码&#xff1a;c学习/04.c-动态内存管理 橘子真甜/c-learning-of-yzc - 码云 - 开源中国 (gitee.com) 目录 一. new和delete的使用 1.1 操作内置类型 1.2 操作自定义类型 二. new, delete与malloc, free的区别 2.1…

vue中动态渲染静态图片资源

不报错且f12查看元素的时候&#xff0c;显示的src说明已经渲染到html的src上&#xff0c;但是就是不显示在页面上 原因 在vue上&#xff0c;动态渲染静态图片资源&#xff08;比如从assets文件夹加载的图片&#xff09;需要注意打包工具对静态资源的解析方式 由于vue2的脚手…

uniapp 相关的swiper的一些注意事项

先推荐一个一个对标pc端swiper的uniapp版本 zebra-swiper 缺点是自定义分页器不是很好处理 不知道怎么弄 优点:可以进行高度自适应 &#xff08;这个uniapp原生swiper没有 只能动态修改 采用js 或者只有几种固定高度时采用变量修改&#xff09; <swiperref"lifeMiddle…

豆瓣书摘 | 爬虫 | Python

获取豆瓣书摘&#xff0c;存入MongoDB中。 import logging import timeimport requests from bs4 import BeautifulSoup from pymongo import MongoClientheaders {accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,image/apng,*/*;q0.8,…

(Linux)搭建静态网站——基于http/https协议的静态网站

简单了解nginx配置文件 1.下载并开启nginx服务 下载 [rootlocalhost ~]# dnf install nginx -y开启 [rootlocalhost ~]# systemctl restart nginx 1.(1)搭建静态网站——基于http协议的静态网站 实验1&#xff1a;搭建一个web服务器&#xff0c;访问该服务器时显示“hello w…

含有非期望产出的EBM模型及其改进模型

含有非期望产出的EBM模型及其改进模型 今天推出的是含有非期望产出的EBM模型及其两种改进模型。 **参考文献&#xff1a;《基于数字经济要素组合的绿色全要素生产率提升研究中的模型》**杜娟&#xff0c;张子承&#xff0c;王熠 本文构建了考虑非期望产出的改进EBM&#xff…

VScode学习前端-01

小问题合集&#xff1a; vscode按&#xff01;有时候没反应&#xff0c;有时候出来&#xff0c;是因为------>必须在英文状态下输入&#xff01; 把鼠标放在函数、变量等上面&#xff0c;会自动弹出提示&#xff0c;但挡住视线&#xff0c;有点不习惯。 打开file->pre…

使用 .NET 创建新的 WPF 应用

本教程介绍如何使用 Visual Studio 创建新的 Windows Presentation Foundation &#xff08;WPF&#xff09; 应用。 使用 Visual Studio&#xff0c;可以向窗口添加控件以设计应用的 UI&#xff0c;并处理这些控件中的输入事件以与用户交互。 在本教程结束时&#xff0c;你有一…

自存 sql常见语句和实际应用

关于连表 查询两个表 SELECT * FROM study_article JOIN study_article_review 查询的就是两个表相乘&#xff0c;结果为两个表的笛卡尔积 相这样 这种并不是我们想要的结果 通常会添加一些查询条件 SELECT * FROM study_articleJOIN study_article_review ON study_art…

嵌入式linux中QT信号与槽基本操作与实现

大家好,今天主要给大家分享一下,如何使用linux系统上的QT进行界面开发与实现。 第一:QT的信号与槽基本简介 在操作QT的时候,可以使用里面的信号与槽。所谓信号就是一个对象发出的信号,槽就是当这个对象发出这个信号时,对应连接的槽就发被执行或者触发。 进行信号与槽的连…

机器学习—学习曲线

学习曲线是帮助理解学习算法如何工作的一种方法&#xff0c;作为它所拥有的经验的函数。 绘制一个符合二阶模型的学习曲线&#xff0c;多项式或二次函数&#xff0c;画出交叉验证错误Jcv&#xff0c;以及Jtrain训练错误&#xff0c;所以在这个曲线中&#xff0c;横轴将是Mtrai…

【SpringBoot】什么是Maven,以及如何配置国内源实现自动获取jar包

前言 &#x1f31f;&#x1f31f;本期讲解关于Maven的了解和如何进行国内源的配置~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f3…

基于xr-frame实现微信小程序的手部、手势识别3D模型叠加和石头剪刀布游戏功能

前言 xr-frame是一套小程序官方提供的XR/3D应用解决方案&#xff0c;基于混合方案实现&#xff0c;性能逼近原生、效果好、易用、强扩展、渐进式、遵循小程序开发标准。xr-frame在基础库v2.32.0开始基本稳定&#xff0c;发布为正式版&#xff0c;但仍有一些功能还在开发&#…

【Word】一键批量引用论文上标——将正文字体改为上标格式

【Word】一键批量引用论文上标——将正文字体改为上标格式 写在最前面Word一键批量引用论文上标技巧分享核心思路&#xff1a;Word 替换功能 通配符步骤详解1. 打开 Word 替换功能2. 输入通配符模式3. 设置替换格式为上标4. 批量替换 实际效果展示技巧扩展 &#x1f308;你好呀…

vue-next-admin框架配置(vue)

vue-next-admin 先安装依赖 npm i 依赖, npm run dev 运行 1.配置代理 2.把他的逻辑和自己的登录判断逻辑结合(我的放下面&#xff0c;可以参考哦&#xff0c;可以直接使用&#xff0c;到时候修改登录逻辑就好)&#xff0c;别忘了引入ajxio哦 const onSignIn async () &g…

CMake笔记:windows下构建一个简单项目

注&#xff1a;本人的临时记录&#xff0c;没什么参看价值&#xff0c;可移步https://cmake.org/cmake/help/v3.21/guide/tutorial/index.html 1. 概述 用CMake构建一个简单的项目&#xff0c;项目由一个exe以及一个dll组成&#xff0c;项目目录结构如上图&#xff0c;build_M…

Linux移植IMX6ULL记录 一:编译源码并支持能顺利进入linux

目录 前言 一、不修改文件进行编译 二、修改设备树文件进行编译 前言 我用的开发板是100_ask_imx6ull_pro&#xff0c;其自带的linux内核版本linux-4.9.88&#xff0c;然后从linux官网下载过来的linux-4.9.88版本的arch/arm/configs/defconfig和dts设备树文件并没有对imx6ull…

安卓手机root+magisk安装证书+抓取https请求

先讲一下有这篇文章的背景吧&#xff0c;在使用安卓手机fiddler抓包时&#xff0c;即使信任了证书&#xff0c;并且手机也安装了证书&#xff0c;但是还是无法捕获https请求的问题&#xff0c;最开始不知道原因&#xff0c;后来慢慢了解到现在有的app为了防止抓包&#xff0c;把…

linux 常用命令指南(存储分区、存储挂载、docker迁移)

前言&#xff1a;由于目前机器存储空间不够&#xff0c;所以‘斥巨资’加了一块2T的机械硬盘&#xff0c;下面是对linux扩容的一系列操作&#xff0c;包含了磁盘空间的创建、删除&#xff1b;存储挂载&#xff1b;docker迁移&#xff1b;anaconda3迁移等。 一、存储分区 1.1 …