音视频入门知识学习

这篇具有很好参考价值的文章主要介绍了音视频入门知识学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

视频相关

1920x1080的屏幕,32位,30帧的fps。一秒钟需要1920x1080x32x30字节,所以需要压缩

视频压缩

压缩的核心思想就是去除冗余信息

空间冗余

空间冗余 == 相邻像素重复:图像内部相邻像素之间存在较强的相关性多造成的冗余

比如一张图片中间的一个位置大小20x20,它的表现肉眼看起来其实是一样的,这种直接取一小块+空间位置代表来描述就行,节省了内存。
看起来非常高端:这就是算法工程师的牛逼之处。

时间冗余

时间冗余 == 帧之间差值:视频图像序列中的不同帧之间的相关性所造成的冗余。
这个最好理解:当前帧图像跟上一帧图像之间只是改变了很小的东西,那么我们只要把改变的东西和位置传递过去,再根据上一帧进行对比处理就可以了。

视觉冗余

视觉冗余 == 人类不敏感的颜色:深红色和浅红色OK,但是红色偏一点橘红色,你分得清楚吗?
视觉冗余:是指人眼不能感知或不铭感的那部分图像信息。
色盲:人类对色度不敏感
亮盲:人类对亮度敏感

信息熵冗余

信息熵冗余 == 熵编码-哈夫曼算法
也称编程冗余,人们用于表达某一信息序所需要的比特数总比理论上标识改信息所需要的最少比特数要大,它们之间的差距就是信息熵冗余,或称编码冗余。

知识冗余

知识冗余 == 人类(头 身体 腿),汽车,房子
指在有些图像中还包含与某些验证知识有关的信息
有些东西是不需要记录的:比如人, 眼睛下面是鼻子再下面的嘴巴

I帧 P帧 B帧 压缩思路

I帧

I帧:帧内编码帧,关键帧,I帧可以看做一个图形经过压缩之后的产物,可以单独解码出一个完整的图形。(压缩率最低)

P帧

P帧:前后预测编码帧,记录了本帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面加上本帧定义的差别,最终生成画面。

B帧

B帧:双向预测编码帧,记录了本帧与前后帧的差别,解码需要参考前面一个I帧或P帧,同时也需要后面的P帧才能解码一张完整的图像。(参考前后的预测得到的,压缩率最高,但是耗时。)
音视频入门知识学习,音视频,学习
B帧,拥有I帧和后面P帧的所有东西,但是它自己只记住了中间的圆,想要完全绘制出来必须参考前后的帧。

H.264

H.264 和 MPEG AVC 是同一个东西,不同组织的叫法而已。
H.265 是一种更高效率的编码格式,在H.264的基础上加入了更多的算法,压缩率更高,涉及到一些专利问题和推广问题,目前还是没流行起来。

H.264 分层结构(VCL 与 NAL)

VCL就是被压缩编码后的原始数据,在VCL数据封装到NAL单元中之后,才可以用于传输。

Java开发中:数据->javaBean -> json(序列化或者反序列化)-> http -> TCL
音视频开发中:图片(视频)-> VCL(进行编码压缩) -> NAL(打包) -> http -> TCL

VCL

vcl :video coding layer,视频编码层 : 负责高效的视频内容标识,VCL数据即编码处理的输出,它表示被压缩编码后的数据序列。

NAL

NAL(Network Abstraction Layer,网络提取层):负责以网络所要求的恰当的方式数据进行打包和传送,是传输层。不管是本地播放还是网络播放,都要通过这一层来传输。

NAL(片(宏块))

一帧图片经过H.264编码器之后,NAL单元就是装在着这些片(被编码为一个或多个片slice),
每片包含整数个宏块(至少一个宏块,最多包含整个图像宏块)。
音视频入门知识学习,音视频,学习
一般H.264编码器的默认输出为:起始码+NALU(Nal单元)。起始码为:0x00000001或者0x000001

一个NALU(PPS, I帧,B帧,P帧)
原始数据经过VCL编码之后再经过NAL打包就变成一个个NALU单元,所有数据流都要经过NAL打包

startcode Nal头信息 aa = 起始码 +RBSP == NALU
排列形式为:aaRBSP aaRBSP aaRBSP aaRBSP

为什么起始码是上面写的这两种?
0x00000001 代表一个NALU里面有好多片
0x000001 代表一个NALU里面一个片就可以搞定

