音视频学习—音视频理论基础(2)

音视频学习—音视频理论基础(2)

  • 1、音频的基本概念
  • 2、声音的三要素
  • 3、声音的本质
  • 4、奈奎斯特采样定律
  • 5、采样和采样率
  • 6、采样数和采样位数
  • 7、量化
  • 8、比特率(码率)
  • 9、响度和强度
  • 10、编码
  • 11、音频帧
  • 12、音频文件大小的计算
  • 总结


1、音频的基本概念

  音频是一种模拟信号,它是由声波转化而来的电信号。声波是通过气体、液体或固体传播的机械波,代表了声音的震动。在录制过程中,声音被转换成电信号,然后被储存在数字格式中。

2、声音的三要素

  声音的三要素是频率、振幅和波形

  频率是指声波的振动次数,通常使用赫兹(Hz)来表示。人类能够听到的声音的频率范围是20Hz20kHz。频率越高,声音越尖锐;频率越低,声音越低沉。

  振幅是指声波的振动幅度,也就是声音的响度或音量。振幅越大,声音越响亮;振幅越小,声音越微弱。

  波形是指声波的形状。不同的声波形状会对声音的音色产生影响。例如,正弦波是一种最简单的波形,它产生的声音音色清晰、纯正;而复杂波形则产生的声音音色更具有丰富性和复杂性。

  在数字音频领域,频率、振幅和波形被转化为数字信号,然后存储和传输。对于数字音频,频率通常表示采样率,振幅表示采样精度,波形则是由采样数据重建出来的。

3、声音的本质

  声音的本质包括音调、音量和音色。

  音调是指声音的高低、频率。较高的频率产生的声音音调更高,较低的频率产生的声音音调更低。例如,钢琴和小提琴演奏同样的音符,由于它们频率不同,所以发出的声音音调也不同。

  音量是指声音的响度、强弱。通常使用分贝(dB)衡量声音的音量大小。人类能够听到的声音范围是0dB140dB,其中0dB表示最小听力阈值,而140dB表示极度嘈杂的声音。音量的大小与振幅相关,振幅越大,声音就越响亮。

  音色是指声音的特征,它决定了声音的品质和风格。每个乐器的音色都是独特的,这也是为何我们可以轻松地区分小提琴和钢琴的声音。音色的不同源于声波的波形特征,这种特征被称为谐波。不同的谐波组合形成了不同的音色。

4、奈奎斯特采样定律

  奈奎斯特采样定律,也称为奈氏定理,指在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>2fmax),采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的2.56~4倍;采样定理又称奈奎斯特定理。

  奈奎斯特采样定律的表达式为:Fs > 2 × Fm

  其中,Fs为采样频率,Fm为信号中最高能达到的频率。比如,一个信号最高频率为10kHz,那么采样频率需要大于20kHz,才能保证信号能够被准确地重建。如果采样率低于奈奎斯特采样定律所要求的最小值,信号就会发生混叠失真现象,即信号的高频部分被混淆到了低频部分,导致信号质量下降。

5、采样和采样率

  在数字音频中,采样是将模拟音频信号转换为数字信号的过程。模拟音频信号是连续时间变化的信号,而数字信号则是离散时间的抽样信号。具体来说,采样将连续的音频波形在一定时间间隔内进行离散化,将其转化为一系列数字值。

  采样率是指数字音频信号中的采样数量,通常以每秒采样次数(Hz或kHz)来表示。它表示将连续时间的音频信号离散化成数字信号的速率。采样率越高,数字音频数据就越精确,音质也越好,但同时文件也越大。常见的采样率包括44.1kHz48kHz96kHz等。

  例如,CD音质的采样率为44.1kHz,表示每秒钟录制了44100个采样点来描述声波。在数字音频中,采样的精度也会影响到音频的质量,通常使用位深度(比特数)来描述。CD音质的采样精度为16 bits,表示每个采样点使用16比特来表示。

