【音视频原理】音频编解码原理 ③ ( 音频 比特率 / 码率 | 音频 帧 / 帧长 | 音频 帧 采样排列方式 - 交错模式 和 非交错模式 )

文章目录

  • 一、音频 比特率 / 码率
    • 1、音频 比特率
    • 2、音频 比特率 案例
    • 3、音频 码率
    • 4、音频 码率相关因素
    • 5、常见的 音频 码率
    • 6、视频码率 - 仅做参考
  • 二、音频 帧 / 帧长
    • 1、音频帧
    • 2、音频 帧长度
  • 三、音频 帧 采样排列方式 - 交错模式 和 非交错模式
    • 1、交错模式
    • 2、非交错模式





一、音频 比特率 / 码率



1、音频 比特率


" 音频 比特率 " 指的是 每秒 传输的 音频的 比特数 ;

单位是 bps , Bit Per Second ;

" 音频 比特率 " 是 衡量 音频 质量 的 标准 ;

原始 PCM 采样的音频 , 其 比特率 = 采样频率 * 采样位数 * 音频通道数 ;


2、音频 比特率 案例


如 : 采样频率为 44100 Hz , 采样位数是 16 位 ( 单个采样 2 字节 ) , 采样的通道数是 双声道立体声 , 则 该音频的比特率 为 :

44100 × 16 × 2 = 1 , 411 , 200 44100 \times 16 \times 2 = 1,411,200 44100×16×2=1,411,200

该音频一秒钟的比特数为 1411200 比特 ;

该数据量 为 1411200 ÷ 8 = 176400 1411200 \div 8 = 176400 1411200÷8=176400 字节 , 大约 172MB ;


3、音频 码率


音频 的 码率 指的是 压缩后的 音频数据 的 比特率 , 是 音频数据 在单位时间内的 传输速率 或 压缩率 , 表示 每秒钟 传输 或 存储 的音频数据量 , 通常以 kbps 千比特每秒 为单位 ;

音频 码率 决定了 音频文件 的 音质 和 文件大小 之间的平衡 ;

没有压缩的音频的比特率是确定的 , 就是 " 未压缩比特率 = 采样频率 * 采样位数 * 音频通道数 " ;


4、音频 码率相关因素


音频码率的大小 相关的 因素 :

  • 音频的大小 :
    • 采样率
    • 位深度
    • 声道数
  • 编码算法

通常情况下 ,

  • 较高的码率 通常会提供更好的音质 , 因为它包含更多的音频数据 , 能够更准确地还原原始声音信号 , 但会占用更多的存储空间 ;
  • 较低的码率 可以减小文件大小 , 节省存储空间 , 但可能会导致音质的损失 , 因为它包含较少的音频数据 , 可能无法完全还原原始声音信号 ;

5、常见的 音频 码率


常见的 音频 码率 有 :

  • 96 kbps : FM 音质 , 适用于一些对音质要求不高的场景 ;
  • 128-160 kbps : 普通质量的音频码率 , 常用于在线音乐流媒体服务和普通音乐下载 ; 该 码率 音质较好 , 能够提供清晰的声音 , 在 复杂的音频场景 中可能会出现一些细节丢失 ;
  • 192 kbps : CD 音质 , 该码率提供更高的音质 , 适用于对音质要求较高的音乐和音频内容 , 它在保持相对较小的文件大小的同时 , 提供更多的音频细节和动态范围 ;
  • 256-320 kbps : 高质量音频的码率范围 , 通常被视为 无损音质 ; 该 码率 的 音频文件 能够提供非常接近原始录音的音质 , 适用于需要保留尽可能多音频细节的场景 ;

6、视频码率 - 仅做参考


视频码率 指的是 视频文件 在 单位时间内 的 数据流量 , 单位一般是 Mbps , 这是数据传输速率的一种单位 ;

Mbps 表示单位时间内传送比特的数目 , 通常用于衡量数字信号的传输速率 , 如 : 视频 / 音频 等多媒体数据的传输速率 , 网络带宽速率 等 ;


一般情况下 , 码率越高 , 视频的 分辨率 越高 , 视频越清晰 ; 但不是绝对的 , 有些时候 模糊的文件 码率也很高 ;


码率的单位 是 " Mbps " , 英文全称 " Megabits Per Second " , " 兆比特每秒 " , 是 传输速率单位 , 指每秒传输 比特 数量 ;

1 Mbps 代表每秒传输 1,000,000 位 ( 比特 , bit ) , 8 bit = 1 Byte , Byte 是字节 , 每字节 有 8 位 , 即 每秒传输的数据量为 1,000,000 / 8 =125,000 Byte / s ;





二、音频 帧 / 帧长



1、音频帧


" 音频帧 " 概念 : 将 音频 送入 音频编码器 进行编码时 , 一次性要送入指定个数的 " 采样 " ,

  • 这些指定个数又 称为 " 单元数 " ,
  • 这些指定个数的采样 称为为一个 " 编码单元 " , 又叫做 " 音频帧 "
  • 这些指定个数的采样 换一种说法 , 也可以理解为 " 指定时间内的采样数 " ;

