视频相关学习笔记

YUV

和rgb一样是一种表示色彩的格式,Y表示亮度,UV表示色度(U是蓝色投影,V是红色投影),只有Y就是黑白的,所以这个格式的视频图片可以兼容黑白电视,所以彩色电视使用的都是YUV

存储方式

planar

先存储Y之后是U最后存V
packed

YUV依次存放

采样方式

4:4:4

8+8+8 = 24bits = 3bytes
4:2:2 (两个Y用一个UV)

8+4+4 = 16bits = 2bytes
4:2:0 (UV交替采样)

8+2+2 = 12bits = 1.5bytes

采样介绍

网上找到一张图,这个就很清楚的解释了什么是采样,如何采样。

这里也能看出YUV相对于RGB的优势,RGB属于4:4:4一个像素3字节,而YUV可以压缩到1.5字节

参考:
对YUV4:2:0认识理解
YUV图像基础知识

H264

一种视频编码格式

帧类别

介绍不同帧之前首先要知道不是所有的帧都是完整的,毕竟如果每一帧都是关键帧,一个1920 * 1080的YUV4:2:0的图片就要1920 * 1080 * 15bytes的大小,有3MB左右,这个量级看一个300帧一个G就快没有了,如果按1s30帧来看,只需10s你就会花费一个G的流量,想也知道不太现实,所以不是每一帧都是关键的,因此分出了IPB三种帧。
GOP

既然知道有三种帧,那么肯定需要按一定规律放置,按一组一组分开,那么这个组就是GOP。这个GOP是按I帧分开的,所以每个GOP中只有一个I帧
I帧

关键帧,最大,最完整的一帧
P帧

需要根据前一个I帧或P帧计算所得,数据并不完整,数据量比I帧少,视频中大多数都是P帧。
B帧

需要根据前一个和后一个I帧或P帧计算所得,数据最不完整,是最小的帧。

图像运动越快GOP越短,运动越慢GOP越大

应用

直播环境

直播环境下,为了避免首次打开直播花屏的情况,一般采用缓存I帧的办法(但是缓存设置过大会导致延迟高的情况)

直播流禁止B帧,因为B帧需要前后的帧才能推算出来

相关推荐
垂杨有暮鸦⊙_⊙几秒前
阅读《先进引信技术的发展与展望》识别和控制部分_笔记
笔记·学习
特种加菲猫13 分钟前
初阶数据结构之栈的实现
开发语言·数据结构·笔记
LNTON羚通13 分钟前
算法定制LiteAIServer视频智能分析平台工业排污检测算法智控环保监管
算法·目标检测·音视频·监控·视频监控
明明真系叻41 分钟前
第二十二周机器学习笔记:动手深度学习之——线性代数
笔记·深度学习·线性代数·机器学习·1024程序员节
大筒木老辈子1 小时前
Linux笔记---进程:初识进程
linux·服务器·笔记
埋头编程~1 小时前
【C++】踏上C++学习之旅(十):深入“类和对象“世界,掌握编程黄金法则(五)(最终篇,内含初始化列表、静态成员、友元以及内部类等等)
java·c++·学习
2401_879103681 小时前
24.11.23 Ajax
笔记·ajax
EasyNTS1 小时前
无插件直播流媒体音视频播放器EasyPlayer.js播放器的g711系列的音频,听起来为什么都是杂音
音视频·g711
世伟爱吗喽2 小时前
NUXT3学习日记四(路由中间件、导航守卫)
学习
飞凌嵌入式3 小时前
飞凌嵌入式旗下教育品牌ElfBoard与西安科技大学共建「科教融合基地」
嵌入式硬件·学习·嵌入式·飞凌嵌入式