6、采样数和采样位数

  采样数指的是每秒钟对模拟信号进行采样的次数,它决定了数字音频信号的频率范围,常见的采样数有44.1kHz、48kHz、96kHz等。
采样位数指的是每个采样点对应的二进制数的位数,它决定了数字音频信号的动态范围和信噪比。通常,采样位数越高,数字音频信号的信噪比就会越高,可以表达更广泛的音频强度范围。常见的采样位数有8位、16位、24位、32位等。

  通道数指的是数字音频信号中的声道数。常见的通道数有单声道(mono)和双声道(stereo),还有多声道,如5.1声道、7.1声道等。多声道可以通过在不同的声道中播放不同的音频信号来实现更加立体的音效。

  需要注意的是,采样数、采样位数和通道数三者共同决定了数字音频信号的质量和大小。采样率和采样位数越高、通道数越多,音频文件的体积就越大,音质也会越好。因此,在实际应用中需要根据需求来选择采样率、采样位数和通道数。

7、量化

  量化是指将连续的模拟信号转换成离散的数字信号的过程。在数字信号处理中,量化是将采样后的连续信号按照一定的准则映射到离散标准值集合中的过程,其中,这些标准值形成一个有限制的数字集合。这些数字集合就是存储数字信号所用的码字,它们代表了信号的离散取值。

  量化的过程是通过量化器来实现的,量化器将采样信号中的每个样本映射为最接近的数字信号的取值。数字信号的每个码字都是用二进制编码表示的。一般来说,采样精度越高,量化器刻度越小,数字信号的准确度就越高,质量也越好。

  量化过程中,由于原始的模拟信号的取值范围很大,而二进制编码能表示的数字范围相对较小,因此,在量化过程中难免会出现误差。这种误差叫做量化误差,它是原始模拟信号与离散化数字信号之间的差值。在数字音频中,这种误差会对音质造成一定的影响。

8、比特率(码率)

  比特率是指数字音频数据的传输速率,通常使用比特每秒(bps)来衡量。它表示单位时间内传输的数据量,也叫作数据传输速率。比特率越高,音频质量越好,但文件大小也越大。

  在数字音频领域中,比特率通常表示为kbps(千比特每秒)或者Mbps(兆比特每秒)。例如,128kbpsMP3音频表示每秒传输128千比特的音频数据。高清音频通常需要更高的比特率,否则会因压缩损失而影响音质。

  不同的数字音频格式使用不同的比特率。例如,MP3音频的标准比特率通常为128kbps或者192kbps,而Apple LosslessFLAC等无损音频格式则需要更高的比特率以保证音频质量。总之,比特率是数字音频的一个重要指标,它直接影响到音频的质量和存储空间。

9、响度和强度

  响度和强度都是声音的感知特性,但它们描述的是不同的方面:

  响度是人类主观感受到的声音强度,用分贝(dB)表示。通常,人们对于听觉上的相同强度,低频和高频声音的响度是不同的。响度与声音的物理特性、频率、振幅等都有关系。相同的振幅,低频声音的响度要高于高频声音的响度。相同的频率,振幅更大的声音响度更高,但人类对于高强度声音的响度感受不如低强度声音强烈。

  强度是声波能量传递的测量值,表示单位时间内通过单位面积的能量。强度与声音源的振幅成正比,与声音的传播距离的平方成反比。强度同样也可用分贝表示。它是声波在空气中传播带来的物理现象,与人类听觉感知不同。

10、编码

  每个量化值都是一个样本,将所有这些样本进行存储的过程称为编码。

  在音视频领域中,编码是指将音频信号或视频信号转换为数字信号,以便于在数字系统中储存、传输、处理和回放。音频编码主要包括有损编码和无损编码两种方式。有损音频编码可以压缩数据的大小,但会丢失一些信息,比如MP3、AAC、WMA等。无损音频编码则可以达到无失真的压缩,数据大小相对较大,比如FLAC、ALAC等。视频编码也存在有损和无损两种编码方式,但更多是有损编码。常用的有损视频编码标准有MPEG-1、MPEG-2、MPEG-4、H.264/AVC、H.265/HEVC等,其中H.264/AVCH.265/HEVC是目前应用最广泛的两种视频编码标准。视频编码主要使用了运动估计、变换编码、量化和熵编码等技术来对视频进行压缩编码。

