JoJo的个人博客

记录精彩的程序人生

目录
音视频系统入门6之视频基础知识
/    

音视频系统入门6之视频基础知识

图像基本概念

图像

  • 像素
  • RGB
  • 分辨率

七彩色

  • 红+蓝=粉色
  • 绿+蓝=青色
  • 红+绿=黄色
  • 红+绿+蓝=白色

每个像素的位深

  • RGB888(24位)
  • RGBA(32位)

屏幕显示器

屏幕显示器

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

RGB的色彩问题

  • RGB与BGR
  • BMP使用的是BGR格式,需要进行转换

屏幕指标

  • PPI(pixels per inch)
  • DPI(Dots per inch)
  • PPI > 300 就属于视网膜级别

码流的计算

分辨率

  • X轴的像素个数 x Y轴的像素个数
  • 常见的宽高比16:9 / 4:3
  • 360p/720p/1k/2k

帧率

  • 每秒钟采集/播放图像的个数
  • 动画的帧率是25帧/s
  • 常见的帧率:15帧/s,30帧/s,60帧/s

未编码视频的RGB码流

RGB码流=分辨率(宽x高)x3(Byte)x帧率(25帧)

例如 12807203*25 = 69120000 约69M

图像的显示

  • 图像大小等于显示区域大小
  • 图像小于显示区域(拉伸/留白)
  • 图像大于显示区域(缩小/截断)

android端的播放器有ijkplayer,grafika等

YUV

  • YUV(也称YCbCr):Y表示明亮度,UV的作用是描述影像色彩及饱和度
  • 主要的采样格式有YUV4:2:0、YUV4:2:2和YUV4:4:4

RGB与YUV的关系

  • RGB用于屏幕图像的展示
  • YUV用于采集与编码

RGB转YUV

Y = 0.299R+0.587G+0.114B

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

V = 0.615R - 0.515G - 0.100B = 0.877(R-Y)

YUV转RGB

R = Y + 1.140V

G = Y - 0.394U - 0.581V

B = Y + 2.032U

YUV常见格式

  • YUV4:4:4
  • YUV4:2:2
  • YUV4:2:0

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

以下图片展示,以每四个一组可以看出比例

YUV数据量的计算

  • YUV = Y*1.5
  • YUV = RGB/2

YUV的存储

  • planner(平面)

    I420:YYYYYYYY UU VV => YUV420P

    YV12: YYYYYYYY VV UU => YUV420p (ios)

  • Packed(打包)

    NV12: YYYYYYYY UVUV => YUV420SP

    NV21: YYYYYYYY VUVU => YUV420SP (android)

未编码视频的YUV码流

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

参考资料

https://en.wikipedia.org/wiki/YUV

实战

生成YUV

ffmpeg -i qq.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv

-an 没有音频
-c:v 视频的编码器
-pix_fmt yuv的输出格式

播放YUV

ffplay -pix_fmt yuv420p -s 1134x624 out.yuv
-pix_fmt 默认为yuv420p,可以不用设置
-s 分辨率,必须和压缩前的分辨率相同

播放Y分量

ffplay -s 1134x624 -vf extractplanes='y' out.yuv

提取各分量

ffmpeg -i qq.mp4 -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.yuv -map '[u]' u.yuv -map '[v]' v.yuv

//播放
ffplay -s 1134x624 -pixel_format gray y.yuv

标题:音视频系统入门6之视频基础知识
作者:SunnySky
地址:https://www.tianyang.pub/articles/2020/11/17/1605610482699.html

评论