首页 >> 大全

音视频入门基础——笔记

2023-11-18 大全 26 作者:考证青年

目录

流媒体学习框架图

视频播放的原理

YUV和RGB

RGB 色彩空间

存储模式

存储模式

存储模式

YUV色彩空间

H264简介

流媒体学习框架图

音视频播放的原理

解协议->解封装->解码->音视频同步->播放。如果是本地播放,没有解协议这一步骤。

解协议,就是将流媒体协议的数据,解析为标准的相应的封装格式数据。视音频在网络上传播的时候,常常采用各种流媒体协议,例如HTTP,RTMP,或是MMS等等。解协议的过程中会去除掉信令数据而只保留视音频数据。例如,采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据。

解封装,就是将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。

解码,就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。音频的压缩编码标准包含AAC,MP3,AC-3等等,视频的压缩编码标准则包含H.264,MPEG2,VC-1等等。解码是整个系统中最重要也是最复杂的一个环节。通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如,RGB等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据。

视音频同步,就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来。

流媒体协议是服务器与客户端之间通信遵循的规定。

音视频播放其实是一层层的去除协议、封装,再解码,最后得到原始数据。

YUV和RGB

图像编码格式_yh的博客-CSDN博客_图片编码格式

色彩空间与像素格式 - 叶余 - 博客园

RGB 色彩空间

颜色是不同波长的光对人眼刺激产生的色彩感觉。色彩空间(Color Space)是颜色的数学表示,根据不同的表示方法分为不同的色彩模型。最常用的色彩模型有三类:RGB(用于计算机图形学), YUV(用于视频系统), CMYK(用于彩色印刷)。

彩色三要素

光的颜色取决于客观和主观两方面的因素。客观因素是光的功率波谱分布,它影响光源的颜色。主观因素是人眼视频特性,它影响人眼对色彩的感觉。 彩色三要素指亮度()、色调(Hue)和饱和度(),任一色彩都可以用这三个基本参量来表示:

亮度表示颜色明暗的程度,是光作用于人眼时引起的明亮程度的感觉。

色调是指颜色的类别,例如红色、蓝色、绿色指的就是色调。

饱和度指颜色的深浅程度,也称彩度。例如深绿、浅绿指的就是绿色这个色调的饱和度,饱和度越高,颜色越深。

人眼看到的物体颜色,是光源照射到物体,物体吸收(还有透射)部分颜色的光,然后从物体表面反射的光线进入人眼后人眼得到的色彩感觉。

RGB颜色空间主要应用于计算机显示器、电视机、舞台灯光等,都具有发光特性。彩色像素在显示器屏幕上不会重叠,但足够的距离时,光线从像素扩散到视网膜上会重叠,人眼会感觉到重叠后的颜色效果。

RGB 色彩空间中每个像素点包含了 R、G、B 三种分量。RGB 存储模式也有 和 两类,这两种模式的区分在第 3 节中讲述。RGB 色彩空间及存储模式比较简单,我们挑几个有代表性的存储模式来简述一下:

存储模式

使用 16b(bit)表示一个像素,5b 用于 R,6b 用于 G,5b 用于 B。如下:

[ R G B ]  [ R G B ]  [ R G B ]  [ R G B ]
[ R G B ]  [ R G B ]  [ R G B ]  [ R G B ]

以上只是示意图,实际 R、G、B 顺序可能与图中不同。

存储模式

使用 24 位来表示一个像素,每个分量都用 8 位表示。其示意图跟 示意图类似。

存储模式

使用 32 位来表示一个像素,R、G、B 都用 8 位表示,另外 A(Alpha)表示透明度,也用 8 位表示。

[ A R G B ]  [ A R G B ]  [ A R G B ]  [ A R G B ]
[ A R G B ]  [ A R G B ]  [ A R G B ]  [ A R G B ]

以上只是示意图,实际 A、R、G、B 顺序可能与图中不同。

YUV色彩空间