音频帧 的概念 与 编码格式 紧密相关 , 并由各个 编码标准 自己实现 , 不同的 " 编码格式 " 的 编码帧 采样个数是不同的 ;

  • mp3 编码格式 的 音频编码帧 有 1152 个采样点 ;
  • aac 编码格式 的 音频编码帧 有 1024 个采样点 ;

2、音频 帧长度


音频 帧长度 指的是 每个 音频帧 的 " 播放持续时间 " ,

音频帧持续时间 ( 单位 : 秒 ) = 采样点数 ( 单位 : 个 ) / 采样频率 ( 单位 : 赫兹 Hz ) ;


音频 帧长度 也可以 指 " 压缩后每个 音频帧 的 数据长度 " ;


以 mp3 压缩格式为例 , 采样率是 48000Hz , 一个 音频帧 ( 编码单元 ) 有 1152 个采样点 , 则 " 音频帧长度 " 为 :

1152 ÷ 48000 = 0.024 秒 = 24 毫秒 1152 \div 48000 = 0.024 秒 = 24 毫秒 1152÷48000=0.024=24毫秒


上面提到的 " 采样点数 " 概念 , 注意区分 采样点数 与 采样个数 :

  • 如果是 单声道 , 就有 1 个音频采样 ,
  • 如果是 立体声 ( 双声道 ) , 就有 2 个音频采样 ,
  • 如果是 环绕声 ( 四声道 ) , 就有 4 个音频采样 ;




三、音频 帧 采样排列方式 - 交错模式 和 非交错模式



音频 编码 或 解码 时 , 首先要知道 在 音频帧 中 采样点 的排列方式 ,

数据以 " 连续帧 " 的方式存放 , 先记录 帧 1 的采样点 , 再记录 帧 2 的采样点 ,

在 " 音频帧 内部 " 的 音频 采样 排列方式 主要有 交错模式非交错模式 两种排列方式 ;


1、交错模式


交错模式 : 在 存储 音频采样时 , 下图是 记录 4 个 双通道 采样点数据 ,

  • 首先 , 记录 采样点 1 的 左声道 和 右声道 ,
  • 然后 , 记录 采样点 2 的 左声道 和 右声道 ,
  • 再后 , 记录 采样点 3 的 左声道 和 右声道 ,
  • 最后 , 记录 采样点 4 的 左声道 和 右声道 ,

在这里插入图片描述


2、非交错模式


非交错模式 : 在 音频帧 中 存储 音频采样时 , 下图是 记录 4 个 双通道 采样点数据 ,

  • 首先 , 记录 采样点 1 ~ 采样点 4 的 左声道 样本 ,
  • 然后 , 记录 采样点 1 ~ 采样点 4 的 右声道 样本 ;

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

精品基于Uniapp+springboot助农管理系统App农产品积分购物商城

《[含文档PPT源码等]精品基于Uniappspringboot助农管理系统App》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 软件开发环境及开发工具: 开发语言:Java 后台框架:springboot、ssm 安卓…

spring-boot redis stream消息队列demo-及死信简单处理

Redis stream 是 Redis 5 引入的一种新的数据结构,它是一个高性能、高可靠性的消息队列,主要用于异步消息处理和流式数据处理。在此之前,想要使用 Redis 实现消息队列,通常可以使用例如:列表,有序集合、发布…

Leetcode刷题笔记题解(C++):1114. 按序打印(多线程)

思路: 保证A,B,C三个线程的顺序不会变,即优先级顺序的问题 A,B需要资源1,B,C需要资源2 A先占用资源1和资源2,A线程完了之后释放资源1不释放资源2,然后B线程占用资源1,A线程完了之后释放资源1和资源2&…

28个炫酷的纯CSS特效动画示例(含源代码)

CSS是网页的三驾马车之一,是对页面布局的总管家,2024年了,这里列出28个超级炫酷的纯CSS动画示例,让您的网站更加炫目多彩。 文章目录 1. 涌动的弹簧效果2. 超逼真的3D篮球弹跳,含挤压弹起模态3. 鼠标放div上&#xff0…

Cesium加载地图-高德影像

废话不多说&#xff0c;直接上代码 整体代码 <template><div id"cesiumContainer" style"height: 100vh;"></div><div id"toolbar" style"position: fixed;top:20px;left:220px;"><el-breadcrumb><…

PyTorch 中的nn.Conv2d 类

nn.Conv2d 是 PyTorch 中的一个类&#xff0c;代表二维卷积层&#xff08;2D Convolution Layer&#xff09;。这个类广泛用于构建卷积神经网络&#xff08;CNN&#xff09;&#xff0c;特别是在处理图像数据时。 基本概念 卷积: 在神经网络的上下文中&#xff0c;卷积是一种特…

xshell无法连接linux,查询本机ip时出现<NO-CARRIER,BROADCAST,MULTICAST,UP>