通常所说的音频裸数据格式就是脉冲编码调制(PCM)数据。PCM是一种用于数字音频编码的标准方法,它将模拟音频信号进行采样,并将每个采样值量化为离散的数字值。这些数字值表示音频信号在每个采样点上的振幅,然后以二进制形式存储。PCM数据是一种常见的音频数据格式,它可以通过将数字值转换为模拟信号来恢复原始的音频信号。

11、音频帧

  音频帧是指一段连续的音频数据,包含多个采样点。通常音频帧的长度与采样率和采样位数有关。

12、音频文件大小的计算

  文件大小 = 采样率 * 录音时间 * 采样位数 / 8 * 通道数


总结

  本文概述了音频的基本概念,如频率、振幅、采样等。并详细介绍了数字音频处理中的一些重要概念,如采样率、采样位数、量化、编码等。后续我会继续跟进的。

  为了方便交流,我创建了一个后端和音视频技术的qq群,群号:333138957(可以扫下面的码加群)。

  如果你对音视频和后端开发感兴趣,欢迎加入我们进行深入交流。共同学习,携手推进行业发展!

qq群:
在这里插入图片描述

微信群:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/815907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GEE实践应用】按照字段提取想要的研究区域

有的时候,我们在GEE中加载研究区域时,我们现有的矢量数据可能不止自己想要的研究区域的范围,这个时候,为了避免在ArcGIS中重新导出打包上传等操作,我们可以在GEE中按照字段进行选择我们想要的研究区域。下面是操作实例…

Leetcode二十三题:合并K个升序链表【22/1000 python】

“合并K个升序链表”,这是一道中等难度的题目,经常出现在编程面试中。以下是该问题的详细描述、解题步骤、不同算法的比较、代码示例及其分析。 问题描述 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中…

浏览器密码框明文密文兼容edge的问题

在网页中注册会员的时候,经常需要输入用户名(账号)和密码,在输入密码的时候,为了防止用户输错密码,经常会给密码框加一个小功能,就是点击密码框右侧闭着的小眼睛,可以让密文变成明文…

【教学类-51-01】20240411动物皮毛图片的彩色打印PDF制作(一页两张图片,2个表格)

作品展示 背景需求: 为了便于快速做出A4两份图片的效果,设计以下代码,进行图片的PDF合成打印 代码参考: 【教学类-50-06】20240410“数一数”4类星号图片制作PDF学具-CSDN博客文章浏览阅读531次,点赞8次,收…

医院预约系统微信小程序APP前后端

医院预约系统具体功能介绍:展示信息、可以注册和登录, 预约(包含各个科室的预约,可以预约每个各个医生),就诊引导包含预约的具体信息,包含就诊时间、就诊科室、就诊医生以及就诊人信息、和支付状…

基于”Python+”多技术融合在蒸散发与植被总初级生产力估算中的应用

熟悉蒸散发ET及其组分(植被蒸腾Ec、土壤蒸发Es、冠层截留Ei)、植被总初级生产力GPP的概念和碳水耦合的基本原理;掌握利用Python与ArcGIS工具进行课程相关的操作;熟练掌握国际上流行的Penman-Monteith模型,并能够应用该…

有真的副业推荐吗?

#有真的副业推荐吗# 我做副业项目的时候,认识了一位带娃宝妈,讲一下她空闲时间做副业赚钱的故事吧。在一个温馨的小家庭里,李婷是一位全职宝妈,她的主要任务是照顾和陪伴自己可爱的宝宝。然而,随着宝宝逐渐长大&#x…

Mysql的事务隔离级别以及事务的四大特性。

MySQL 的事务隔离级别是数据库管理系统中的一个重要概念,它决定了事务如何隔离和影响其他并发事务。MySQL 支持四种事务隔离级别,分别是:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)…

【MATLAB源码-第188期】基于matlab的64QAM系统相位偏移估计EOS算法仿真,对比补偿前后的星座图误码率。

操作环境: MATLAB 2022a 1、算法描述 1. 引言 M-QAM调制技术的重要性 现代通信系统追求的是更高的数据传输速率和更有效的频谱利用率。M-QAM调制技术,作为一种高效的调制方案,能够通过在相同的带宽条件下传输更多的数据位来满足这一需求…

Ubuntu使用SSH的X11Forwarding

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、X11Forwarding是什么?二、使用步骤1.打开SSH配置2.MobaXterm 三、测试总结 前言 有没有那么一种需求,就是有时候你需要将远端的画面…

dbeaver数据库语言编辑器设置jdbc驱动

打开 dbeaver 软件 数据库 -> 驱动管理器 以mysql为例 双击 MySQL -> 库 -> 添加工件 然后 打开maven组件库 官网 找到mysql驱动对应的maven工件地址 复制进去然后确认就行了 参考 大神博客

VM虚拟机安装Linux系统Redhat7.4版本

1、打开VM软件创建一个新的虚拟机: 可选择经典安装,也可以选择自定义安装,本次选择自定义安装,然后选择下一步 2、直接默认选择下一步即可 3、选择稍后安装操作系统,选择下一步 4、之后选择呢需要安装客户机的操作系统…

Linux 添加启动服务--Service

1,服务配置service文件 Service 服务的实际作用是开启后自动启动服务,运行一些不须要登录的程序,任务。 实例1、上电自动连接WIFI热点 1.1 新建.service文件 /etc/systemd/system/wificonnect.service [Unit] DescriptionService [wifico…

策略为王股票软件源代码\StkUI\View\BaseView.cpp-------显示股票基本资料的视图-------程序代码都在里面了

CString strHeader info.GetStockCode(); strHeader " "; /修改 strHeader info.GetStockName(); strHeader "\r\n\r\n "; GetEditCtrl().SetWindowText( strHeader ); GetEditCtrl().SetSel…

Linux配置程序后台运行(前后台来回切换)

Linux配置程序后台运行 在日常开发过程中,会遇到我们在前台运行程序,此时我们临时有事,但不能关闭终端,否则程序就会在电脑熄屏(终端session断开后)停止运行。 那么作为一个合格的开发,就必须要…

ELFK日志分析系统之搭建ELF+Filebeaat+Zookeeper+Kafka

引言 结合前面所学 http://ELK日志分析系统 一、为什么要做日志分析平台 随着业务量的增长,每天业务服务器将会产生上亿条的日志,单个日志文件达几个GB,这时我们发现用Linux自带工具,cat grep awk 分析越来越力不从心了&#…

【Linux】序列化与反序列化{服客编程/守护进程/JSON}

文章目录 1.引入2. 静态成员函数3.TCP:传输控制协议4.守护进程4.0前台进程4.1介绍4.2认识4.3会话4.3ps axj4.4理解4.5/dev/null4.6守护进程和孤儿进程 5.JSON6.完整代码6.1Makefile6.2Socket.hpp6.3Protocol.hpp6.4Log.hpp6.5Daemon.hpp6.6TcpServer.hpp6.7Client.c…

Spring高手之路17——动态代理的艺术与实践

文章目录 1. 背景2. JDK动态代理2.1 定义和演示2.2 不同方法分别代理2.3 熔断限流和日志监控 3. CGLIB动态代理3.1 定义和演示3.2 不同方法分别代理(对比JDK动态代理写法)3.3 熔断限流和日志监控(对比JDK动态代理写法) 4. 动态代理…

基于ssm的智慧餐厅点餐管理系统设计与实现(java项目+文档+元)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的智慧餐厅点餐管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 智慧餐厅点餐管理系统设计…

踩了一堆坑,终于掌握了postgreSQL主从流的精髓

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…