每个NALU 包含起始码与1个字节的Nal Header 与 若干整数字节的负荷数据EBSP构成。

Nal Header:能区分类型,I 、B、P、PPS等数据

NAL类型查表:音视频入门知识学习,音视频,学习
音视频入门知识学习,音视频,学习
使用软件打开上面的h264文件会发现:
音视频入门知识学习,音视频,学习
从开始位置开始:
起始码:有多个片00 00 00 01 Nal Head:67
SPS 序列参数集(记录有多少I帧、B帧、P帧,帧是如何排列的) 7
0x67 十六进制的写法 67
二进制:0 11 00111
第一组:0代表这个帧可以用,1代表这个帧不可以用
第二组:11代表这个帧很重要
第三组:00111 —> 16进制 7 查表 SPS

后面就是数据了,直到下一个起始码开始就是下一个NALU

pps 图像参数集(图像宽高信息等)8
00 00 00 01 68 ----> 2进制01101000----> 取低五位 00001000 —> 十六进制 0x08

SEI补充信息单元(可以记录坐标信息,人员信息,可以理解是自定义的信息)
00 00 00 01 06

I帧来了
00 00 01 65

不太重要的P帧来了 第二组是:01
00 00 01 45

还有这种:第二组是11
重要的P帧
00 00 00 01 61

B帧
00 00 00 01 01

真正开发中:一般分析:SPS,PPS,I帧

PTS与DTS

DTS表示解码时间戳,在什么时候解码这一帧的数据

PTS表示显示时间戳,在什么时候显示这一帧

在没有B帧的情况下,DTS和PTS的输出顺序是一样的

因为B帧打乱了解码和显示的顺序,所以一旦存在B帧,PTS和DTS就会不同。

音视频入门知识学习,音视频,学习
解码顺序和播放顺序不是相同的,I帧之间分为一组,叫GOP。

为什么要打乱顺序呢,比如有1234567帧,扫描发现1352765这样排列才是最合适的,因为他们之间的画面关联性最高,压缩率更高,相同的块更多,可以省下更多的描述,所以就这样排列了,但是播放顺序就不是这个编码解码顺序。
要知道一帧的视频分为很多块,有16x16,8x8,等等区间,H.264为什么效率更高,因为它提供了更多种类的块的描述,更加精细化,简单说就是算法更好,压缩率更高。
H.264结构中,一个视频图像编码后的数据叫做一帧,一帧由一个片(slice)或多个片组成,一个片由一个或多个宏块(MB)组成,一个宏块由16x16的YUV数据组成(还有子块),宏块作为H.264编码的基本单位。

音频概念

采样和采样频率

⼀秒钟内采样的次数称为采样频率。采样频率越⾼,越接近原始信号,但是也加⼤了运算处理的复杂度。根据 Nyquist采样定理,要想重建原始信号,采样频率必须⼤于信号中最⾼频率的两倍。⼈能感受到的频率范围为 20HZ–20kHZ, ⼀般⾳乐的采样频率为44.1kHZ, 更⾼的可以是48kHZ和96kHZ,不过⼀般⼈⽤⽿听感觉不出差别 了。语⾳主要是以沟通为主,不需要像⾳乐那样清晰,⽤16k采样的语⾳就称为⾼清语⾳了。现在主流的语⾳采样 频率为16kHz。

采样位数

数字信号是⽤0和1来表示的。采样位数就是采样值⽤多少位0和1来表示,也叫采样精度,⽤的位数越多就越接近 真实声⾳。如⽤8位表示,采样值取值范围就是-128–127,如⽤16位表示,采样值取值范围就是-32768–32767。 现在⼀般都⽤16位采样位数。

声道

声道是指处理的声⾳是单声道还是⽴体声。Android⽀持双声道⽴体声和单声道。CHANNEL_IN_MONO单声道, CHANNEL_IN_STEREO⽴体声。单声道在声⾳处理过程中只有单数据流,⽽⽴体声则需要左、右声道的两个数据 流。显然,⽴体声的效果要好,但相应的数据量要⽐单声道的数据量加倍。

码率

就是⽐特率。⽐特率是指每秒传送的⽐特(bit)数。 ⾳频采集和播放: ⼀般⽤专⻔的芯⽚(通常叫codec芯⽚)采集⾳频,做AD转换,然后把数字信号通过I2S总线(主流⽤I2S总线, 也可以⽤其他总线,⽐如PCM总线)送给CPU处理(也有的会把codec芯⽚与CPU芯⽚集成在⼀块芯⽚中)。当要 播放时CPU会把⾳频数字信号通过I2S总线送给codec芯⽚,然后做DA转换得到模拟信号再播放出来。

