设为首页 收藏本站
开启辅助访问 快捷导航
菜单
猿人部落 主页 资讯 查看内容

音视频知识基础

2019-7-26 18:07 发布者: superadmin 评论 0 查看 1070
一:音频 音频压缩技能: 1:消除冗余数据 2: 哈夫曼无损编码 消除冗余数据(生理声学模子) 音频冗余信息包罗:

一:音频

在这里插入图片形貌
音频压缩技能:

1:消除冗余数据
2: 哈夫曼无损编码

消除冗余数据(生理声学模子)

音频冗余信息包罗:

  1. 人耳听觉范围之外的音频信号
  2. 被掩藏掉的音频信号
掩藏效应:
  1. 频域掩藏
    下面的纵轴是分贝数,横轴是声音的频率,线 Threshold in Quiet 之下的部门,表现当前频率下不可闻声的声音的范围。
    大音量如Masker会产生掩藏效应,这里用线 Masking Threhold表现,掩藏线之下的部门都是无法闻声的。
    在这里插入图片形貌
    关于掩藏效应,可以想象这么一个场景,两个人打骂,假如是两女生,那么声音小的谁人肯定会被声音大的谁人的声音掩藏掉,但是假如是一男一女,男声不轻易被女声掩藏,这是由于两者的音频差异较大,掩藏效应不显着。

  2. 时域掩藏
    在这里插入图片形貌
    如上图,在一段连续时间内,小的声音会被大的声音掩藏掉,大的声音在发声之前,约莫有50ms的掩藏范围,发声之后,约莫有200ms的掩藏范围。

音频编码器

常见的音频编码器:

  • OPUS(口/耳模子)
  • AAC(娱乐直播多用,rtmp协议支持)
  • Vorbis:
  • Speex(包罗覆信消除,降噪等模块)
  • iLBC:
  • AMR:
  • G.711:固话多利用

一样平常来说,性能:OPUS > AAC > Vorbis
在这里插入图片形貌

AAC:

如今利用最广的音视频解码器,一方面由于音质好,一方面也由于cdn所利用的rtmp协议支持AAC,MPEG-4标准出现后,AAC到场了SBR技能和PS技能,编码斲丧进一步低沉,徐徐成为了主流。

如今常用的规格有:
AAC LC:低复杂度,码流128k
AAC HE V1:AAC LC + SBR ,此中SBR叫做分频复用,将音频分为低频和高频,分别接纳,总体接纳频率较原先低。
AAC HE V2: AAC LC + SBR + PS,由于声音的各个声道之间存在干系性,PS技能只生存一个声道,其他声道只生存参数,后续解码的过程中,利用生存的声道加参数规复其他声道。在这里插入图片形貌

AAC的格式:
ADIF:这种格式只能重新开始解码,常用在磁盘文件中。
ADTS:这种格式每一帧都有一个同步字,可以在音频流的任何位置开始解码,它似于数据流格式。

AAC编码库Libfdk_AAC > FFmpeg AAC > libbfaac > libvo_aacenc

二:视频

H264根本概念:

1: I P B帧
  1. I帧:关键帧,接纳帧内压缩技能。
  2. P帧:向前参考帧,压缩时只参考前一个帧,属于帧间压缩技能。
  3. B帧:双向参考帧,压缩时既参考前一帧也参考后一帧,帧间压缩技能。

假如我们想让压缩后的视频尽大概的小,那么就应该多食用B帧,但是在及时互动直播中,由于对视频的及时性要求较高,而B帧必须参考背面的帧,会低沉及时性,因此及时互动直播中,不利用B帧。

2:GOF

前一个I帧与后一个I帧之间的部门:
在这里插入图片形貌
每一组帧之前,起首会收到 SPS 和 PPS
SPS(Sequence Parameter Set):序列参数集,存放帧数、参考帧数目、解码图像尺寸、帧场编码模式选标识等。
PPS(Picture Parameter Set):图像参数集,存放熵编码模式选择标识、片组数目、初始量化参数和去方块滤波系数调解标识等。
那么视频花屏、卡顿是为什么呢?

花屏:假如GOP分组中的P帧丢失会造成解码端的图像发生错误,因此会造成花屏。
卡顿:因此,当P帧丢失,我们就将这一 GOF 的数据全部扬弃,因此就会造成卡顿。

都有哪些视频编码器呢?
x264、x265(由于占用cpu比力高,直播用的少)、openH264、vp8/vp9

3: H264压缩技能

帧内推测压缩:管理的是空域数据冗余题目-此中空域指的图中人眼不敏感的冗余数据。
帧间推测压缩:管理的是时域数据冗余题目。
整数离散余弦变动(DCT):将空间上的干系性变为频域上无关的数据然后举行量化。
CABAC压缩。
**宏块:**将每一帧分别为 16 * 16 的小块,一块一块依次压缩,而不是对整张图片一起压缩。此中一个宏块又可以分为 1616 1618 816 88 等巨细不等的块。一样平常来说,活动多,细节多的部门,分别为小块来编码,大的平展无厘革的,分别为大块,举个例子;
在这里插入图片形貌
具体h264的压缩过程比力复杂,后续看理论底子的时间再看,这里大抵讲一下H264的结构与码流。

H264的结构:
在这里插入图片形貌
H264编码分层:
NAL层(Network Abstraction Layer):视频数据网络抽象层
VCL层(Video Coding Layer):视频数据编码层

NALU、EBSP、RBSP、SODB:
此中SODB是原始的编码数据
SODB +

VCL层产生比特流 SODB,它的长度不肯定是8的倍数,因此须要 RBSP 算法在SODB末了一位补1,不按字节对齐则补0。
EBSP:遇到两个连续的 0x00就增长一个0x03。
NALU:NAL Header(1B)+ EBSP

H264部门还需过细看看,未完待续。。。



路过

雷人

握手

鲜花

鸡蛋
收藏 邀请
上一篇:C语言电池助手下一篇:如何开发一个音视频播放器(ffmpeg3.2+sdl2.0)

相关阅读

一周热门

头条攻略!

日排行榜

相关分类