在用xshell连接虚拟机VMware中的linux时&#xff0c;发现昨天还能连通的&#xff0c;今天连接不了了 我寻思应该是网卡配置出问题了&#xff0c;就去终端ip addr试了一下&#xff0c;果然发现问题&#xff0c;ip 查看网卡ens33就发现出现ens33:<NO-CARRIER,BROADCAST,MULTI…

自然语言处理:transfomer架构

介绍 transfomer是自然语言处理中的一个重要神经网络结构&#xff0c;算是在传统RNN和LSTM上的一个升级&#xff0c;接下来让我们来看看它有处理语言序列上有哪些特殊之处 模型整体架构 原论文中模型的整体架构如下&#xff0c;接下来我们将层层解析各层的作用和代码实现 该…

java中aes加密解密工具类

java中aes加密解密工具类 字符串&#xff1a;{“DATA”:{“SJH”:“17600024168”,“DLZH”:“91510104MA67FPXR5T”,“DLMM”:“jhdz123456”,“DLSF”:“5”,“NSRSBH”:“91510104MA67FPXR5T”},“JRSF”:“23”} 加密后&#xff1a;y4mzmi3jta22aXeIPfEdzu8sgA9uy3OevaIY…

LSTM的多变量时间序列预测(北京PM2.5预测)

参考博客 文章目录 LSTM简介数据集简介数据预处理多元LSTM预测模型数据准备&#xff1a;定义和拟合模型评估模型 训练多个滞后时间步 LSTM简介 LSTM&#xff08;Long Short-Term Memory&#xff09;是一种特殊类型的循环神经网络&#xff08;RNN&#xff09;&#xff0c;它在处…

LeetCode:1706. 球会落何处(Java 模拟)

目录 1706. 球会落何处 题目描述&#xff1a; 实现代码与解析&#xff1a; 原理思路&#xff1a; 1706. 球会落何处 题目描述&#xff1a; 用一个大小为 m x n 的二维网格 grid 表示一个箱子。你有 n 颗球。箱子的顶部和底部都是开着的。 箱子中的每个单元格都有一个对角线…

【C语言/数据结构】排序(直接插入排序|希尔排序)

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 ​​​​ 目录 插入排序 直接插入排序&…

【STM32】STM32学习笔记-Unix时间戳(41)

00. 目录 文章目录 00. 目录01. Unix时间戳02. UTC/GMT03. 时间戳转换04. C 标准库 <time.h>05. 时间相关函数示例5.1 time函数5.2 gmtime函数5.3 localtime函数5.4 mktime函数5.5 ctime函数5.6 asctime函数5.7 strftime函数 06. 预留07. 附录 01. Unix时间戳 •Unix 时…

GD32移植FreeRTOS+CLI过程记录

背景 之前我只在STM32F0上基于HAL库和CubeMX移植FreeRTOS&#xff0c;但最近发现国产化替代热潮正盛&#xff0c;许多项目都有国产化器件指标&#xff0c;而且国产单片机确实比意法的便宜&#xff0c;所以也买了块兆易创新的GD32F303开发板&#xff0c;试一试它的优劣。虽然GD…

HarmonyOS鸿蒙学习基础篇 - 通用事件

一、引言 HarmonyOS鸿蒙是华为推出的分布式操作系统&#xff0c;旨在为各种智能设备提供统一的操作系统。鸿蒙系统的一大特色是其强大的分布式能力&#xff0c;而通用事件则是实现这一能力的关键技术之一&#xff0c;本篇博客将介绍HarmonyOS鸿蒙中的通用事件。 二、 点击事件…

Vue深入学习4—指令和生命周期

1.Vue是怎么识别 v- 指令的&#xff1f; 首先将HTML结构解析成属性列表&#xff0c;存入到数组中&#xff0c;接着遍历数组中的每一个节点&#xff0c;获取到不同指令对应的方法。 // 将HTML看作真正的属性列表 var ndoeAttrs node.attributes; var self this; // 类数组对象…

使用chrome爬取URL数据的实战代码

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

JavaScript 执行上下文与作用域

执行上下文与作用域 ​ 执行上下文的概念在 JavaScript 中是颇为重要的。变量或函数的上下文决定了它们可以访问哪些数据&#xff0c;以及它们的行为。每个上下文都有一个关联的变量对象&#xff08;variable object&#xff09;&#xff0c; 而这个上下文中定义的所有变量和函…

Java项目:17 基于SpringBoot的在线拍卖系统

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 主要功能 前台登录&#xff1a; ①首页&#xff1a;轮播图、竞拍公告、拍卖商品展示 ②拍卖商品&#xff1a;分类&#xff1a;手机、数码、电器…

Vite学习指南

那本课程都适合哪些人群呢&#xff1f; 想要学习前端工程化&#xff0c;在新项目中投入使用 Vite 构建工具的朋友 Webpack 转战到 Vite 的小伙伴 前端架构师们&#xff0c;可以充实自己的工具箱 当然如果你没有项目相关开发经验&#xff0c;也可以从本课程中受益&#xff0…