EAC3基于hebap来决定mantissa的quantizer. hebap如下:

mantissa 使用VQ(vector quantization) 和GAQ(gain adaptive quantization)进行编码。

1)VQ

对于AHT process, 每个block中的第k个spectral bin的mantissa组合在一起(共6个mantissa)形成一个6维的vector.

如果使用AHT,并且bit allocation pointer在1~7之间,就使用VQ来编码mantissa.

如果一组mantissa(共6个mantissa)使用VQ的话,在bitstream中存在一个N bit的index,用来查找一个6维的vector table,在vector table中的每个value是16 bit有符号的数。

如hebap为1时,N等于2。

在encoder端选择最优的vector,使得vector与实际的mantissa vector的Euclidean distance最小。那么在encoder端只需要transmit 最优vector的index.

在decoder端读出bitstream中的index,使用vector table中index对用的vector来作为mantissa.

2)GAQ

GAQ使用variable-length codewords来quantize mantissa.

在encoder端,在一个DCT block内的一个或多个经常出现的smaller transform coefficient mantissa条件性的进行gain amplify,并使用较短的codewords来描述这样的smaller mantissa.

larger transform coefficient mantissa则不进行gain amplify.由于larger mantissa在audio signal中不是经常出现,所以使用较长的codewords来描述。

在encoder选择gain,每6个GAQ coded DCT block,gain和mantissa codeword作为side info来transmit.

在decoder端首先unpack gain,并用gain来reconstruct 每个单独的transform coefficient mantissa.在decoder,对smaller mantissa乘以一个attenuation factor, gain factor并不作用于larger mantissa.

GAQ dequantization 如下图:

Deformatter 使用hebap来决定当前(第k个)DCT block中的6个mantissa是否使用GAQ编码。

Deformatter对gaqgain处理产生一个gain attenuation element, 每个gain attenuation element对应每个DCT mantissa block。

Bitstream中使用一个unique identifier tag来表示是否是larger mantissa.

如果某个channel使用AHT,那么在bitstream中的每个frame包含一个2 bit的参数gaqmod。

如果gaqmod = 0, GAQ没有使用,并且在bitstream中没有gain。

如果gaqmod =1、2,使用1bit来标识gain value.gain value作用于每个DCT block.

如果gaqmod =3, 使用5bit来group 3个gain value.grpgain表示5 bit group value, M1,M2,M3表示gain的map value.

M1 = truncate (grpgain / 9)
M2 = truncate ((grpgain % 9) / 3)
M3 = (grpgain % 9) % 3

如果gain为1,或者没有gain value,那么没有标识large mantissa的tag,只是一个quantizer.

如果gain为2 or 4,那么decoder根据Table E3.5解码large 和small mantissa.large & small mantissa是2进制补码表示的有符号浮点型数据。

m表示mantissa 的bit数,从hebap中得到。

由于large mantissa使用dead-zone quantizer, 需要将large mantissa codeword remap成mantissa.

remap的公式为:y = x + ax + b(x表示mantissa codeword)

EAC3 mantissa quantization(VQ & GAQ)的更多相关文章

  1. AC3 mantissa quantization and decoding

    1.overview 所有的mantissa被quantize到固定精确度的level(有相应的bap标识)上,level小于等于15时,使用symmetric quantization.level大 ...

  2. machine learning学习笔记

    看到Max Welling教授主页上有不少学习notes,收藏一下吧,其最近出版了一本书呢还,还没看过. http://www.ics.uci.edu/~welling/classnotes/clas ...

  3. Approximate Nearest Neighbors.接近最近邻搜索

    (一):次优最近邻:http://en.wikipedia.org/wiki/Nearest_neighbor_search 有少量修改:如有疑问,请看链接原文.....1.Survey:Neares ...

  4. RGB-D action recognition using linear coding

    First, a depth spatial-temporal descriptor is developed to extract the interested local regions in d ...

  5. Text Prompted Remote Speaker Authentication : Joint Speech and Speaker Recognition/Verification System :: Major Project ::: Introduction

    转载自:http://ganeshtiwaridotcomdotnp.blogspot.com/2010/12/text-prompted-remote-speaker.html Biometrics ...

  6. Speech Recognition Java Code - HMM VQ MFCC ( Hidden markov model, Vector Quantization and Mel Filter Cepstral Coefficient)

    Hi everyone,I have shared speech recognition code inhttps://github.com/gtiwari333/speech-recognition ...

  7. 语音信号处理之(三)矢量量化(Vector Quantization)

    语音信号处理之(三)矢量量化(Vector Quantization) zouxy09@qq.com http://blog.csdn.net/zouxy09 这学期有<语音信号处理>这门 ...

  8. 矢量量化(VQ)

    作者:桂. 时间:2017-05-31  21:14:56 链接:http://www.cnblogs.com/xingshansi/p/6925955.html 前言 VQ(Vector Quant ...

  9. 漫谈 Clustering (番外篇): Vector Quantization

    在接下去说其他的聚类算法之前,让我们先插进来说一说一个有点跑题的东西:Vector Quantization.这项技术广泛地用在信号处理以及数据压缩等领域.事实上,在 JPEG 和 MPEG-4 等多 ...

随机推荐

  1. 使用mininet创建网络拓扑,使ryu、ovs、主机连接

    实验拓扑 控制器:RYU 交换机:s1,s2 主机:h1,h2,h3,h3 联通性(直连): h1<->s1;h2<->s1 h3<->s2;h4<-> ...

  2. NOI Online能力测试游记:退役选手的自娱自乐

    2020年2月17日早上8点,CCF发布了关于举办NOI Online能力测试的通知. 为给选手提供一个锻炼的机会,CCF拟举办一场NOI Online能力测试.测试分为入门组和提高组,每组限额报名3 ...

  3. Flutter简易顶部导航

    因为在AppBar的bottom参数中返回TabBar在平板模式的对齐模式是居中的且不可调整,所有将TabBar在title中返回 import 'package:flutter/material.d ...

  4. Qt 程序打包发布总结 转

    1.  概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...

  5. 【已解决】[求助] 求虚拟机防检测代码-VM虚拟机防游戏检测(虚拟机躲避游戏检测工具)

    [已解决][求助] 求虚拟机防检测代码 虚拟机如何躲过游戏等软件的检测,并能用vmware tools: 先把vmtools安装好后!   然后用这代码 monitor_control.restric ...

  6. [ZJOI2009] 狼与羊的故事 - 最小割

    给定一个\(N \times M\)方格矩阵,每个格子可在\(0,1,2\)中取值.要求在方格的边上进行划分,使得任意联通块内不同时包含\(1\)和\(2\)的格子. ________________ ...

  7. vue报错 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's

    [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent c ...

  8. 2个月,我从编程小白成为了Python研发工程师

    从编程小白,到Python研发工程师,需要多久呢? 答案就是:91门课,450个小时. 听起来似乎难以实现,但其实如果每天抽出八小时学习,两个月的时间,就能由编程小白转变成为Python工程师,听起来 ...

  9. STL-vector-set_difference B - 人见人爱A-B

    B - 人见人爱A-B 参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算.(当然,大 ...

  10. Appium连接模拟器

    Appnium 环境搭建 覆盖文件 将SDK中platform-tools目录下的这三个文件 复制到模拟安装路径bin目录下,覆盖原有的这三个文件 adb命令 开启服务 adb start-serve ...