2.视频基础概念

介绍

这篇文章介绍下关于视频的基础知识,包括视频概念,像素,RGB,YUV,分辨率,帧率,RGB码流,YUV码流等,然后下一篇将重点介绍下H264相关的一些知识点。



一、视频概念

概念

音视频开发中,视频的几个简单总结

  1. 视频是由一组图像组成
  2. 为了传输/占用更小的控件而被压缩。
  3. 最终在显示器上展示。

而图像的几个基本概念是

  1. 像素:像素是图像的基本构建单元,是图像中最小的可控制的点。它是由数字值表示的,这些数字值描述了该点的颜色和亮度等信息。像素还有一个位深的概念,表示用多少位来表示一个像素,比如RGB888(24位表示一个像素),还有RGBA(32位表示一个像素)
    在这里插入图片描述

  2. 三原色 RGB:RGB代表红色(Red)、绿色(Green)、蓝色(Blue),是一种用于描述颜色的加色模型。在RGB颜色模型中,每种颜色的强度通过对应的红、绿、蓝三种颜色通道的数值来表示。这三种颜色通道的数值通常以整数值或者在某些情况下是浮点数值的形式来表示,取值范围一般在0到255之间,表示颜色的强度或亮度。
    在这里插入图片描述

  3. 分辨率 : 分辨率是指图像或显示器上可见的像素数量,通常用来描述图像或显示器的清晰度和细节水平。分辨率通常以水平像素数×垂直像素数的形式表示,例如,1920x1080表示宽度为1920像素,高度为1080像素的图像或显示器。

计算机显示屏是由许多微小的像素组成的。图像数据也是由一系列像素组成的。每个像素都包含有关图像在特定位置上的颜色和亮度信息。这些像素按照一定的排列方式构成了整个图像。我们的屏幕放大之后其实就是如下图这样,每个点其实都是由三个发光二极管组成,每三个发光二极管组成一个像素,根据我们图像的数据控制发光二极管的强弱,最终拼在一起就是我们看到的图像。
在这里插入图片描述

图像与屏幕的关系

图像是数据,屏幕是显示设备,图像数据经过驱动程序让屏幕显示图像。

RGB色彩问题

RGB的存储方式有RGB,或者BGR格式,这两种格式的选择通常取决于使用的图像处理库或软件的要求。在不同的图像处理库或软件中,可能会使用不同的默认格式,当遇到BGR的时候需要将格式转为RGB,比如BMP 使用的就是BGR。

屏幕指标

PPI(Pixels Per Inch)和DPI(Dots Per Inch)都是用来描述显示器或打印机分辨率的指标,但它们在用途上略有不同。

PPI(Pixels Per Inch):

  1. PPI是用于描述显示器、手机屏幕等数字屏幕的分辨率的指标。
  2. PPI表示每英寸内有多少个像素。例如,如果显示器的PPI为100,表示每英寸内有100个像素。
  3. PPI越高,屏幕的图像通常越清晰,因为在相同的屏幕尺寸下,有更多的像素来显示图像。当PPI大于300的时候就达到了视网膜级别(我们眼睛区分不出这里是有像素组成的,看起来就是一个整体)。

DPI(Dots Per Inch):

  1. DPI通常用于描述打印机或印刷品的分辨率。
  2. DPI表示每英寸内打印机喷墨或激光打印的墨点数量。更高的DPI意味着打印机可以在相同的区域内喷墨或打印更多的墨点,从而产生更清晰的图像或文本。
  3. 对于打印品,常见的DPI值包括300 DPI,600 DPI等。

它们在本质上都是描述相同的概念:每英寸内的像素数量或打印点数量。了解下就行。


分辨率,帧率

分辨率是指图像或显示器中可见的像素数量,通常用来描述图像或显示器的清晰度和细节水平。分辨率通常以水平像素数×垂直像素数的形式表示。常见的宽高比16/9 还有 4/3 。

帧率(Frame Rate)是指在一段时间内显示的图像帧数,通常以每秒帧数(Frames Per Second,FPS)的形式表示。在视频和动画中,帧率决定了图像的流畅度和视觉效果。帧率越高,图像就会越流畅,因为在单位时间内显示的图像数量更多。常见的视频和动画帧率包括24FPS、30FPS、60FPS等。例如,一个30FPS的视频意味着每秒播放30帧图像。常见的帧率有15帧/s(较多的使用在实时通讯中),30帧/s(像网上的录播课),60帧/s(高清电影)。

如果你想让图片非常清晰,就是分辨率,想让视频平滑就是帧率。

