视频封装格式以及编码格式说明

视频的基础知识。

包括:视频协议和格式、视频流。

视频帧的基础知识。

YUV帧格式、常见的帧名词(帧率fps、分辨率、码率)、帧名词(1080p和1080i)
视频编解码而衍生的帧名词(GOP、I\B\P帧)

https://zhuanlan.zhihu.com/p/61747783

视频流

1. yuv

1.1 yuv是什么?

在摄像头之类编程经常是会碰到YUV格式,而非大家比较熟悉的RGB格式.
我们可以把YUV看成是一个RGB的变种来理解.

YUV三个字母中,其中"Y"表示明亮度(Lumina nce或Luma),也就是灰阶值;
而"U"和"V"表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,

如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。
YUV经常有另外的名字, YCbCr ,其中Y与YUV 中的Y含义一致,Cb Cr 就是本来理论上的“分量/色差”的标识。

C代表分量(是component的缩写)Cr、Cb分别对应r(红)、b(蓝)分量信号;
Y除了g(绿)分量信号, 还叠加了亮度信号。

1.2 为什么要有yuv?

YUV的原理是把亮度与色度分离,研究证明,人眼对亮度的敏感超过色度。
利用这个原理,可以把色度信息减少一点,人眼也无法查觉这一点

1.3 YUV的优点

1,彩色YUV图像转黑白YUV图像转换非常简单,这一特性用在于电视信号上。
2,YUV是数据总尺寸小于RGB格式


2. 444/422/420

2.1 什么是采样格式?

这是定义如何对三个分量(Y,U,V或R,G,B)进行采样的格式,包括:

YUV 4:4:4:Y,U和V均为采样格式,不进行下采样
YUV 4:2:2:Y为全采样格式,而U和V为水平向下采样
YUV 4:2:0:Y采用全采样格式,而U和V则在垂直和水平方向都进行下采样
RGB 4:4:4:R,G和B均为采样格式,不进行下采样

4:4:4,水平和垂直方向,YUV的数量相同。
4:2:2,水平方向,每两个点共用一个UV数据,垂直方向YUV数量相同。
4:2:0,水平方向和垂直方向,每两个点共用一个UV数据。
4:1:1,水平方向,每四个点共用一个UV数据,垂直方向YUV数量相同。

举例来说,对于4x4的图片,在YUV420下,有16个Y值,4个U值和4个V值

2.2 采样与三分量的对应关系

YUV 4:4:4 采样,每一个 Y对应一组UV分量。
YUV 4:2:2 采样,每两个 Y共用一组UV分量。
YUV 4:2:0 采样,每四个 Y共用一组UV分量。


3. p/sp

3.1 打包(packed)格式

将YUV分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素
打包格式:像素YUV值打包为:YUV,YUV,YUV,…

3.2 平面(planar)格式

使用三个数组分开存放YUV三个分量,就像是一个三维平面一样.
平面格式:将所有像素的Y值以及U和V放在一起,例如:YYYYYY … UUUUUUU … VVVVVV …

4. 举个栗子

YUV420根据颜色数据的存储顺序不同,又分为了多种不同的格式

如YUV420Planar、YUV420PackedPlanar、YUV420SemiPlanar和YUV420PackedSemiPlanar;这些格式实际存储的信息还是完全一致的。
举例来说,对于4x4的图片,在YUV420下,任何格式都有16个Y值,4个U值和4个V值;不同格式只是Y、U和V的排列顺序变化。

4.1、YUV444

(1)YUV444p:YYYYYYYY VVVVVVVV UUUUUUUU

4.2、YUV422

(1)YUV422p:YYYYYYYY VVVV UUUU
(2)YUVY:YCbYCr YCbYCr YCbYCr
(3)UYVY:CbYCrY CbYCrY CbYCrY

4.3、YUV420

(1)YUV420p:
YV12:YYYYYYYY VV UU
I420:YYYYYYYY UU VV
(2)YUV420sp:
NV12:YYYYYYYY UVUV
NV21:YYYYYYYY VUVU


参考链接

https://www.jianshu.com/p/3e44c2262775
https://www.ydaobo.com/wenzhang/5179.html
https://zhuanlan.zhihu.com/p/61747783
https://www.bgteach.com/article/134
https://www.cnblogs.com/tid-think/p/10616789.html

你可能感兴趣的:(搭建平台-软件安装)