声音与音频

声音转成模拟信号,可以把声音认为是一种能量,通过震动,磁电转换,记录刻痕。

声音通过人耳鼓膜,通过震动幅度和震动频率给听觉神经传递反映给大脑。

数字信号:声音能转换产生微弱的电流,有频率有大小等要素,科学家通过一定的算法能转换成类似我们看到的波形具体的事物。

音频信号能进行压缩的依据是音频压缩技术。
  音频压缩技术指的是对原始数字音频信号流(PCM编码)运用适当的数字信号处理技术,在不损失有用信息量,或所引入损失可忽略的条件下,降低(压缩)其码率,也称为压缩编码。它必须具有相应的逆变换,称为解压缩或解码。音频信号在通过一个编解码系统后可能引入大量的噪声和一定的失真。

在音频压缩领域,有两种压缩方式,分别是有损压缩和无损压缩。常见到的MP3、WMA、OGG被称为有损压缩,有损压缩顾名思义就是降低音频采样频率与比特率,输出的音频文件会比原文件小。
另一种音频压缩被称为无损压缩,也就是所要说的主题内容。无损压缩能够在100%保存原文件的所有数据的前提下,将音频文件的体积压缩的更小,而将压缩后的音频文件还原后,能够实现与源文件相同的大小、相同的码率。
无损压缩格式有APE、FLAC、WavPack、LPAC、WMALossless、AppleLossless、La、OptimFROG、Shorten,而常见的、主流的无损压缩格式只有APE、FLAC。

数字音频相关特点

数字音频的质量取决于:采样频率和量化位数这两个参数,为了保真在时间变化方向上取样点尽量密,取样频率要高;在幅度取值上尽量细,量化比特率要高,直接的结果就是存储容量及传输信道容量要求的压力
  音频信号的传输率=取样频率样本的量化比特数通道数取样频率=441KHz
  样本值的量化比特数=16
  普通立体声的信号通道数=2
  数字信号传输码流大约14Mbit/s
  一秒钟的数据量为14Mbit/(8/Byte)
  达1764 k byte(字节),等于88200个汉字的数据量
  数字音频的出现,是为了满足复制、存储、传输的需求,音频信号的数据量对于进行传输或存储形成巨大的压力
  音频信号的压缩是在保证一定声音质量的条件下,尽可能以最小的数据率来表达和传送声音信息
  信号压缩过程是对采样、量化后的原始数字音频信号流运用适当的数字信号处理技术进行信号数据的处理,将音频信号中去除对人们感受信息影响可以忽略的成分,仅仅对有用的那部分音频信号进行编排,从而降低了参与编码的数据量。

数字音频信号中包含的对人们感受信息影响可以忽略的成分称为冗余,包括时域冗余、频域冗余和听觉冗余。

时域冗余

1)幅度分布的非均匀性
  信号的量化比特分布是针对信号的整个动态范围而设定的,对于小幅度信号而言,大量的比特数据位被闲置。
  2)样值间的相关性
  声音信号是一个连续表达过程,通过采样之后,相邻的信号具有极强的相似性,信号差值与信号本身相比,数据量要小的多
  3)信号周期的相关性
  声音信息在整个可闻域的范围内,每个瞬间只有部分频率成分在起作用,即特征频率,这些特征频率会以一定的周期反复出现,周期之间具有相关关系
  4)长时自我相关性
  声音信息序列的样值、周期相关性,在一个相对较长的时间间隔也会是相对稳定的,这种稳定关系具有很高的相关系数
  5)静音
  声音信息中的停顿间歇,无论是采样还是量化都会形成冗余,找出停顿间歇并将其样值数据去除,可以减少数据量。

频域冗余的表现形式

1)长时功率谱密度的非均匀性
  任何一种声音信息,在相当长的时间间隔内,功率分布在低频部分大于高频部分,功率谱具有明显的非平坦性,对于给定的频段而言,存在相应的冗余
  2)语言特有的短时功率谱密度
  语音信号在某些频率上会出现峰值,而在另一些频率上出现谷值,这些共振峰频率具有较大的能量,由它们决定了不同的语音特征,整个语言的功率谱以基音频率为基础,形成了向高次谐波递减的结构

听觉冗余

