CN102200963A - 一种用于音频解码的定点修正离散余弦反变换的方法 - Google Patents

一种用于音频解码的定点修正离散余弦反变换的方法 Download PDF

Info

Publication number
CN102200963A
CN102200963A CN2010106083349A CN201010608334A CN102200963A CN 102200963 A CN102200963 A CN 102200963A CN 2010106083349 A CN2010106083349 A CN 2010106083349A CN 201010608334 A CN201010608334 A CN 201010608334A CN 102200963 A CN102200963 A CN 102200963A
Authority
CN
China
Prior art keywords
overlap
bit
fixed point
value
discrete cosine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010106083349A
Other languages
English (en)
Other versions
CN102200963B (zh
Inventor
赵颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI MVSILICON INTEGRATED CIRCUIT CO Ltd
Original Assignee
SHANGHAI MVSILICON INTEGRATED CIRCUIT CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI MVSILICON INTEGRATED CIRCUIT CO Ltd filed Critical SHANGHAI MVSILICON INTEGRATED CIRCUIT CO Ltd
Priority to CN2010106083349A priority Critical patent/CN102200963B/zh
Publication of CN102200963A publication Critical patent/CN102200963A/zh
Application granted granted Critical
Publication of CN102200963B publication Critical patent/CN102200963B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种用于音频解码的定点修正离散余弦反变换的方法,包括以下步骤:步骤一,对Lbit的输入数据xr[N]做IMDCT处理;步骤二,利用Pbit的修正数据overlap_in[N]对经IMDCT处理后的数据进行加窗及叠加处理,最后输出Lbit的数据sample[N]和Lbit的更新的修正数据overlap_out[N],其中L与P均为正整数,且L>P;步骤三,测得所述Lbit的更新的修正数据overlap_out[N]的N个值中的最大溢出位为K,其中K<P;步骤四,将Lbitoverlap_out[N]按照K缩减为P位存储,定点存储格式为(1+K).(P-K-1)。本发明可以在有效降低存储要求的同时维持高精度输出。

Description

一种用于音频解码的定点修正离散余弦反变换的方法
技术领域
本发明属于计算机技术领域,涉及一种用于音频解码的定点修正离散余弦反变换的方法。
背景技术
修正离散余弦反变换(IMDCT)在音视频信号编码中已得到广泛地应用,但其计算量很大,因此其快速算法在实时编码系统中显得尤为重要。在MP3,WMA,AAC(MP4)等主流音频解码方案中,修正离散余弦反变换(IMDCT)模块也是一种普遍使用的模块。对于其具体的软硬件实现,除了简单按照其原始公式来运算外,通常还有相应的快速算法。为了保证最终音频解码输出的PCM值的精度(通常为16位比特),IMDCT的输入输出及其中间结果一般都使用更高的比特数来存储。譬如将目前较常用的纯24位或者纯32位比特数作为数据的存储位宽,如图1和图2所示。
图1中,输入数据xr[N]经过IMDCT处理后,再与修正数据overlap_in[N]经加窗及叠加处理,最后输出数据sample[N]和更新的修正数据overlap_out[N]。在整个运算过程中,所有的数据的存储位宽均为纯24位比特数。
图2中,输入数据xr[N]经过IMDCT处理后,再与修正数据overlap_in[N]经加窗及叠加处理,最后输出数据sample[N]和更新的修正数据overlap_out[N]。在整个运算过程中,所有的数据的存储位宽均为纯32位比特数。
事实上对于很多软件解码实现来说,由于主流CPU或者DSP的处理单元通常为16位或者32位而没有特别的24位处理单元,为了保证16位精度的PCM输出正常,IMDCT通常以32位进行计算和数据存储。典型的例子如著名的MP3开源软件LIBMAD,即如图2所示。无论是以24位还是32位来存储,现有IMDCT的计算和数据存储方法的一个特点是:其输入、输出以及中间结果都使用统一的比特数,即要么全部是24位,要么全部是32位。其存在的缺陷是:不能灵活利用存储资源,计算量大。
发明内容
本发明所要解决的技术问题是:提供一种用于音频解码的定点修正离散余弦反变换的方法,该方法能在确保最终PCM输出的高精度的同时降低存储资源的消耗。
为解决上述技术问题,本发明采用如下技术方案。
一种用于音频解码的定点修正离散余弦反变换的方法,包括以下步骤:
步骤一,对L bit的输入数据xr[N]做IMDCT处理;
步骤二,利用P bit的修正数据overlap_in[N]对经IMDCT处理后的数据进行加窗及叠加处理,最后输出L bit的数据sample[N]和L bit的更新的修正数据overlap_out[N],其中L与P均为正整数,且L>P;
步骤三,测得所述L bit的更新的修正数据overlap_out[N]的N个值中的最大溢出位为K,其中K<P;
步骤四,将L bit overlap_out[N]按照K缩减为P位存储,定点存储格式为(1+K).(P-K-1);
步骤五,将当前帧的更新的修正数据overlap_out[N]作为下一帧的修正数据overlap_in[N],重复步骤一;所述K为当前帧的更新的修正数据overlap_out[N]中N个数里最大的溢出比特数;K的取值随帧的变化而变化。
作为本发明的一种优选方案,当K大于等于0小于等于M时,所述定点存储格式在1.(P-1)~(1+M).(P-M-1)范围内动态变化,其中M<P。
作为本发明的另一种优选方案,所述L的值为32,P的值为16,K大于等于0小于等于3,overlap_out的定点化格式在1.15~4.12范围内动态变化。
作为本发明的再一种优选方案,所述L的值为24,P的值为16,K大于等于0小于等于3,overlap_out的定点化格式在1.15~4.12范围内动态变化。
作为本发明的再一种优选方案,所述L的值为16,P的值为8,K大于等于0小于等于3,overlap_out的定点化格式在1.7~4.4范围内动态变化。
作为本发明的再一种优选方案,所述L的值为24,P的值为8,K大于等于0小于等于3,overlap_out的定点化格式在1.7~4.4范围内动态变化。
本发明的有益效果在于:本发明所述方法通过将overlap数据由高位宽改为低位宽存储,有效降低了存储要求;并通过检测overlap的最大溢出比特数,让低位宽存储的overlap能够动态使用,尽可能最大的定点化精度,保证了最终PCM输出的高精度。
附图说明
图1为现有的纯24位IMDCT的计算和数据存储的方法流程图;
图2为现有的纯32位IMDCT的计算和数据存储的方法流程图;
图3为实施例一所述的用于音频解码的定点修正离散余弦反变换的方法流程图;
图4为实施例二所述的用于音频解码的定点修正离散余弦反变换的方法流程图;
图5为实施例三所述的用于音频解码的定点修正离散余弦反变换的方法流程图;
图6为实施例四所述的用于音频解码的定点修正离散余弦反变换的方法流程图。
具体实施方式
在本发明中,overlap_in/overlap_out改由低位宽存储。由于overlap数组的长度跟xr一样,这样节省下来的存储用RAM将会相当可观。为了确保在降低存储要求的同时保证最终PCM输出的高精度,本发明将额外引入2比特的溢出标志K,以保证overlap存储的数据的动态范围得到合理表达。overlap_in和overlap_out在内存中共享同一块区域,即overlap区域既是IMDCT的输入也是IMDCT的输出。IMDCT在计算完成后将更新这一区域。以32位的存储为例,如果采用4.28格式作为定点化格式,即32位中的前4位表示整数部分(包括1比特符号位),后28位表示小数部分。由于最终PCM输出的值域范围只能在-1到1之间,任何超出部分都只能被截断,所以只要前4位中出现有效值,就表示数据已经溢出。不过由于IMDCT的计算中的中间数据可能需要溢出以保证最终输出的正确性,那么该4位即用来作为溢出保护。
当将IMDCT与加窗及叠加操作后的输出的overlap_out[N]由32位改为16位存储时,数据精度的损失将不可避免。其损失的大小,完全取决于16位的定点化格式。显而易见,1.15格式(1比特符号位+15位小数位)的损失最小,其表达的动态范围也最大(15位小数位),然而该格式将无任何比特数表达溢出情况。对于通常的音频编码系统来说,当前帧的overlap_out将作为下一帧的输入即下一帧的overlap_in。所以如果overlap_out中有值出现溢出的情况下,仍然用1.15格式表达的话,将在下一帧计算中出现严重失真。本发明充分考虑到这一情况,并使用K来记录当前帧的溢出情况,K将记录下overlap_out[N]中N个数里最大的溢出比特数。对于4.28格式的32位数据来说,其最大可能的溢出比特数为3,所以K用2bits表达就已经足够。这样,16位的overlap_out的真正定点化格式是动态的,也即根据其溢出情况,使用尽可能最大化的精度来表达,其表达格式如下:
(1+K).(15-K)
这样overlap_out的定点化格式将在1.15~4.12范围内动态变化。下面结合附图对本发明的具体实施方式作进一步详细说明。
实施例一
本实施例提供一种用于音频解码的定点修正离散余弦反变换的方法,如图3所示,包括以下步骤:
A1、对32bit的输入数据xr[N]做IMDCT处理;
A2、利用16bit的修正数据overlap_in[N]对经IMDCT处理后的数据进行加窗及叠加处理,最后输出32bit的数据sample[N]和32bit的更新的修正数据overlap_out[N];
A3、测得所述32bit的更新的修正数据overlap_out[N]的N个值中的最大溢出位为K,其中K<16;
A4、将32bit overlap_out[N]按照K缩减为16位存储,定点存储格式为(1+K).(15-K);其中overlap_out的定点化格式将在1.15~4.12范围内动态变化。
举例来说,如果K值为0,也即N个overlap_out值都没有发生溢出,那么overlap_out[N]将使用1.15格式存储;如果K值为1,那么overlap_out[N]将使用2.14格式存储;如果K值为2,那么overlap_out[N]将使用3.13格式存储;如果K值为3,也即overlap_out里有值发生了最大可能的溢出,那么overlap_out[N]将使用4.12格式存储,以保证下一帧数据的计算正常。例如4.12格式的overlap[N]中发生最大溢出的那个数是″0101.010101010101″,由于前4位中最大溢出位为3(加粗部分),那么K=3。
实施例二
本实施例与实施例一的区别在于,输入数据xr[N]和输出数据sample[N]均为纯24bit,如图4所示,包括以下步骤:
B1、对24bit的输入数据xr[N]做IMDCT处理;
B2、利用16bit的修正数据overlap_in[N]对经IMDCT处理后的数据进行加窗及叠加处理,最后输出24bit的数据sample[N]和24bit的更新的修正数据overlap_out[N];
B3、测得所述24bit的更新的修正数据overlap_out[N]的N个值中的最大溢出位为K,其中K<16;
B4、将24bit overlap_out[N]按照K缩减为16位存储,定点存储格式为(1+K).(15-K);其中overlap_out的定点化格式将在1.15~4.12范围内动态变化。
实施例三
本实施例与实施例一的区别在于,输入数据xr[N]和输出数据sample[N]均为纯16bit,修正数据overlap_in[N]为8bit,如图5所示,包括以下步骤:
C1、对16bit的输入数据xr[N]做IMDCT处理;
C2、利用8bit的修正数据overlap_in[N]对经IMDCT处理后的数据进行加窗及叠加处理,最后输出16bit的数据sample[N]和16bit的更新的修正数据overlap_out[N];
C3、测得所述16bit的更新的修正数据overlap_out[N]的N个值中的最大溢出位为K,其中K<8;
C4、将16bit overlap_out[N]按照K缩减为8位存储,定点存储格式为(1+K).(7-K);其中overlap_out的定点化格式将在1.7~4.4范围内动态变化。
实施例四
本实施例与实施例二的区别在于,修正数据overlap_in[N]位8bit,如图6所示,包括以下步骤:
D1、对24bit的输入数据xr[N]做IMDCT处理;
D2、利用8bit的修正数据overlap_in[N]对经IMDCT处理后的数据进行加窗及叠加处理,最后输出24bit的数据sample[N]和24bit的更新的修正数据overlap_out[N];
D3、测得所述24bit的更新的修正数据overlap_out[N]的N个值中的最大溢出位为K,其中K<8;
D4、将24bit overlap_out[N]按照K缩减为8位存储,定点存储格式为(1+K).(7-K);其中overlap_out的定点化格式将在1.7~4.4范围内动态变化。
本发明针对音频解码中的IMDCT模块,提出了一种用于音频解码的定点修正离散余弦反变换的方法,该方法能够降低存储要求且维持高精度输出,该方法具有如下优点:
1、通过将overlap数据由高位宽(32位/24位)改为低位宽(16位)存储,有效降低了存储要求,节省了生产成本;
2、通过检测overlap的最大溢出比特数,能让低位宽(16位)存储的overlap动态使用尽可能最大的定点化精度,保证了最终PCM输出的高精度要求;
3、本发明与实现IMDCT的具体算法和长度(N)无关,也即无论IMDCT采用何种算法,何种长度,本发明都可以在有效降低存储要求的同时维持高精度输出;
4、本发明充分考虑到当前主流的CPU或者DSP的数据处理位宽,不需要使用非标准的比特位宽。
本发明中建议的低存储位宽(16位)并非唯一,可以根据具体方案自由选择位宽,以取得输出精度和存储要求之间的最优平衡,如实施例二至四。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其他形式、结构、布置、比例,以及用其他元件、材料和部件来实现。

Claims (7)

1.一种用于音频解码的定点修正离散余弦反变换的方法,其特征在于,包括以下步骤:
步骤一,对L bit的输入数据xr[N]做IMDCT处理;
步骤二,利用P bit的修正数据overlap_in[N]对经IMDCT处理后的数据进行加窗及叠加处理,最后输出L bit的数据sample[N]和L bit的更新的修正数据overlap_out[N],其中L与P均为正整数,且L>P;
步骤三,测得所述L bit的更新的修正数据overlap_out[N]的N个值中的最大溢出位为K,其中K<P;
步骤四,将L bit overlap_out[N]按照K缩减为P位存储,则定点存储格式为(1+K).(P-K-1)。
2.根据权利要求1所述的用于音频解码的定点修正离散余弦反变换的方法,其特征在于:所述方法还包括步骤五,将当前帧的更新的修正数据overlap_out[N]作为下一帧的修正数据overlap_in[N],重复步骤一;所述K为当前帧的更新的修正数据overlap_out[N]中N个数里最大的溢出比特数;K的取值随帧的变化而变化。
3.根据权利要求2所述的用于音频解码的定点修正离散余弦反变换的方法,其特征在于:当K大于等于0小于等于M时,所述定点存储格式在1.(P-1)~(1+M).(P-M-1)范围内动态变化,其中M<P。
4.根据权利要求3所述的用于音频解码的定点修正离散余弦反变换的方法,其特征在于:所述L的值为32,P的值为16,K大于等于0小于等于3,overlap_out的定点化格式在1.15~4.12范围内动态变化。
5.根据权利要求3所述的用于音频解码的定点修正离散余弦反变换的方法,其特征在于:所述L的值为24,P的值为16,K大于等于0小于等于3,overlap_out的定点化格式在1.15~4.12范围内动态变化。
6.根据权利要求3所述的用于音频解码的定点修正离散余弦反变换的方法,其特征在于:所述L的值为16,P的值为8,K大于等于0小于等于3,overlap_out的定点化格式在1.7~4.4范围内动态变化。
7.根据权利要求3所述的用于音频解码的定点修正离散余弦反变换的方法,其特征在于:所述L的值为24,P的值为8,K大于等于0小于等于3,overlap_out的定点化格式在1.7~4.4范围内动态变化。
CN2010106083349A 2010-12-28 2010-12-28 一种用于音频解码的定点修正离散余弦反变换imdct的方法 Active CN102200963B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010106083349A CN102200963B (zh) 2010-12-28 2010-12-28 一种用于音频解码的定点修正离散余弦反变换imdct的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010106083349A CN102200963B (zh) 2010-12-28 2010-12-28 一种用于音频解码的定点修正离散余弦反变换imdct的方法

Publications (2)

Publication Number Publication Date
CN102200963A true CN102200963A (zh) 2011-09-28
CN102200963B CN102200963B (zh) 2013-06-19

Family

ID=44661649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010106083349A Active CN102200963B (zh) 2010-12-28 2010-12-28 一种用于音频解码的定点修正离散余弦反变换imdct的方法

Country Status (1)

Country Link
CN (1) CN102200963B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6209015B1 (en) * 1996-11-20 2001-03-27 Samsung Electronics Co., Ltd. Method of implementing dual-mode audio decorder and filter therefor
CN101047849A (zh) * 2006-03-28 2007-10-03 华为技术有限公司 离散余弦逆变换方法及其装置
US7418396B2 (en) * 2003-10-14 2008-08-26 Broadcom Corporation Reduced memory implementation technique of filterbank and block switching for real-time audio applications
CN101282476A (zh) * 2007-07-29 2008-10-08 浙江大学 应用于视频和图像处理的变换方法
WO2009100021A2 (en) * 2008-02-01 2009-08-13 Lehigh University Bilinear algorithms and vlsi implementations of forward and inverse mdct with applications to mp3 audio
CN101588341A (zh) * 2008-05-22 2009-11-25 华为技术有限公司 一种丢帧隐藏的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6209015B1 (en) * 1996-11-20 2001-03-27 Samsung Electronics Co., Ltd. Method of implementing dual-mode audio decorder and filter therefor
US7418396B2 (en) * 2003-10-14 2008-08-26 Broadcom Corporation Reduced memory implementation technique of filterbank and block switching for real-time audio applications
CN101047849A (zh) * 2006-03-28 2007-10-03 华为技术有限公司 离散余弦逆变换方法及其装置
CN101282476A (zh) * 2007-07-29 2008-10-08 浙江大学 应用于视频和图像处理的变换方法
WO2009100021A2 (en) * 2008-02-01 2009-08-13 Lehigh University Bilinear algorithms and vlsi implementations of forward and inverse mdct with applications to mp3 audio
CN101588341A (zh) * 2008-05-22 2009-11-25 华为技术有限公司 一种丢帧隐藏的方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
张祎然 等: "OggVorbis音频解码中IMDCT的优化", 《电声技术》 *
王文卿 等: "杜比AC_3的MDCT算法分析及定点仿真", 《计算机仿真》 *
陈建寿 等: "MP3解码的IMDCT优化算法", 《信息安全与通信保密》 *

Also Published As

Publication number Publication date
CN102200963B (zh) 2013-06-19

Similar Documents

Publication Publication Date Title
CN101796578B (zh) 用于语音和音频译码应用的mdct/imdct滤波器组的有效设计
US10224956B2 (en) Method and apparatus for hybrid compression processing for high levels of compression
CN101261575B (zh) 一种实现不等宽数据传输的异步先进先出存储器及方法
CN102339641A (zh) 检错/纠错校验模块及该模块读写数据的方法
CN111181569B (zh) 一种时序数据的压缩方法、装置以及设备
US20150363456A1 (en) Hierarchical database compression and query processing
US20150331799A1 (en) Pre-decoding analysis based configuration information cache management method and system
CN109981111A (zh) 一种数据压缩编码的方法、装置及存储电子设备
CN104011663A (zh) 掩码寄存器上的广播操作
CN104246692A (zh) 用于实时指令跟踪的系统和方法
CN102591787B (zh) Java卡的数据处理方法及装置
KR102613282B1 (ko) 디지털 오디오 신호들에서의 가변 알파벳 크기
CN102262611B (zh) 一种16位的risc cpu系统结构
CN101025919B (zh) 音频解码中的合成子带滤波方法和合成子带滤波器
CN101741391B (zh) 在定点dsp进行mp3音频解码时优化内存空间的方法
CN102200963B (zh) 一种用于音频解码的定点修正离散余弦反变换imdct的方法
KR20070015789A (ko) 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법
CN103955585B (zh) 一种适用于低功耗容错电路的fir滤波器结构
CN111124490A (zh) 使用posit的无精度损失低功耗mfcc提取加速器
TW201712530A (zh) 用於改善狀態相依計算效能的系統、方法和設備
CN103293373B (zh) 电能计量装置及其电能计量芯片
US6766440B1 (en) Microprocessor with conditional cross path stall to minimize CPU cycle time length
CN103399727A (zh) 硬件整数饱和侦测器、侦测饱和的方法及其硬件装置
CN111147082B (zh) 一种证券交易数据压缩方法及装置
CN101916586A (zh) 多端口寄存器堆电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 201203. 602, 603, building 2, 112 Liang Xiu Road, Zhangjiang hi tech park, Shanghai

Applicant after: Shanghai Mountain View Silicon Co., Ltd.

Address before: 200135, A building, block 1518, Golden Eagle building, No. 403 Minsheng Road, Shanghai, Pudong New Area

Applicant before: Shanghai Mvsilicon Integrated Circuit Co., Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SHANJING CIRCUIT TECH CO., LTD., SHANGHAI TO: SHANGHAI SHANJING INTEGRATED CIRCUITS CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant