AC3 bit allocation
1.bit allocation overview
bit allocation通过分析audio 信号的频谱envelop,使用masking effect来确定使用多少bit来表示频率系数的mantissa.
bit allocation包含人耳的parameter model 来预估noise level thresold, 人耳的parameter model将audible和inaudible的频谱部分分开。
hearing model的parameter在encoder端基于信号的特征进行调整。例如,prototype masking curve可以简单的以两个线段表示,每个线段有自己的斜率和y轴相交的点。encoder从几个合适的线段中不断的迭代选择最佳的线段来表示prototype masking curve,这样的线段可以作为parameter压在bitstream中。
noise level threshold的预估是基于50个nonuniform bandwidth计算,不同的采样率具有不同的band structure.
mantissa的bit数是通过计算PSD与预估noise level threshold的差值,进行查表得到。
2. bit allocation
1) initialize.
计算起始和截止频率。
通过码流中的parameter,查表确定描述sdecay, fdecay,sgain,dbknee,floor的值,这些值可以描述prototype masking curve的相关信息。masking curve可以简化成两个线段,fast decay和slow decay部分,slow gain表示的是PSD的peak到fast decay相交点的差值。
fbw channel:
coupling channel:
lfe channel:
2).计算PSD:
将decode出来的exponent map成13 bit的PSD,每个频率点都计算一个PSD,所以计算出来的PSD是细粒度的.
exponent的范围为0~24,PSD的范围为0~3272.0表示lowest level signal, 3272表示highest level signal.
3)PSD integration:
将256个频率点分为50个band,对每个band内的PSD 进行integration.
band structure如下,bandtab表示当前band中第一个mantissa(or频率系数)的index,bandsz表示当前band中有多少个mantissa。
每个mantissa可以map到对应的band中,masktab描述了这种map关系。
PSD integration采用log-addition的在每个band内进行,log-additon的结果是先计算两个参数的差值,然后用差值查表latab得到:
4) 计算exciting function
利用encode选择的prototype masking curve(从bitstream中解码出来)和integrated PSD计算exicting fuction,计算的结果是integrated PSD 减去fgain or sgain.
计算过程如下:
其中sdecay表示prototye masking curve的slow decay线段每个band衰减的值,通过bitstream中的信息查表获得.
当前band的PSD的幅值减去slow decay线段与当前PSD的交点的幅值即为sgain。因此sgain和sdecay就可以描述slow decay线段。
5)计算masking curve.
根据exciting function和人耳听觉threshold计算masking (noise level threshold) curve,即取exciting function和人耳听觉threshold的较大值作为noise level threshold.
6)计算bit allocation
masking curve首先根据snroffset做调整后,用细粒度的PSD减去masking curver的差值左移5 bit的结果查找baptab得到bap。
在一个frame内的所有channel的mantissa的bit allocation受限于encoder端,在encoder基于csnroffset,fsnroffset通过不断迭代产生合适的结果以保证在decoder接收到的bit allocation 满足固定的bitrate.
bap是一个数组,包含一系列4bit的pointer,标识每个mantissa的bit数。
转载于:https://www.cnblogs.com/fellow1988/p/8810959.html
AC3 bit allocation相关推荐
- AC3 encoder flow
AC3 encoder flow 如下: 1.input PCM PCM在进入encoder前会使用high pass filter来移除信号的DC部分来达到更有效的编码. 2.Transient d ...
- AC3 overview
1.AC3 encode overview AC3 encoder的框图如下: AC3在频域采用粗量化(coarsely quantizing)来获取较高的压缩率. 1).输入PCM 经过MDCT变换 ...
- 潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(三)
潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(三) 目录 潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(三) 主题演 ...
- 潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(二)
潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(二) 目录 潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(二) LDA ...
- 潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(一)
潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(一) 目录 潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(一) LDA ...
- SAP RETAIL 初阶之WA52 Allocation Rule List
SAP RETAIL 初阶之WA52 Allocation Rule List 在SAP零售系统中,分配规则的维护使用WA21/WA22等事务代码. 对于系统上已经存在的历史分配规则数据,WA52事务 ...
- SAP RETAIL WA01创建分配表报错- No allocation rule allowed for allocation strategies or variants-
SAP RETAIL WA01创建分配表报错- No allocation rule allowed for allocation strategies or variants- 1,执行事务代码WA ...
- SAP RETAIL 根据Allocation Rule去创建分配表
SAP RETAIL 根据Allocation Rule去创建分配表 1,执行事务代码WA21创建好了如下的allocation rule 1. 三个门店采购同一个商品时候的数量分配比例关系是5:2: ...
- Linux page allocation failure 的问题处理 - zone_reclaim_mode
标签 PostgreSQL , Linux , page allocation failure , 内存 背景 Linux内核分配失败,现象: 内存使用一定量后,HANG. dmesg中可能会有类似这 ...
最新文章
- 98后常春藤学霸林之秋,一作拿下CVPR最佳论文提名,首次挑战图片翻转不变性假设...
- 《OpenGL ES应用开发实践指南:Android卷》—— 2.2 不要从头开始
- 关于web服务器TIME_WAIT值高的问答
- 【每周CV论文推荐】 初学深度学习人脸属性分析必读的文章
- js数组中的引用类型
- 安卓 sqlite数据存入mysql_在Android上简单导出和导入SQLite数据库
- [bzoj 2726] 任务安排 (斜率优化 线性dp)
- 【华为敏捷/DevOps实践】2. Wiki凭什么持续得到开发人员和团队的喜爱
- Linux操作系统的权限代码分析【转】
- 机械自动化算不算计算机相关专业,机械设计制造及其自动化专业属于什么类别...
- 活动目录的灾难恢复操作指导之一
- asp.net执行js出现“已终止操作”的解决方法
- 关于c语言的诞生正确的是,C语言既然是这样诞生的,大家都不敢相信
- Python 技术篇-pyHook键盘鼠标监听事件,监测鼠标键盘按键实例演示
- SG90舵机的电路连接和驱动(树莓派)
- window xp共享文件夹
- 运放放大倍数计算公式_运算放大器基本电路大全(转)
- 计算机上u盘打不开,u盘在电脑上打不开怎么解决
- 免费不限流的内网穿透,外网共享内网文件
- 微电子新手入门之 Origin画图
热门文章
- 资源 | 机器学习、NLP、Python和Math最好的150余个教程(建议收藏)
- 为什么数据库连接池不采用 IO 多路复用?
- ELK 处理 Spring Boot 日志,妙!
- 小姐姐都能看懂的Happens-before规则,你还愣住了?
- 使用List中的remove方法遇到的坑,不信你没有踩过!
- 用Transformer实现OCR字符识别!
- 强烈推荐!最好用的《机器学习实用指南》第二版终于来了,代码已开源!
- 达观杯_构建模型(三)lightGBM
- 中科院自动化所17篇CVPR 2022 论文新作速览!
- 【武书连】2021 中国一流大学名单(30 所)和中国大学综合实力 700 强出炉!