YUV以及RGB所占内存大小

2024-05-04 03:18
文章标签 rgb yuv 内存大小

本文主要是介绍YUV以及RGB所占内存大小,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

RGBA的大小是width*height*4, width*height*(32/8)

YUV420的大小是widht*height*3/2

 

 

图片的大小定 义为:w * h,宽高分别为w和h
一、YUV420格式
先Y,后V,中间是U。其中的Y是w * h,U和V是w/2 * (h/2)
如果w = 4,h = 2,则:
yyyy
yyyy
uu
vv
内存则是:yyyyyyyyuuvv
需要占用的内存:w * h * 3 / 2
采样规律是:每个像素点都采样Y,奇数行采样1/2个U,不采样V,偶数行采样1/2个V,不采样U

二、YUV422格式
本格式使用较为广泛
每两个点为一组,共占用4个字节
YUYVYUYV…
对于每一组YUYV,前面一个Y和本组中的UV组成第一个点,第二个Y和本组中的UV组成第二个点
所以,在内存中,宽高分别为w * 2、h。
如果w = 4,h = 2,则:
YUYVYUYV
YUYVYUYV
需要占用的内存:w * h * 2

三、UYUY422格式

本格式和YUYV422一样,只是YUV的位置不一样罢了

每组中YUV的排列顺序为:UYUV

 需要占用的内存:w * h * 2

****************************************
YUV的采样格式及每种格式中单像素所占内 存大小

YUV主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。
 采样格式          单像素所占内存大小        存放的码流

 YCbCr 4:4:4            3  byte              Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3(4像素为例)

 YCbCr 4:2:2            2  byte              Y0 U0 Y1 V1 Y2 U2 Y3 V3(4像素为例)

 YCbCr 4:2:0            1.5byte              Y0 U0 Y1 Y2 U2 Y3 Y5 V5 Y6 Y7 V7 Y8(8像素为例)
 
YCbCr 4:1:1            1.5byte              Y0 U0 Y1 Y2 V2 Y3(4像素为例)

 

RGB图像大小计算

位图具有特定的颜色深度,是每个像素的位数。位图中的每个像素都有相同数量的位,它决定了图像中有多少不同的颜色。在图像压缩前可以自己算出图像的大小,比如说在PhotoShop中创建一张1600*1200的图片,并选择了RGB每色8位(也就是一个像素24位)的话,就可以算出图片大小为5.49MB,过程为:1600*1200*24(位像素)/8(1字节8位)/1024(1KB=1024B)/1024(1MB=1024KB)MB。但是这样的图片太大了,并不实用,所以人们就利用了图像缩技术,如果是在PS中制作保存的话也就是67KB左右了,这当中到底是怎么压缩的,这就要看是采用哪种压缩技术了。

关于像素还有分辨率之间的关系,有一个让人容易弄混的概念,图片的分辨率是按一个方向上来说的比如说有:水平分辨率,垂直分辨率。分辨率的单位是DPI也就是dots per inch的缩写意思就是每英寸的点数就为分辨率。图片的宽度也可以说是水平像素等于分辨率*水平英寸数如1600(像素)=72(分辨率)*22.22(水平宽度英寸数)。

而视频显示器有一个说法也叫分辨率,常见的屏幕分辨率有1024*768也就是水平像素*垂直像素,所以在这里要注意了,不要以为出问题了(前面的公式)其实这只是名字大概相同而已,意义是不同的,请注意对于显示器而言,是叫屏幕分辨率,对于图片来说就分为水平分辨率和垂直分辨率,这两个分辨率是完全不同的概念。

位深度 用于指定图像中的每个像素可以使用的颜色信息数量。每个像素使用的信息位数越多,可用的颜色就越多,颜色表现就更逼真。例如,位深度为 1 的图像的像素有两个可能的值:黑色和白色。位深度为 8 的图像有 28(即 256)个可能的值。位深度为 8 的灰度模式图像有 256 个可能的灰色值。

  RGB 图像由三个颜色通道组成。8 位/像素的 RGB 图像中的每个通道有 256 个可能的值,这意味着该图像有 1600 万个以上可能的颜色值。有时将带有 8 位/通道 (bpc) 的 RGB 图像称作 24 位图像(8 位 x 3 通道 = 24 位数据/像素)。

分辨率(dpi)就是每英寸的像素个数,

这篇关于YUV以及RGB所占内存大小的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958234

相关文章

python计算所有进程所占用内存大小之和

