实时音频编解码之十五 Opus编码-CELT编码

2023-10-26

本文谢绝任何形式转载,谢谢。

4.3.1 基频预滤波

对预加重之后信号预滤波,其和解码器的后滤波相反,基频周期搜索应根据以下标准优化:

1.连续性,对于连续帧,基频周期通常不会突变;

2.避免基频倍数,当使用的周期是实际周期的倍数时,后滤波器失去了大部分降低噪声的能力。

4.3.2 带宽和归一化

最小帧长为2.5ms,其他为2.5ms倍数,这些帧信号经过MDCT后输出分为多个频带,这些频带和耳朵的听觉灵敏度相匹配,编码器计算各个频带的,各频带能量使用为量化能量的均方根归一化,能量的计算和归一化分别实现于ompute_band_energies() 函数和normalise_bands() 函数(bands.c)。

4.3.3 能量包络归一化

能量量化包括粗量化和细量化两种类型,对于所有有用的比特率,粗量化选择使每个频带误差最小化的量化的对数能量。只有在非常低的比特率下,编码器才可能允许更大的误差以最大限度降低编码比特率,在CPU算力允许条件下,可以使用带帧间预测和不带帧间预测两种方式编码粗粒度能量以便选择最佳的预测模式。最佳的编码模式取决于编码帧长、编码比特率以及当前丢包率。

由于细粒度能量量化只取决于编码比特率而非编码信号,因而细粒度能量量化总是选择使每个频带误差最小化的量化的对数能量。

4.3.4 比特分配

有三种用于调节编码端帧间比特率的机制,分别是频带增强(band boost)、比特位分配微调(allocation trim)以及频带舍弃(band skipping)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实时音频编解码之十五 Opus编码-CELT编码 的相关文章