YUV颜色空间是PAL、NTSC、SCEAM三大视频标准使用的颜色空间,主要应用于视频系统。YUV色彩空间中,Y表示亮度信息,U和V表示色度(色调和饱和度)信息。使用YUV色彩空间,后期出现的彩色电视系统和早期的黑白电视系统兼容,黑白电视机可以只处理彩色电信信号中的Y分量,而彩色电视机接收黑白电视信号并显示也没有任何问题。

YUV颜色空间和RGB颜色空间可以根据公式相互转换。

◆ RGB 转 YUV:

Y = 0.299R + 0.587G + 0.114B

U= -0.147R - 0.289G + 0.436B

V= 0.615R - 0.515G - 0.100B

◆ YUV 转 RGB:

R = Y + 1.14V

G = Y - 0.39U - 0.58V

B = Y + 2.03U

经常提到的还有YPbPr和YCbCr。YPbPr指模拟分量信号(或接口),P()表示并行,b下标表示蓝,r下标表示红。YCbCr指的是数字分量信号(或接口),C()表示色度。YCbCr还可指色彩空间,YCbCr色彩空间是YUV色彩空间的缩放和偏移版本。

YUV, YCbCr, YPbPr所指涉的范围,常有混淆或重叠的情况。从历史的演变来说,其中YUV和Y'UV通常用来编码电视的模拟信号,而YCbCr则是用来描述数字的视频信号,适合影片与图片压缩以及传输,例如MPEG、JPEG。 但在现今,YUV通常已经在计算机系统上广泛使用。

YUV存储格式分成三大类:

:将Y、U、V分量交织存放在一起,和RGB的存放方式类似。内存中排列形式类似:...。在具体的存储模式命名中,格式不带后缀P。

:将Y、U、V的三个分量分别存放在不同的矩阵(平面)中。内存中排列形式类似:...,...,...。在具体的存储模式命名中,格式带后缀P。

semi-:将Y、U、V三个分量放在两个矩阵(平面)中。Y占用一个平面,UV共用一个平面。内存中排列形式类似:...,...。在具体的存储模式命名中,semi-格式带后缀SP。

YUV图像存储模式与采样方式密切相关。主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0。这些采样方式,不压缩Y分量,对UV分量的压缩程度不同,这是由人眼的特性决定的,人眼对亮度Y更敏感,对色度UV没有那么敏感,压缩UV分量可以降低数据量,但并不会人眼主观感觉造成太大影响。

采样方式YUV4:4:4

相邻的4个像素里有4个Y、4个U、4个V。每1个Y使用1组UV分量。如下(每个[]为一个像素点):

[ Y U V ] [ Y U V ] [ Y U V ] [ Y U V ]

[ Y U V ] [ Y U V ] [ Y U V ] [ Y U V ]

[ Y U V ] [ Y U V ] [ Y U V ] [ Y U V ]

[ Y U V ] [ Y U V ] [ Y U V ] [ Y U V ]

在这种采样方式下,一个像素点包含的完整的信息。

采样方式YUV4:2:2

相邻的4个像素里有4个Y、2个U、2个V。每2个Y共用1组UV分量。平均算来,一个像素占用的数据宽度为16b,其中Y占8b,U占4b,V占4b。后面存储模式命名中的数字16指的就是16b。

[ Y U ] [ Y V ] [ Y U ] [ Y V ]

[ Y V ] [ Y U ] [ Y V ] [ Y U ]

[ Y U ] [ Y V ] [ Y U ] [ Y V ]

[ Y V ] [ Y U ] [ Y V ] [ Y U ]

在这种采样方式下,还原出一个像素点,需要相邻的两个像素点数据,如下:

[ Y U ] [ Y V ]

采样方式YUV4:2:0

相邻的4个像素里有4个Y、2个U、0个V,或4个Y、2个V,0个U。每4个Y共用1组UV分量。平均算来,一个像素占用的数据宽度为12b,其中Y占8b,U占2b,V占2b。后面存储模式命名中的数字12指的就是12b。

[ Y U ] [ Y ] [ Y U ] [ Y ]