#!/usr/bin/env python # -*- coding:utf-8 -*- #参考:https://www.cnblogs.com/zhou2019/p/10864079.html ''' ps 可以查看进程的内存占用大小,写一个脚本计算一下所有进程所占用内存大小的和。 (提示,使用ps aux 列出所有进程,过滤出RSS那列,然后求和) 注:ps -ef 与 ps aux 效果一样

RGB彩色模型理解与编程实例

一、引言 RGB彩色模型中的R、G和B为三原色,通常R、G和B分别用8位表示,因此24位的RGB 真彩色图像能表示16777216种颜色。在如右图所示RGB彩色立方体可知,任意两种原色混合可以合成一种新的颜色。红(1,0,0)和绿(0,1,0)混合可以合成黄色(1,1,0);绿(0,1,0)和蓝(0,0,1)混和可以得到青色(0,1,1);红(1,0,0)混合绿(0,1,0)可以得到深红色

CMYK(印刷色)与RGB(显示屏色)的关系

CMY是和RGB相对的!   RGB是红(Red)、绿(Green)和蓝(Blue)三种颜色的简写,是相加混色模式,每种颜色分量越多,得到的颜色越亮,每种颜色的取值范围为0~255;RGB常用于计算机显示方面。 CMY是青(Cyan)、洋红或品红(Magenta)和黄(Yellow)三种颜色的简写, 是相减混色模式,用这种方法产生的颜色之所以称为相减色,乃是因为它减少了为视觉系统识别颜色所需要的反

图像分割(三)-RGB转HSV后图像分割方法

常用彩色模型有RGB和HSV模型,有时候在RGB颜色空间进行背景分割比较困难的问题,转换为HSV模型然后对色调和饱和度图像进行处理会得到比较理想的处理结果,下面通过一个实例讲解该方法的MATLAB实现,该方法对其他图像检测也具有一定的参考价值。 主要步骤:读入RGB彩色图像,转换为灰度图像,并进行二值化,发现背景分割效果不好。故改变思路,先将RGB彩色图像转换为HSV图像,提取H(

java -Xms -Xmx设置java应用程序运行的内存大小,Xms Xmx PermSize MaxPermSize 区别

-Xms 和 -Xmx是java 命令的一个选项,用来设置你的应用程序启动时的可用内存大小和运行时的可用的内存大小。 Xmx是java的一个选项,用来设置你的应用程序能够使用的最大内存数(看好,只是你的应用程序,不是整个jvm),如果你的程序要花很大内存的话,那就需要修改缺省的设置,比如配置tomcat的时候,如果流量啊程序啊都很大的话就需要加大这个值了,不过有一点是要记住的,不要大得超过你

YUV测试视频下载地址

测试视频编解码器所需的yuv测试序列网址。 http://media.xiph.org/video/derf/ http://trace.eas.asu.edu/ ftp://ftp.ldv.ei.tum.de/videolab/public/SVT_Test_Set/

yuv文件测试

我们要测试的文件foreman_part_qcif.yuv它包含三帧彩色图像。 以及文件foreman_part_qcif.y 注意后缀,它包含三帧灰度图像(只有y信号) qicf文件的分辨率为176*144,并且每个分量用一个字节存储 则对于foreman_part_qcif.yuv文件,用于表达颜色的字节大小应该为: 3[帧数]*{176*144[亮度

安装docker版mongodb 6并设置时区、容器内存大小

本文以mongodb6为例,讲解如何在Ubuntu22.04上的docker中安装mongodb6。 一、环境准备 系统 Ubuntu22.04docker 26.1.4 二、安装mongodb6 拉取镜像(下文都以root用户执行命令): docker pull mongo:6.0.6 创建docker compose配置文件: cd /rootmkdir mongodb-

iOS UIColor RGB 颜色对照表

色 彩 RGB  值 对 照 表 color red green blue Hexadecimal triplet example Aliceblue 240 248 255 f0f8ff   Antiquewhite 250 235 215 faebd7   Aq

解决IDEA使用卡顿的问题,设置JVM内存大小和清理缓存

解决IntelliJ IDEA中卡顿问题,可以尝试以下几个常见且有效的步骤: 1 增加IDEA的JVM内存分配: 位于IDEA安装目录的bin文件夹下,找到对应的操作系统配置文件(idea64.exe.vmoptions(Windows)或idea64.vmoptions(Linux/macOS))。 使用文本编辑器(如Notepad++, VSCode或系统自带的文本编辑器)打开这个文件。