随机推荐

  • 20171010离线赛总结

    题解 第一题 字符连通块 这道题还是比较好想的 首先把每个连通块标记出来 并用第一次扫到的点标记为这个连通块的父节点 接下来要做的就是把一个 周围的连通块连通起来 不过要注意一点 在连通标记的时候不要用memset memset的复杂度是m
  • Windows端CUDA11.3+CUDNN+pytorch环境搭建

    1 显卡驱动的安装 最近 在学习pytorch深度学习 遇到很多的坑 环境配置也出现过问题 忍不住和大家进行分享 现在把环境搭建过程分享给大家 1 1 查看自己的显卡 具体操作 我的电脑 属性 设备管理器 显示适配器 1 2 驱动的下载 安
  • (c语言实现)算法笔记之bfs及pta习题

    目录 一 bfs 广度优先搜索 的定义 二 bfs 广度优先搜索 的应用 三 题型训练 1 奇怪的电梯 2 寻宝 3 龙舌兰酒吧 四 总结 一 bfs 广度优先搜索 的定义 BFS 全称是 Breadth First Search 中文名是
  • 基于XMPP协议的Android即时通信系

    以前做过一个基于XMPP协议的聊天社交软件 总结了一下 发出来 设计基于开源的XMPP即时通信协议 采用C S体系结构 通过GPRS无线网络用TCP协议连接到服务器 以架设开源的Openfn e服务器作为即时通讯平台 系统主要由以下部分组成
  • react-router 里的 Link 标签和 a 标签有什么区别?

    相同点 从最终渲染的 DOM 来看 这两者都是链接 都是 a 标签 区别 是 react router 里实现路由跳转的链接 一般配合 a
  • 【代码记录】pytorch推理及与onnx推理精度对比

    1 pytorch推理 import cv2 import sys import numpy as np import torch os from torch import nn import torchvision models as m
  • 子串/子段问题总结

    1 一般子串问题 求一个串中满足某种条件的子串 1 如果所求子串的条件是一个值 比如sum 则考虑子段问题 注意这样一个性质 子段 前缀差 子段和 前缀和的差 vector
  • 4.3 链码的其它操作:实现对链码的打包升级

    目标 实现如何对链码打包签名 链码升级的实现 任务实现 链码部署除了正常的安装 实例化操作步骤之外 还有一种部署方式 即先将链码进行打包 然后对已打包的文件进行签名 最后再进行安装与实例的操作 4 3 1 链码打包及签名 4 3 1 1 打
  • final-期末大作业-制作AR射箭小游戏(Unity AR配置详细教程)

    要求 大作业要求 制作一款特定技术应用小游戏 并提交技术报告 内容 请参考以下技术主题 但不限于这些主题 运用手机拍若干全景图 贴到天空盒或球型天空 做一个简单校园漫游功能 粒子系统效果制作 必须带一个控制组件 控制粒子呈现效果 UI系统制
  • mysql 扁平结构设计_数组扁平化

    TOC 简介 数组的扁平化 就是将一个嵌套多层的数组 array 嵌套可以是任何层数 转换为只有一层的数组 举个例子 假设有个名为 flatten 的函数可以做到数组扁平化 效果就会如下 js var arr 1 2 3 4 console
  • Pycharm常用快捷键大全,初学友好,不怕记不住

    初来乍到 我是爱摸鱼的芝士呐 一 pycharm的简单介绍 字多可以跳过 pycharm是全宇宙最适合Python的编辑器 没有之一 个人见解勿杠杠就是你对 虽然看似全是英文 对于英语不好的小伙伴不友好 但是 不管是代码还是菜单栏 都有翻译
  • 照片转换为超声图像(MATLAB仿真)

    照片转换为超声图像 MATLAB 仿真实现 任意选取一张照片转换为超声图像 1 选取一张照片 2 将照片转换为散射点 3 进行超声成像仿真
  • Echarts formatter

    提示框浮层内容格式器 支持字符串模板和回调函数两种形式 回调函数 params Object Array ticket string callback ticket string html string gt string HTMLElem
  • 威纶通定时循环操作宏_威纶通触摸屏宏指令的使用

    工控多年的公众号运营者 我经常分享原创技术内容 内容涉及到工业多个方面 分享新知识带你一起进步 今天看到一个例程 想再写一下威纶通触摸屏宏指令的使用 之前有分享过一篇有关威纶通关于宏指令使用的文章 那篇文章的宏只用过 GetData 指令
  • iis多进程下的全局变量_python下多线程的限制以及多进程中传递参数的方式!不来瞅瞅?...

    欢迎各位小哥哥小姐姐阅读本的文章 对大家学习有帮助 请点赞加关注哦 您的点赞和关注将是我持续更新的动力呢 v 有不懂的问题可以私聊我哦 python下多线程的限制以及多进程中传递参数的方式 python多线程有个全局解释器锁 global
  • C#桌面程序无法调试以及无法查看变量的解决办法

    作者 朱金灿 来源 clever101的专栏 为什么大多数人学不会人工智能编程 gt gt gt 一 问题描述 最近在调试一个C 桌面程序 总是无法进入调试状态 后来能进入调试状态了 却无法查看程序变量的值 二 问题解决过程 经过搜索网上资
  • python 中wheel 安装_python中wheel的用法整理

    Python的第一个主流打包格式是 egg文件 现在大家庭中又有了一个叫做Wheel whl 的新成员 wheel 被设计成包含PEP 376兼容安装 一种非常接近于磁盘上的格式 的所有文件 在本文中 我们将学习如何创建一个wheel以及如
  • linux 命令行报bash command not found的解决办法

    命令行报bash command not found的解决办法 几乎所有命令 命令行输入命令执行后报 bash command not found 这是由于系统PATH设置问题 PATH没有设置对 系统就无法找到精确命令了 1 在命令行中输
  • Nginx 返回自定义 text 或 json

    叙述 有些时候请求某些接口的时候需要返回指定的文本字符串或者json字符串 如果逻辑非常简单或者干脆是固定的字符串 那么可以使用nginx快速实现 这样就不用编写程序响应请求了 可以减少服务器资源占用并且响应性能非常快 解决方案 固定文本
  • 实时音频编解码之十五 Opus编码-CELT编码

    本文谢绝任何形式转载 谢谢 4 3 1 基频预滤波 对预加重之后信号预滤波 其和解码器的后滤波相反 基频周期搜索应根据以下标准优化 1 连续性 对于连续帧 基频周期通常不会突变 2 避免基频倍数 当使用的周期是实际周期的倍数时 后滤波器失去