当前位置: 首页 > news >正文

音视频基础之音频编码原理简介

一:隐蔽信号

数字音频信号如果不加压缩地直接进行传送,将会占用极大的带宽。例如,一套双声道数字音频若取样频率为44.1KHz,每样值按16bit量化,则其码率为:
244.1kHz16bit=1.411Mbit/s

如此大的带宽将给信号的传输和处理都带来许多困难和成本(阿里云服务器带宽大于5M后,每M价格是100元/月),
因此必须采取音频压缩技术对音频数据进行处理,才能有效地传输音频数据。

数字音频压缩编码在保证信号在听觉方面不产生失真的前提下,对音频数据信号进行尽可能大的压缩,降低数据量。数字音频压缩编码采取去除声音信号中冗余成分的方法来实现。所谓冗余成分指的是音频中不能被人耳感知到的信号,它们对确定声音的音色,音调等信息没有任何的帮助。

冗余信号包含人耳听觉范围外的音频信号以及被掩蔽掉的音频信号等。例如,人耳所能察觉的声音信号的频率范围为20Hz~20KHz,除此之外的其它频率人耳无法察觉,都可视为冗余信号。

此外,根据人耳听觉的生理和心理声学现象,当一个强音信号与一个弱音信号同时存在时,弱音信号将被强音信号所掩蔽而听不见,这样弱音信号就可以视为冗余信号而不用传送。这就是人耳听觉的掩蔽效应,主要表现在频谱掩蔽效应和时域掩蔽效应。

一个频率的声音能量小于某个阈值之后,人耳就会听不到。当有另外能量较大的声音出现的时候,该声音频率附近的阈值会提高很多,即所谓的掩蔽效应。如下图所示:
在这里插入图片描述
由图中我们可以看出人耳对2KHz~5KHz的声音最敏感,而对频率太低或太高的声音信号都很迟钝,当有一个频率为0.2KHz、强度为60dB的声音出现时,其附近的阈值提高了很多。由图中我们可以看出在0.1KHz以下、1KHz以上的部分,由于离0.2KHz强信号较远,不受0.2KHz强信号影响,阈值不受影响;而在0.1KHz~1KHz范围,由于0.2KHz强音的出现,阈值有较大的提升,人耳在此范围所能感觉到的最小声音强度大幅提升。如果0.1KHz~1KHz范围内的声音信号的强度在被提升的阈值曲线之下,由于它被0.2KHz强音信号所掩蔽,那么此时我们人耳只能听到0.2KHz的强音信号而根本听不见其它弱信号,这些与0.2KHz强音信号同时存在的弱音信号就可视为冗余信号而不必传送。

当强音信号和弱音信号同时出现时,还存在时域掩蔽效应。即两者发生时间很接近的时候,也会发生掩蔽效应。时域掩蔽过程曲线如图所示,分为前掩蔽、同时掩蔽和后掩蔽三部分。
在这里插入图片描述
时域掩蔽效应可以分成三种:前掩蔽,同时掩蔽,后掩蔽。前掩蔽是指人耳在听到强信号之前的短暂时间内,已经存在的弱信号会被掩蔽而听不到。同时掩蔽是指当强信号与弱信号同时存在时,弱信号会被强信号所掩蔽而听不到。后掩蔽是指当强信号消失后,需经过较长的一段时间才能重新听见弱信号,称为后掩蔽。这些被掩蔽的弱信号即可视为冗余信号。

二:音频编码–压缩编码方法

当前数字音频编码领域存在着不同的编码方案和实现方式, 但基本的编码思路大同小异, 如图所示。
在这里插入图片描述
对每一个音频声道中的音频采样信号:
1.将它们映射到频域中,这种时域到频域的映射可通过子带滤波器实现。每个声道中的音频采样块首先要根据心理声学模型来计算掩蔽门限值;
2.由计算出的掩蔽门限值决定从公共比特池中分配给该声道的不同频率域中多少比特数,接着进行量化以及编码工作;
3.将控制参数及辅助数据加入数据之中,产生编码后的数据流。

相关文章:

音视频基础之音频编码原理简介

一:隐蔽信号 数字音频信号如果不加压缩地直接进行传送,将会占用极大的带宽。例如,一套双声道数字音频若取样频率为44.1KHz,每样值按16bit量化,则其码率为: 244.1kHz16bit1.411Mbit/s 如此大的带宽将给信号…...

【Python--XML文件读写】XML文件读写详解

