音视频编码格式-学习笔记

​​​​​​​​​​
在这里插入图片描述

像素层

RGB24

每个像素占24个比特,由红绿蓝三原色构成,每个颜色占8个比特
在这里插入图片描述

YUV

YUV含义

相对于 RGB 颜色空间,设计 YUV 的目的就是为了编码、传输的方便,减少带宽占用和信息出错。

Y: 明亮度(灰度值)
UV: UV分量,描述影像色彩及饱和度,用于指定像素的颜色。
色度通道(UV)的采样率可以低于亮度通道(Y),而不会显着降低感知质量。

根据采样率的不同,有如下YUV
YUV 4:4:4 : 无损的,每一个像素点都由YUV构成。
YUV 4:2:2 : 有损的,减少1/2的UV分量, 每2个Y分量使用1个UV分量。
YUV 4:2:0 : 有损的,减少3/4的UV分量, 每4个Y分量使用1个UV分量。
在这里插入图片描述

YUV存储格式

YUV的存储格式分为打包格式(packet formats)和平面格式(planar formats)。

packet : Y,U和V组件存储在单个数组中,YUV三个分量是顺序交错存储。 像素被组织成宏像素组,其布局取决于采样格式。
如YUVYUV、UYVY等

planar: Y,U和V分量存储在三个不同的平面(数组)中。YUV三个分量被分开存储在三个不同的数组中。

编解码层

H264

H.264原始码流(又称为“裸流”)是由一个一个的NALU组成的。
NALU是H.264码流解码的基本单元,里面存储着要传输的信息,每个NALU相当于一个信息碎片,按照相应的标准规则(视频解码)可以将碎片还原为完整的信息(细节暂时不管╮(╯▽╰)╭,先这么理解)。
在这里插入图片描述
其中每个NALU之间通过startcode(起始码)进行分隔,起始码分成两种:0x000001(3Byte)或者0x00000001(4Byte)。
如果NALU对应的Slice为一帧的开始就用0x00000001,否则就用0x000001。
H.264码流解析的步骤就是首先从码流中搜索0x000001和0x00000001,分离出NALU;然后再分析NALU的各个字段。

H264比特流 = Start_Code_Prefix + NALU + Start_Code_Prefix + NALU + …

封装格式层

MP4

FLV

FLV封装格式是由一个FLV Header文件头和一个一个的Tag组成的。Tag中包含了音频数据以及视频数据。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值