音视频基础+ffmpeg原理(视频基础知识)

图像的基本概念:

 

视频:

        1、由一组图像组成

        2、为了传输/占用更小的空间而被压缩

        3、最终在显示设备上展示(未被压缩)

图像:

        像素:就是一张图片里图片面的一个个小格子

        RGB:每一个小格子都是由RGB展示出来的

        分辨率:就是一张图片,横向、纵向有多少个小格子

每个像素的位深:

        就是每一个像素用多少位来表示有:

        RGB888(24位=3x8)

        RGBA(32位=4x8),A表示alpha透明度

分辨率:

        1、X轴的像素个数 x Y轴的像素个数

        2、常见的宽高比 16:9/4:3

        3、360P/720/1K/2K

帧率:

        1、每秒钟采集/播放图像的个数

        2、动画的帧率是25帧/s

        3、常见的帧率:15帧/s,30帧/s,60帧/s

未编码视频的RGB码流

        RGB码流=分辨率(宽x高)x3(RGB,byte)x帧率(30帧)

        例如:1280x720x3x25 = 69120000 约69M

YUV:

        YUV(也称YCbCr):Y表示明亮度,UV的作用是描述影像色彩及饱和度

        主要的采样格式有:YUV420(用的最多)、YUV422、YUV444

RGB与YUV关系:

        RGB用于屏幕图像的展示

        YUV用于采集与编码

        RGB转YUV:

                Y = 0.299*R + 0.587*G + 0.114*B

                U = -0.147*R - 0.289*G + 0.436*B = 0.492*(B - Y)

                V = 0.615*R - 0.515*G - 0.100*B = 0..877*(R - Y)

        YUV转RGB:

                R = Y + 1.140*V

                G = Y - 0.394*U - 0.581*V

                B = Y + 2.032*U

YUV420:

        4:2:0并不意味着只有Y、Cb两个分量,而没有Cr分量。它实际指的是对每行扫描线来说,只有一种色度分量,它以2:1的抽样率存储。相邻的扫描行存储不同的色度分量,也就是说,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0以此类推。

以图的形式展示:

音视频基础+ffmpeg原理(视频基础知识)_第1张图片

 YUV4:4:4每一格YUV

音视频基础+ffmpeg原理(视频基础知识)_第2张图片

YUV4: 2:2就是每个一列只有一个Y

音视频基础+ffmpeg原理(视频基础知识)_第3张图片

 数据量的计算:

        YUV = Y *1.5

        YUV = RGB / 2

YUV420存储格式:

音视频基础+ffmpeg原理(视频基础知识)_第4张图片

 YUV存储格式:

        planar(平面):

                I420: YYYYYYYY UU VV =>YUV420P

                YV12 YYYYYYYY VV UU =>YUV420P

        packed(打包):

                NV12 : YYYYYYYY UV UV =>YUV420SP

               NV21: YYYYYYYY VU VU =>YUV420SP

未编码视频的YUV码流:

        RGB码流 = 分辨率(宽 x 高)x 3 x 帧率

        YUV码流= 分辨率(宽 x 高)x 1.5 x 帧率

相关的参考资料:https://en.wikipedia.org/wiki/YUV

你可能感兴趣的:(音视频)