未编码RGB码流计算

公式:RGB码流 = 分辨率(宽高) 3 (RGB)帧率8,得到多少bit,我们通常所说的码流都是按照bit位来计算的。

二、YUV基本介绍

YUV是一种颜色编码系统,用于在数字视频中表示颜色。与RGB颜色空间不同,YUV将亮度(Y)和色度(U、V)分开存储,这样可以实现更高的压缩比例,适用于视频传输和存储。

  1. Y(亮度):表示图像的亮度信息,决定了图像的黑白级别。Y分量通常存储在图像中,因为它对图像的感知更加敏感。

  2. U(蓝色色度)与 V(红色色度):表示图像的色彩信息。U和V分量存储了图像中蓝色和红色的颜色信息,它们与亮度分量相比具有较低的分辨率,因为人眼对色度的感知相对较低。

如下图这是一张原始图像
在这里插入图片描述
单独表示Y分量:
在这里插入图片描述
单独表示u分量也就是cb分量,其中的b就是blue的意思,所以这个图看起来是蓝色的:
在这里插入图片描述
单独表示v分量也就是cr分量,其中的r就是red的意思,所以这个图看起来是红色的:
在这里插入图片描述

YUV编码常用于视频压缩和传输,如MPEG和H.264等视频编码标准中。在这些标准中,视频通常以YUV格式存储,然后通过压缩算法对图像数据进行压缩,以减少文件大小并提高传输效率。YUV编码的优势在于,相比RGB编码,它可以更有效地利用人眼对亮度和色彩的感知特性,从而实现更高的压缩比例,减少存储和传输带宽。

YUV的主要格式

  1. YUV444:YUV444格式包含完整的Y、U和V三个分量,每个像素都有各自的Y、U和V值,没有任何抽样。这种格式提供了最高的图像质量,但需要更多的存储空间和带宽。

  2. YUV422:YUV422格式中,Y分量的采样率与YUV444相同,但是U和V分量的采样率降低一半,即每两个像素共享一个U和V值。这种格式在保持图像质量的同时,减少了一半的色度分量,因此需要的存储空间和带宽较YUV444更少。

  3. YUV420:YUV420是最常见的YUV格式之一,它在YUV422的基础上进一步减少了色度分量的采样率。
    在YUV420格式中,每个像素的Y分量保持完整,但是U和V分量的采样率降低至四分之一,即每四个像素共享一个U和V值。这种格式在保持图像质量的同时,进一步减少了存储空间和带宽需求,因此在视频压缩和传输中被广泛使用。

注意点:
1)YUV420 并不是表示只有Y,cb两个分量,没有cr 分量,它实际指的是对每行扫描线来说,只有一种色度分量,它以2:1 的抽样率存储。相邻的扫描行存储不同的色度分量,也就是说如果一行是4:2:0,下一行就是4:0:2,在下一行还是4:2:0,一次类推。
2)UV分量通常不会单独播放,而是与Y分量一起使用。Y分量通常可以单独播放

RGB与YUV的转换关系

我们的手机或者说我们的显示器使用是RGB不是YUV,YUV主要针对的是图像的采集与编码,所以我们需要将格式做一次转换

RGB => YUV

  1. Y分量(亮度):Y=0.299R+0.587G+0.114B
  2. U分量(蓝色色度):U=−0.147R−0.289G+0.436B
  3. V分量(红色色度):V=0.615R−0.515G−0.100B

YUV => RGB
4. 红色分量(R):R=Y+1.13983V
5. 绿色分量(G):G=Y−0.39465U−0.58060V
6. 蓝色分量(B):B=Y+2.03211U

YUV三种格式的采样方式

  1. YUV4:4:4: 每个格子里都有YUV分量,他们的关系是1:1:1,对应到屏幕上就是1280 * 720 * 3的数据量。

在这里插入图片描述

YUV4:2:2: 对于每4个Y样本,U和V样本各取2个,这意味着在水平方向上,色度分量的采样率是亮度分量的一半,而在垂直方向上,色度分量与亮度分量的采样率相同。
在这里插入图片描述
YUV4:2:0:垂直方向和水平方向上Y分量和UV分量的采样比都是2:1.
在这里插入图片描述

YUV420的存储方式

它是按照分层进行存储,这样的存储格式适合于黑白电视机兼容。每4个的Y前四项对应一个U分量一个V分量。
在这里插入图片描述
它按照存储方式分为平面格式与打包格式
在这里插入图片描述


总结

以上是视频知识跟YUV知识的一点介绍,下面介绍下H264原理

  • 14
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值