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

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

一、视频帧 对于视频,我们都知道是由一系列的画面在一个较短的时间内(通常是 1/24 或 1/30 秒)不停地下一个画面替换上一个画面形成连贯的画面变化。这些画面称之为视频帧。...RGB 格式根据存储的位数可以分为 16 格式 、 24 格式 和 32 格式。在 FFmpeg 的源码中也可以看到 16bpp、24bpp 和 32bpp 的注释说明。...(因为内存的字节顺序有大端序和小端序区别,RGB 可能被表达为 BGR 顺序,本质上是一样的) 16 格式主要是 RGB555 和 RGB565 两种表达方式。...RGB555 是每个通道分量占 5 ,空出一不用。RGB565 则顾名思义,R 和 B 通道占 5 ,G 通道占 6 。...# RGB555 XRRR RRGG GGGB BBBB # RGB565 RRRR RGGG GGGB BBBB 24 格式和 32 格式我们最常用到,RGB24 表示每个颜色通道分量占 8

1.4K10

音视频开发基础知识(1)——图像基本概念

深 一般来说,我们看到的彩色图像中,都有三个通道,这三个通道就是R、G、B通道,(有的时候还会有Alpha值,代表透明度) 通常R、G、B各占8个,我们称这种图像是8bit图像,而这个8bit就是深...,深越大,我们能够表示的颜色值就越多,目前我们大多数情 况下看到的图像以及视频还是8bit深的。...跨距为了能够快速读取一行像素,我们一般会对内存中的图像实现内存对齐,比如16字节对齐。 举个例子,我们现在有一张RGB图像,分辨率是1278x720。...如下图所示: 也就是说,每读取一行数据时候需要跳过这多余的6个字节 帧率 FPS(frame per second 每秒钟要多少帧画面) 帧率:影响画面流畅度,与画面流畅度成正比: 帧率越大...,画面越流畅; 帧率越小,画面越有跳动感。

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

Windows平台快速集成RTSPRTMP直播播放能力

demo说明 SDK提供C++/C#两套接口,对外提供32/64库,C++和C#接口一一对应,C#接口比C++接口增加前缀NT_PB_; WIN-PlayerSDK-CPP-Demo:播放端SDK对应的...\Release 64debug:WIN-PlayerSDK-CSharp-Demo\SmartPlayer\bin\x64\Debug 64release:WIN-PlayerSDK-CSharp-Demo...数据回调,可用于对接第三方视频分析,或自行绘制等; ④ NT_SP_SetVideoFrameCallBackV2:设置YUV/RGB32数据回调,与NT_SP_SetVideoFrameCallBack...NT_SP_SetUserDataCallBack:设置用户数据回调,用于接收扩展SEI模块发送的用户数据信息 15 SEI数据回调 NT_SP_SetSEIDataCallBack:设置视频sei数据回调,用于接收SEI数据回调 16...设置视频画面填充模式 /* * 设置视频画面的填充模式,如填充整个绘制窗口、等比例填充绘制窗口,如不设置,默认填充整个绘制窗口 * handle: 播放句柄

2K00

OV2640摄像头显示方式探究