根据分析人耳对信号频率、时间等方面具有有限分辨能力而设计的心理声学模型,将通过听觉领悟信息的复杂过程,包括接受信息,识别判断和理解信号内容等几个层次的心理活动,形成相应的连觉和意境
  由此构成声音信息集合中的所以数据,并非对人耳辨别声音的强度、音调、方位都产生作用,形成听觉冗余
  由听觉冗余引出了降低数据率,实现更高效率的数字音频传输的可能文章来源地址https://www.toymoban.com/news/detail-521623.html

到了这里,关于音视频入门知识学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 音视频基础知识——素材理解

    素材是媒体内容生产中一切生产资料的集合,包括不限于视频、音频、图片、字幕等形式。 素材通过统一的协议把原始的数据有序组织起来,便于编辑与管理。比如一般的素材是由一个物理文件及其各类属性构成,在对素材进行剪辑处理时,不用改变源文件中的任何内容,通

    2024年02月01日
    浏览(39)
  • 音视频基础知识-时间戳的理解

    问题背景: 凡是和流媒体和音视频打交道,时间戳基本是一个必须深刻理解的概念。你会在各种各样的传输协议和封装格式中看到这个东西,而且表现形式还不一样。其次这个概念会涉及到音视频播放的同步问题,也会影响音视频播放的控制问题。前者说的是音画同步,后者

    2023年04月08日
    浏览(31)
  • 音视频学习-音视频基础

    ` ◼ 像素:像素是一个图片的基本单位,pix是英语单词picture的简写,加上英语单词“元素element”,就得到了“pixel”,简称px,所以“像素”有“图像元素”之意。 ◼ 分辨率:是指图像的大小或尺寸。比如1920x1080。 ◼ 位深:是指在记录数字图像的颜色时,计算机实际上是用

    2024年02月12日
    浏览(42)
  • 5G时代下,Android音视频强势崛起,我们该如何快速入门音视频技术?

    作为Android开发者的我们到底应不应该上音视频这条船? 接下来一起分析下。 大趋势 从未来的大趋势来看,随着5G时代的到来,音视频慢慢变成人们日常生活中的必需品。除了在线教育、音视频会议、即时通讯这些必须使用音视频技术的产品外,其它的产品也需要加入音频、

    2024年04月15日
    浏览(51)
  • 音视频学习—音视频理论基础(2)

      音频是一种模拟信号,它是由声波转化而来的电信号。声波是通过气体、液体或固体传播的机械波,代表了声音的震动。在录制过程中,声音被转换成电信号,然后被储存在数字格式中。   声音的三要素是频率、振幅和波形   频率是指声波的振动次数,通常使用赫

    2024年04月29日
    浏览(27)
  • 深入理解WebSocket,让你入门音视频

    😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想当开发的测试,不是一个好测试✌️。 如果感觉博主的文章还不错的话,还请点赞、收藏哦

    2024年02月16日
    浏览(27)
  • webrtc入门:4.RTCPeerConnection连接音视频流

    有了前面的准备,离视频会议的建设又进了一层了。我们现在准备好了音视频流的数据。双方的视频数据需要交给对方,对方就能看到相关的数据,达到了视频会议的效果。 假设我们是一个视频会议的发起人,我们当然先要知道,我们想跟谁进行视频通话,对方需要把相关的

    2023年04月10日
    浏览(28)
  • FFmpeg入门详解之19:音视频封装原理简介

    什么是数据封装和解封装? 数据封装(baiData Encapsulation) ,笼统地讲,就是把业务数据映射到du某个封装协议zhi的净dao荷中,然后填充对应协议的包头,形成封装协议的数据包,并完成速率适配。 解封装 ,就是封装的逆过程,拆解协议包,处理包头中的信息,取出净荷中的业

    2023年04月09日
    浏览(35)
  • 学习笔记/音视频面试

    1.DTS/PTS 如果没有B帧,那么DTS一般与PTS相同 DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。(解码I-P-B) PTS(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。 2.GOP 就是将

    2023年04月12日
    浏览(33)
  • 音视频BUG学习

    1、首先看出现概率是偶现还是必现 2、如果是必现,则复现整个bug过程,看Bug是否出现 如果是偶现,则分析问题视频 在复现问题过程中,刚开始没下载到本地,直接点击播放发生慢放,因为流量网速较低,15s,40Mb 平均网速要超过2.7Mb/s,因此误以为复现了bug 0 问题复现 找设

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包