【Python–XML文件读写】XML文件读写详解 文章目录【Python--XML文件读写】XML文件读写详解1. 前言1.1 介绍1.2 用法2. xml文件内容形式3. xml文件读写3.1 项目框架3.1 写入操作(创建)(create_xml.py)3.2 读取操作(解析…...

GNU make 中文手册 第一二章 概述与介绍

一、第一章:概述 准备知识 在开始我们关于 make 的讨论之前,首先需要明确一些基本概念: 编译:把高级语言书写的代码,转换为机器可识别的机器指令。编译高级语言后生成的指令虽然可被机器识别,但是还不能…...

真的了解HashMap、HashSet吗?做一道测试题试试!

本人博客《HashMap、HashSet底层原理分析》,可以了解hashmap的底层源码实现 测试代码 HashSet底层实际就是一个Hashmap。猜猜下面源码每一个打印结果。 注:user对象重写的hashcode方法,保证name和age一样的情况下hashcode是一样的&#xff…...

树莓派下安装OpenEuler

openEuler作为华为开源的应用于嵌入式设备的操作系统,正在受到越来越多的关注。树莓派是一个很好的应用场景,这篇文章就介绍下如何在树莓派上安装openEuler。   ps:openEuler要求树莓派的版本是4B 1.下载openEuler镜像 镜像网址&#xff1…...

VSCode Remote-SSH配置免密登录踩坑

VSCode Remote-SSH配置免密登录踩坑1. 参考2. 基本流程2.1 机器A(Windows客户端)2.2 机器B(Linux服务器)2.3 机器A(Windows客户端)的VSCode设置3. 踩坑总结相关教程很多,但要么冗余,…...

【Python语言基础】——Python NumPy 数组拆分

Python语言基础——Python NumPy 数组拆分 文章目录 Python语言基础——Python NumPy 数组拆分一、Python NumPy 数组拆分一、Python NumPy 数组拆分 拆分 NumPy 数组 拆分是连接的反向操作。 连接(Joining)是将多个数组合并为一个,拆分(Spliting)将一个数组拆分为多个。…...

虹科资讯| 虹科AR荣获汽车后市场“20佳”维修工具评委会提名奖!

2022 虹科荣获20佳维修工具 评委会提名奖 特大喜讯,在2月16日《汽车维修与保养》杂志主办的第十八届汽车后市场“20佳”评选活动中,虹科的产品“M400智能AR眼镜”凭借在AR领域的专业实力,通过层层筛选,在102款入围产品中脱颖而出…...

Mysql架构与内部模块

Mysql架构与内部模块 演示环境: MySQL 5.7 存储引擎:InnoDB 一、一条查询SQL是如何执行的? 程序或者工具要操作数据库,第一步跟数据库建立连接。 1、通信协议 首先,MySQL 必须要运行一个服务,监听默认的…...

从技术上来看,互联网技术开始衍生和蜕变出更多的新技术

很多人在看待产业互联网的问题上,一味地割裂它与互联网之间的联系,甚至还有人将产业互联网看成是对于传统互联网的颠覆。如果仅仅只是以这样的眼光来看待产业互联网,那么,他们势必是无法完整把握产业互联网的本质内涵和原始奥义的…...

最长不含重复字符的子字符串

今天处理一道算法题目,《剑指Offer》第48题,力扣中等题。 这道题也是面试的高频题! 题目描述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例1: 输入: "abcabcbb" …...

git中git push origin master推送远程操作失败,报错解决方案

报错图片如下所示: 解决方案: 使用下面代码进行本地与远程仓库的链接: git remote add origin http://xxxxx///xxx(https://gitee.com/peach-fog/shopping-cart-car-warehouse.git)链接完成之后就会输出:fatal: remote origin already exists. 链接完成之后就需要使用git br…...

服务器部署流程与经验记录

服务器部署流程1.项目部署1.1 重置实例密码1.2 配置安全组规则1.3 远程连接服务器1.4 安装所需软件1.5 安装Tomcat1.6 配置宝塔安全组1.7 导入数据库和项目2. 域名注册3. 网站备案1.项目部署 1.1 重置实例密码 1.2 配置安全组规则 1.3 远程连接服务器 使用VNC远程连接&#…...

超火的情感视频短视频账号,赚钱的路子有多野?

目录 一、情感类视频内容模式 1、线上情感导师型 2、用动画传达人生哲理 3、网抑云式的野生“文案馆” 4、星座式情感账号 二、情感号变现方式 1、首先是可以接广告 2、收徒做情感号培训,知识付费 3、导流粉丝到公众号 4、通过卖号来变现 6、导流微信变现…...

Linux系列 linux 常用命令(笔记)

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.linux 常用命令(目录文和件基本操作) 1.命令的分类…...

Cosmos 基础教程(二)-- Run a Node, API, and CLI

有很多不同的方法来运行Cosmos区块链的节点。您将探索如何使用simapp 进行此操作。 1、编译simapp Cosmos SDK存储库包含一个名为 simapp 的文件夹。在这个文件夹中,您可以找到运行Cosmos SDK模拟版本的代码,这样您就可以在不实际与链交互的情况下测试…...

C# 读写xml文件总结 [详细]

C# 读写xml文件总结C#写入xml文件1、XmlDocument2、DataSet对象里的值来生成XML文件3、利用XmlSerializer来将类的属性值转换为XML文件的元素值。示例:写入xml1、创建xml文档2 、增加节点3 、修改节点:4 、删除节点c#读取xml文件C#写入xml文件 1、XmlDo…...

【Java基础】IO流

IO流 最后一定要关闭流,防止资源泄露 字节流 一次读取1字节,8比特 FileInputStream import org.junit.jupiter.api.Test;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;public class CopyBytes {pub…...

Boolean,Array,Object数据类型(回顾)

Boolean数据类型范围Boolean(value)Object数据类型特点键值对数组特点类数组特点 Boolean数据类型范围 true,false 链接 Boolean(value) 定义:其他类型转布尔类型 六大假值:false,undefined,null,NaN,0…...

Python常见的数据类型

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放&#xff0…...

前端缓存策略:让你的应用飞起来

前端缓存策略:让你的应用飞起来 一、引言 又到了我这个毒舌工匠上线的时间了!今天咱们来聊聊前端缓存策略这个话题。别以为缓存只是后端的事情,前端缓存同样重要。一个好的缓存策略能够大大提高应用的性能和用户体验,让你的应用飞…...

TCP 是用来解决什么问题:从 IP 的不可靠到可靠的端到端通信

TCP 是用来解决什么问题:从 IP 的不可靠到可靠的端到端通信01. 前言:为什么有了 IP 还不够?02. IP 协议的四大先天缺陷03. TCP 要解决的六大核心问题04. 问题一:丢包 → 确认 超时重传4.1 问题描述4.2 TCP 的解决方案05. 问题二&…...

AI for Science 之数论:当人工智能叩响数学王冠的大门

AI for Science 之数论:当人工智能叩响数学王冠的大门 引言 数论,被誉为“数学的皇冠”,以其问题的纯粹与结论的深刻,吸引着从欧几里得到高斯的无数智者。它研究整数的性质,是数学中最古老、最基础的分支之一。如今&…...

告别硬编码:用SqlSugar Expression动态构建多条件Left Join查询(附分页技巧)

告别硬编码:用SqlSugar Expression动态构建多条件Left Join查询(附分页技巧) 在后台管理系统开发中,数据列表查询是最常见的需求之一。面对复杂的多表关联、动态筛选条件和分页需求,很多开发者会陷入字符串拼接SQL的泥…...

Claude Code 进阶攻略:搞定内置 /loop,用大白话玩转 Cron,一行搞定自动化任务

每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型! 本文写给:天天跟 Claude Code 打交道的程序员们,教你把那些烦人的监控活儿从“肉眼盯着”变成“系统自动报”。 等代码构建的时候,你通常在干嘛&…...

TVA在汽车零部件焊接点检测中的实操启示录(3)

TVA系统在汽车零部件焊接点检测的落地,并非简单的“设备安装调试”,而是一个涉及流程优化、人员适配、技术衔接的系统工程。不少企业技术主管因忽视落地全流程管控,出现“系统安装后无法正常运行”“员工不会操作”“检测流程与生产流程脱节”…...

当“过杀率”飙升时,现场工程师该如何向AI“施压”?

产线正在满负荷运转,AI智能体视觉检测系统(TVA)突然开始把大量合格的螺母件剔除。操作工抱怨连连,生产厂长在后面催。你打电话给供应商,对方说“回去调一下模型,明天发版”。这一等就是一天,产线…...

手把手教你用王思鱼指纹浏览器(Windows版)绕过主流检测站点

实战指南:Windows指纹浏览器配置与主流检测站点绕过验证 指纹浏览器正逐渐成为数字身份管理领域的重要工具,它能有效解决多账号运营、隐私保护等场景下的浏览器指纹追踪问题。不同于传统虚拟机的笨重方案,这类工具通过精准修改浏览器底层参数…...

魔兽争霸3 Windows 11兼容性终极解决方案:让你的经典游戏重获新生

魔兽争霸3 Windows 11兼容性终极解决方案:让你的经典游戏重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在Windo…...

OpenClaw 对接微信机器人配置全教程:从 0 到 1 搭建个人 AI 助手

一、前言 本文基于 OpenClaw v2.6.0 Windows 一键部署包,详细拆解微信渠道的完整配置流程,全程可视化操作,新手也能跟着一步步完成。 二、前置准备 下载安装包:下载 OpenClaw Windows 一键部署包 注意一一定下载2.60版本&#x…...