1 显存大小分析 本次测试中: 摄像头的图像输出尺寸设置为480*272,图像格式为RGB565,即一个像素需要2个字节的空间(Red占5,Green占6,Blue占...2 SDRAM搭配DMA进行图像显示 SDRAM扩展内存,就是将SDRAM作为RGB液晶屏的显存,关于RGB-LCD的使用方法,可以先查阅之前的文章:RGB-LCD液晶屏层叠显示测试...DMA每次传输也有最大的限制,为:2的16次方,即65536。...上面的方式,DMA每次传输的大小为一帧图像,且DMA的传输数据宽为32(4字节),则一帧的数据量为:480*272*2/4=65280,小于65536,刚刚够,所以图像看起来显示正常(但实测,图像画面变化较大时...对于尺寸更大的屏幕,DMA就不能一次传输一帧图像了,可以考虑每次传输一行,每传输一行后,修改DMA的地址,传输下一行,直至一幅画面传输完。

1.8K31

音视频八股文(1)--音视频基础

### 1.3.1.4 帧率 帧率即 FPS(每秒有多少帧画面),经常玩游戏的同学应该会对这个词很熟悉。我们玩游 戏时,FPS 帧率越高就代表游戏画面越流畅,越低则越卡顿。视频也是如此。...YUV(256 级别) 可以从8 RGB 直接计算: Y = 0.299*R + 0.587*G + 0.114*B; U = -0.169*R - 0.331*G + 0.5 *B ; V = 0.5...*R - 0.419*G - 0.081*B; 8bit深的情况下 ◼ TV range是16-235(Y)、16-240(UV) , 也叫Limited Range ◼ PC range是0-255...YUV -> RGB ### 1.3.2.5 YUV Stride对齐问题 比如分辨率638x480的YUV420P图像,我们在内存处理的时候如果要以16字 节对齐,则638不能被16整除,我们需要在每行尾部填充...采样值的精度取决于它用多少来表示,这就是量化。例如8量化可以表示256个不同值,而CD质量的16量化可以表示65 536个值,范围为[-32768, 32767]。

60920

音视频八股文(1)--音视频基础

图片1.3.1.4 帧率帧率即 FPS(每秒有多少帧画面),经常玩游戏的同学应该会对这个词很熟悉。我们玩游戏时,FPS 帧率越高就代表游戏画面越流畅,越低则越卡顿。视频也是如此。...YUV(256 级别) 可以从8 RGB 直接计算:Y = 0.299R + 0.587G + 0.114*B;U = -0.169R - 0.331G + 0.5 *B ;V = 0.5 R - 0.419G...- 0.081*B;8bit深的情况下◼ TV range是16-235(Y)、16-240(UV) , 也叫Limited Range◼ PC range是0-255,也叫Full Range◼...YUV -> RGB1.3.2.5 YUV Stride对齐问题比如分辨率638x480的YUV420P图像,我们在内存处理的时候如果要以16字节对齐,则638不能被16整除,我们需要在每行尾部填充2个字节...采样值的精度取决于它用多少来表示,这就是量化。例如8量化可以表示256个不同值,而CD质量的16量化可以表示65 536个值,范围为-32768, 32767。

56302

常见图像格式总结

RGB常见的的几种格式和描述: RGB565 每个像素用16表示,RGB分量各使用5、6、5RGB555 每个像素用16表示,RGB分量都使用5(剩下1不用); RGB24 每个像素用...24表示,RGB分量各使用8RGB32 每个像素用32表示,RGB分量各使用8(剩下8不用); ARGB32 每个像素用32表示,RGB分量各使用8(剩下的8用于表示Alpha(透明度...因此每个像素点需要16bit数据。...图(a):我们可以看到YUV444的色度信号的分辨率和亮度信号的分辨率无损失,我们获得了与原始图案一致的还原画面图案。...图(b):YUV422获得还原图案在水平方向上,已经出现了丢失,从绿色所框选的像素来看,YUV422在水平方向上丢失了另一个像素点的色彩值,故在画面还原时仅是对前一个像素值简单的复制重构。

1K30

音视频基本概念:分辨率、帧速率、码流、采样深、采样率、比特率

FPS,那么码流大小为:19201080(3/2)830/(1024*1024) = 89 Mb/s,至于为什么乘以3/2那就和YUV420格式存储有关系了,乘8即将Byte转为bit,如果图片格式为RGB24...即一帧图片大小为分辨率x3,如果是RGB32即一帧图片大小为分辨率x4。...四、采样深 我们常见的16Bit(16比特),可以记录大概96分贝的动态范围。那么,您可以大概知道,每一个比特大约可以记录6分贝的声音。...不过受人的器官的机能限制,16的声音和24画面基本已经是普通人类的极限了,更高位数就只能靠仪器才能分辨出来了。...比如电话就是3kHZ取样的7声音,而CD是44.1kHZ取样的16声音,所以CD就比电话更清楚。

3K20

wpf下如何实现超低延迟的RTMP或RTSP播放

​技术背景我们在做Windows平台RTMP和RTSP播放模块对接的时候,有开发者需要在wpf下调用,如果要在wpf下使用,只需要参考C#的对接demo即可,唯一不同的是,视频流数据显示的话,要么通过控件模式...,要么可以让RTMP、RTSP播放模块回调rgb数据上来,在wpf直接绘制即可。...OpenGL ES,音频:AudioTrack/OpenSL ES; [实时静音]支持播放过程中,实时静音/取消静音; [实时音量调节]支持播放过程中实时调节音量; [实时快照]支持播放过程中截取当前播放画面...; [只播关键帧]Windows平台支持实时设置是否只播放关键帧; [渲染角度]支持0°,90°,180°和270°四个视频画面渲染角度设置; [渲染镜像]支持水平反转、垂直反转模式设置; [等比例缩放...总结Windows平台下如果需要wpf播放,如果需要更灵活,可以采用回调rgb数据的模式,上层直接绘制,只是低延迟的播放出来画面,采用上述控件模式亦可,除了wpf外,我们提供了C++和C#的接口和demo

14010

音视频编解码常用知识点

在计算机中采样位数一般分为8bit和16bit,但有一点请大家注意,8不是说把纵坐标分成8份,而是分成2的8次方即256份; 同理16是把纵坐标分成2的16次方65536份。...RGB色彩空间及存储模式比较简单,我们挑几个有代表性的存储模式来简述一下: 存储模式RGB565 使用16b(bit)表示一个像素,5b用于R,6b用于G,5b用于B。...存储模式RGB888 使用24来表示一个像素,每个分量都用8表示。其示意图跟RGB565示意图类似。...存储模式ARGB8888 使用32来表示一个像素,R、G、B都用8表示,另外A(Alpha)表示透明度,也用8表示。...平均算来,一个像素占用的数据宽度为16b,其中Y占8b,U占4b,V占4b。后面存储模式命名中的数字16指的就是16b。

1.5K20

视频直播带宽的最强计算过程

RGB=[183,67,21] 通过这种方式,一共能表达多少种颜色呢?256×256×256=16,777,216种,因此也简称为1600万色。...RGB三色,每色有8bit,这种方式表达出来的颜色,也被称为24色(占用24bit)。 这个颜色范围已经超过了人眼可见的全部色彩,所以又叫真彩色。...在视频中,一个帧(Frame)就是指一幅静止的画面。帧率,就是指视频每秒钟包括的画面数量(FPS,Frame per second)。 ? 帧率越高,视频就越逼真、越流畅。...视频通信系统之所以要采用YUV,而不是RGB,主要是因为RGB信号不利于压缩。 在YUV这种方式里面,加入了亮度这一概念。...所以,在无损无压缩格式(例如wav格式)中,音频的码率=采样率(48k)× 深度(16)× 通道数(2)= 1,536 kbps。

2.5K20

数字视频基础知识---颜色空间

于是,结合人眼睛的敏感程度,使用3个字节(3*8)来分别表示一个像素里面的Red,Green和Blue的发光强度数值,这就是常见的RGB格式。...RGB24   RGB24使用24来表示一个像素,RGB分量都用8表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。...相比RGB色彩空间,YCbCr色彩空间有一个显著的优点。Y的存储可以采用和原来画面一样的分辨率,但是Cb,Cr的存储可以使用更低的分辨率。这样可以占用更少的数据量,并且在图像质量上没有明显的下降。...画面转换成为YUV画面了,反过来也可以。...下面将j介绍画面数据究竟是以什么形式存储起来的。 在RGB24格式中,对于宽度为w,高度为h的画面,需要w*h*3个字节来存储其每个像素的rgb信息,画面的像素数据是连续排列的。

56910

视频技术快览 0x0 - 图像基础和前处理

为了能快速读取一行像素,一般会对内存中的图像实现内存对齐,如 16 字节对齐。这样,每行像素的字节数就不一定是图像宽度 x 深,而是图像宽度 x 深 + 内存对齐的字节数。...# 颜色空间 # RGB 通常,RGB 图像每一个像素都是分别存储 R、G、B 三个值,且三个值依次排列存储。如一张 8 bit 深的 RGB 图,每个值占用一个字节。...使用 YUV 的好处 以前只有黑白电视机,每一帧电视画面都是黑白的,没有色彩信息。当然黑白电视机也不支持显示彩色图像。...后来随着技术的发展,出现了彩色电视机,每一帧画面都是有颜色信息的,那当然可以使用 RGB、YUV 等颜色空间来表示一帧图像。...NV61 Planar YU16 YV16 YUV 4:2:0 Packed NV12 NV21 Planar YU12 YV12 # RGB 与 YUV 的转换 Color Range

63320

云直播(CSS)“你问我答”第七季(2020.11月&12月)

设备中产生的视频数据常见的有 RGB 和 YUV 两种 : (1)RGB顾名思义是由红、蓝、绿三种颜色分量组成的色彩表示方式。...众所周知,通过红、蓝、绿三种色光按不同比例可以混合出其他各种色光,RGB色彩标准就是依此原理而制定。RGB还有一些细分的类别,如RGB24、RGBA32、BGRA32等。...常用的PCM类型是PCM16,使用的采样率是48000Hz或44100Hz,采样16bit,声道数为单声道或者双声道。 Q4:什么是直播的编解码?...非背景流断开,断掉的流画面会停在最后一帧,背景流断开,则整个画面都会卡住。在15分钟内该流以同一流ID重新推流成功,则自动恢复混流。 Q6:混流过程中,如果有主播下播,混流会自动更改混流布局吗?...码率(或称最大比特率)上限就是您的网络上传速度,如果设太高就会使直播画面丢帧卡顿。 Q10:H.264编码的优势?

88261

颜色空间系列2: RGB和CIELAB颜色空间的转换及优化算法

首先,RGB和LAB之间没有直接的转换公式,其必须用通道XYZ颜色空间作为中间层,关于RGB和XYZ颜色空间的转换及优化,详见颜色空间系列1。...下面的过程就简单了,对于A,B分量,就是进行简单的乘法、移位及加法,而对于L分量,必须有一个放大的过程,而这个过程我们应该直接从其系数入手,如下所示: const int ScaleLC = (int)(16...我曾自己的研究过这些算法,如果完全像上面那样靠整数乘法及移位来实现,主要的难度是t^3这个表达式的计算结果会超出int类型的表达范围,而如果用64的long类型,在目前32机器依旧占主流配置的情况下...查找表的建立如下: for (I = 0; I < 256; I++) { T = I * Div116 + Add16; if (T > ThresoldF)...还有几个优化的地方就是我的所有的查找表都不是用的C#的数组,而是直接分配内存,这是因为C#的数组在很多情况下会有一个判断是否越界的汇编码,而用非托管内存则不会。

3.2K20

树莓派(香橙派)通过.NET IoT 操作SPI编写屏幕驱动 顺手做个四足机器人

本款LCD使用的内置控制器为ST7789V3,是一款240 x RGB x 320像素的LCD控制器,而本LCD本身的像素为172(H)RGB x 320(V),同时由于初始化控制可以初始化为横屏和竖屏两种...该LCD支持1216以及18每像素的输入颜色格式,即RGB444,RGB565,RGB666三种颜色格式,本例程使用RGB565的颜色格式,这也是常用的RGB格式 LCD使用四线SPI通信接口,...这样可以大大的节省GPIO口,同时通信是速度也会比较快 我买的屏幕分辨率是172 * 320的,支持16色,一张图片传输的总数据为172 * 320 * 2字节。...1.47寸显示屏c#驱动 https://github.com/GreenShadeZhang/dotnet-iot-tutorial-code/tree/main/src/ST7789V3 目前驱动部分测试是....NET IoT操作I2C控制16路舵机驱动器 这个舵机驱动部分,社区已经有贡献了,所以我直接通过.NET IoT进行一次封装就可以控制16路舵机驱动器了,有兴趣的可以看下源码和我COPY官方的测试程序

1.1K20
领券