[ Y V ] [ Y ] [ Y V ] [ Y ]

[ Y U ] [ Y ] [ Y U ] [ Y ]

[ Y V ] [ Y ] [ Y V ] [ Y ]

在这种采样方式下,还原出一个像素点,需要相邻的四个像素点数据,如下:

[ Y U ] [ Y ]

[ Y V ] [ Y ]

在同一采样模式下,根据分量元素排列顺序的不同,又分为不同的存储模式

◆ 各种存储格式如下:

视频笔记软件哪个好_笔记视频怎么配音乐_

◆ 各种存储格式如下:

针对上图中的NV12、NV21、NV16、NV61说明:

◆NV:NV系列都属于semi-plane系列,“12”、“16”代表先U后V,“21”、“61”代表先V后U

◆ 12、16:代表一个像素占的位数

H264简介

1.什么是H.264

H.264是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。

2.H.264的数据格式是怎样的?

H.264由视频编码层(VCL)和网络适配层(NAL)组成。

◆ VCL:H264编码/压缩的核心,主要负责将视频数据编码/压缩,再切分。

◆ NALU = NALU + NALU

3.VCL是如何管理H264视频数据?

◆压缩:预测(帧内预测和帧间预测)-> DCT变化和量化 -> 比特流编码;

◆切分数据,主要为了第三步。"切片(slice)"、“宏块()"是在VCL中的概念,一方面提高编码效率和降低误码率、另一方面提高网络传输的灵活性。

◆包装成『NAL』。

◆『VCL』最后会被包装成『NAL』

4.NAL头的数据结构体

◆ F():1 位,初始为0。当网络识别此单元存在比特错误时,可将其设为 1,以便接收方丢掉该单元

◆ NRI():2 位,用来指示该NALU 的重要性等级。值越大,表示当前NALU越重要。具体大于0 时取何值,没有明确规定

◆ Type():5 位,指出NALU 的类型,如下所示:

5.H.264码流结构

◆ H.264 = + NALU(: or )

◆ 每个NAL前有一个起始码 0x00 00 01(或者0x00 00 00 01),解码器检测每个起始码,作为一个NAL的起始标识,当检测到下一个起始码时,当前NAL结束。

◆ 同时H.264规定,当检测到时,也可以表征当前NAL的结束。那么NAL中数据出现或时怎么办?H.264引入了防止竞争机制,如果编码器检测到NAL数据存在或时,编码器会在最后个字节前插入一个新的字节0x03,这样:

->

->

->

->

6.I帧、P帧和B帧

提到H.264,不得不提I帧、P帧、B帧、IDR帧、GOP。

◆ I帧(Intra-coded ,帧内编码图像帧),表示关键帧,采用类似JPEG压缩的DCT( ,离散余弦变换)压缩技术,可达1/6压缩比而无明显压缩痕迹;

◆ P帧(-coded ,前向预测编码图像帧),表示的是跟之前的一个关键帧或P帧的差别,P帧是参考帧,它可能造成解码错误的扩散;

◆ B帧( ,双向预测编码图像帧),本帧与前后帧(I或P帧)的差别,B帧压缩率高,但解码耗费CPU;

◆ IDR帧( ,即时解码刷新):首个I帧,是立刻刷新,使错误不致传播,IDR导致DPB(参考帧列表——这是关键所在)清空;在IDR帧之后的所有帧都不能引用任何IDR帧之前的帧的内容;IDR具有随机访问的能力,播放器可以从一个IDR帧播放。

◆ GOP(Group Of ,图像序列):两个I帧之间是一个图像序列,一个GOP包含一个I帧

7.解码时间戳和显示时间戳

当然,H.264中还有两个重要的概念:DTS和PTS

◆ DTS( Time Stamp,解码时间戳解):读入内存中的比特流在什么时候开始送入解码器中进行解码

◆ PTS( Time Stamp,显示时间戳):解码后的视频帧什么时候被显示出来

音视频入门系列-图像篇(H.264)

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了