CN118522296A - 有损编解码器和无损编解码器之间的切换方法和装置 - Google Patents
有损编解码器和无损编解码器之间的切换方法和装置 Download PDFInfo
- Publication number
- CN118522296A CN118522296A CN202310152315.7A CN202310152315A CN118522296A CN 118522296 A CN118522296 A CN 118522296A CN 202310152315 A CN202310152315 A CN 202310152315A CN 118522296 A CN118522296 A CN 118522296A
- Authority
- CN
- China
- Prior art keywords
- waveform
- current frame
- frame
- buffer
- lossless
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 268
- 239000000872 buffer Substances 0.000 claims abstract description 276
- 230000009466 transformation Effects 0.000 claims abstract description 156
- 230000008030 elimination Effects 0.000 claims abstract description 6
- 238000003379 elimination reaction Methods 0.000 claims abstract description 6
- 238000001228 spectrum Methods 0.000 claims description 135
- 238000012545 processing Methods 0.000 claims description 74
- 230000003595 spectral effect Effects 0.000 claims description 10
- 238000003874 inverse correlation nuclear magnetic resonance spectroscopy Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 239000000523 sample Substances 0.000 claims 1
- 230000008447 perception Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 141
- 230000000694 effects Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 230000008859 change Effects 0.000 description 10
- 238000007781 pre-processing Methods 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- OVOUKWFJRHALDD-UHFFFAOYSA-N 2-[2-(2-acetyloxyethoxy)ethoxy]ethyl acetate Chemical compound CC(=O)OCCOCCOCCOC(C)=O OVOUKWFJRHALDD-UHFFFAOYSA-N 0.000 description 4
- 101150036464 aptx gene Proteins 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 238000013144 data compression Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001939 inductive effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/0017—Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
- G10L19/24—Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种有损编解码器和无损编解码器之间的切换方法和装置,该方法包括:获取上一帧Ti‑1的波形,并将上一帧Ti‑1的波形更新到无损编解码器上输入帧缓存;上一帧Ti‑1的波形由有损编码器进行编码;对无损编码器缓存中的波形进行整数时域加窗混叠消除INT winTDAC,得到第一变换结果,并将第一变换结果更新到无损编解码器上交叠缓存中;获取当前帧Ti的波形,并将当前帧Ti的波形更新到输入帧缓存;对无损编码器缓存中的波形进行整数改进离散余弦变换INTMDCT,得到第二变换结果。通过本申请,可以实现有损编解码器和无损编解码器之间实现实时无感切换,开销小,且不会引入感知噪声。
Description
技术领域
本申请涉及音频编解码技术领域,尤其涉及一种有损编解码器和无损编解码器之间的切换方法和装置。
背景技术
随着真无线立体声(True Wireless Stereo,TWS)耳机、智能音箱和智能手表等无线蓝牙设备在日常生活中的广泛普及和使用,用户在各种场景下对追求高质量音乐播放体验的需求也变得越来越迫切,尤其是在地铁、机场、火车站等蓝牙信号易受干扰的环境中。由于蓝牙信道对数据传输大小的限制,音乐数据流必须经过蓝牙设备发送端的音频编码器进行数据压缩后才能传输到蓝牙设备接收端进行解码,这种传输限制因此促进了各种有损蓝牙音频编解码器的蓬勃发展。
目前主流的有损蓝牙编解码器有蓝牙高级音频传输协议(Advanced AudioDistribution Profile,A2DP)默认的子带编码(Subband Coding,SBC)、动态影像专家组(Moving Picture Experts Group,MPEG)的蓝牙高级音频编码(Advanced Audio Coding,AAC)系列(如AAC-LC、AAC-LD、AAC-HE、AAC-HEv2等)、高通Qualcomm的aptX系列(aptX、aptXHD、aptX低延迟low latency)等。而无损音频编解码多采用线性预测编码(LinearPredictive Coding,LPC),例如自由无损音频编解码(Free Lossless Audio Codec,FLAC)、苹果无损音频编解码(Apple Lossless Audio Codec,ALAC)等,此外还有少数机构采用整数改进离散余弦变换(Integer Modified Discrete Cosine Transform,INTMDCT)变换来实现无损音频编解码。
在实时通信中,由于信道往往受干扰而存在波动,因此需要在信道质量下降的情况下从无损音频编解码切换到有损音频编解码,或者在信道质量变好的情况下从有损音频编解码切换到无损音频编解码。
然而现有技术中有损编解码器和无损编解码器的切换方案中,有损编解码器和无损编解码器为频域编解码器和时域编解码器。因此其在进行切换时,首先需要经过改进离散余弦变换/逆改进离散余弦变换(Modified Discrete Cosine Transform/InverseModified Discrete Cosine Transform,MDCT/IMDCT)变换对得到加窗重叠的信号,然后再做时频域的变换。整个切换过程较为复杂,无法实现实时无感地切换,开销较大。此外,有损音频编解码和无损音频编解码之间的切换目前在商业应用中相关场景也较少。
发明内容
本申请实施例提供了一种有损编解码器和无损编解码器之间的切换方法和装置,可以实现有损编解码器和无损编解码器之间实现实时无感切换,开销小,且不会引入感知噪声。
第一方面,本申请提供了一种有损编码器向无损编码器切换的方法,其特征在于,无损编码器缓存buffer包括交叠缓存和输入帧缓存,所述交叠缓存用于存储混叠波形,所述输入帧缓存用于存储非混叠波形;所述方法包括:获取上一帧Ti-1的波形,并将所述上一帧Ti-1的波形更新到所述输入帧缓存;其中,所述上一帧Ti-1的波形由所述有损编码器进行编码;对所述无损编码器缓存中的波形进行整数时域加窗混叠消除INT winTDAC,得到第一变换结果,并将所述第一变换结果更新到所述交叠缓存中;获取当前帧Ti的波形,并将所述当前帧Ti的波形更新到所述输入帧缓存;对所述无损编码器缓存中的波形进行整数改进离散余弦变换INTMDCT,得到第二变换结果。
其中,上一帧Ti-1的波形是从有损编码器缓存buffer中获取到的。
其中,当前帧Ti的波形是从脉冲编码调制PCM音频数据中获取的。
其中,上述有损编码器通过MDCT实现时频域变换,无损编码器通过INTMDCT实现时频域变换,即有损编码器和无损编码器同属于频域编解码器。
从技术效果上看,在从有损编码器向无损编码器切换的过程中,由于无损编码器交叠缓存中为历史波形数据,与当前帧Ti不匹配(即无法用于对当前帧Ti的进行的INTMDCT过程),此时可以从有损编码器缓存中获取上一帧Ti-1的波形,并进行INT winTDAC,以得到与当前帧Ti匹配的混叠波形,从而实现对当前帧Ti的波形进行正确的时域到频域变换(即INTMDCT变换)。而现有技术中的有损编解码器和无损编解码器分别为频域编解码器和时域编解码器,编解码器的类型不同,因此其在从有损编码向无损编码进行切换过程中,需要首先对从有损编码器缓存中获取的数据进行时频域变换,此过程相对于本申请中INTwinTDAC过程而言较为复杂且开销大,即本申请相对于现有技术可以方便快捷地实现从有损编码器向无损编码器的切换,且切换过程实时无感。
在一种可行的实施方式中,所述方法还包括:在所述对所述无损编码器缓存中的波形进行INT winTDAC之前,将所述交叠缓存进行初始化。
从技术效果上看,本申请在对上一帧Ti-1的波形进行INT winTDAC之前,先对交叠缓存中的历史数据进行初始化,可以有效避免交叠缓存中数据对INT winTDAC过程的影响。
在一种可行的实施方式中,所述上一帧Ti-1的波形和所述当前帧Ti的波形都包含时域上非混叠的N个数据点,N为正整数;所述第一变换结果包含时域上混叠的N/2个数据点;所述第二变换结果包含时域上混叠的N/2个数据点和频域上的N个数据点。
其中,第二变换结果中时域上混叠的N/2个数据点为当前帧的交叠帧,其用于下一帧Ti+1的INTMDCT过程。
从技术效果上看,在进行INT winTDAC之后,便可得到与当前帧Ti相匹配的混叠波形,从而在进行INTMDCT之后,得到正确的第二变换结果。
在一种可行的实施方式中,所述方法还包括:将所述第二变换结果中时域上混叠的N/2个数据点更新到所述交叠缓存中。
从技术效果上看,第二变换结果中时域上混叠的N/2个数据点用于对下一帧Ti+1的波形进行INTMDCT的过程,因此将其更新到交叠缓存中后,在对下一帧Ti+1进行无损编码时,在将下一帧Ti+1的波形复制到输入帧缓存后,便可直接进行INTMDCT,即对下一帧Ti+1的波形进行无损编码的过程无需与有损编码器进行交互,已顺利实现了向无损编码器的切换。
在一种可行的实施方式中,所述方法还包括:对所述第二变换结果中频域上的N个数据点进行量化和编码,得到所述当前帧Ti对应的编码码流。
从技术效果上看,在实现对当前帧从时域到频域的转换后,直接对频域数据进行量化和编码,便可得到当前帧Ti对应的编码码流,过程简单。
第二方面,本申请提供了一种无损编码器向有损编码器切换的方法,有损编码器缓存包含上一帧缓存和当前帧缓存,所述上一帧缓存用于存储上一帧Ti-1的波形,所述当前帧缓存用于存储当前帧Ti的波形;所述方法包括:获取所述上一帧Ti-1的波形,并将所述上一帧Ti-1的波形更新到所述上一帧缓存中;其中,所述上一帧Ti-1的波形由所述无损编码器进行编码;获取当前帧Ti的波形,并将所述当前帧Ti的波形更新到所述当前帧缓存;对所述有损编码器缓存中的波形进行改进离散余弦变换MDCT,得到第三变换结果。
其中,上一帧Ti-1的波形是从无损编码器缓存buffer中获取到的。
其中,当前帧Ti的波形是从脉冲编码调制PCM音频数据中获取的。
其中,上述有损编码器通过MDCT实现时频域变换,无损编码器通过INTMDCT实现时频域变换,即有损编码器和无损编码器同属于频域编解码器。
从技术效果上看,在从无损编码器向有损编码器切换的过程中,由于有损编码器上一帧缓存中为历史波形数据,与当前帧Ti不匹配,此时可以从无损编码器缓存中获取上一帧Ti-1的波形,然后直接进行MDCT,便可实现对当前帧Ti的波形进行正确的时域到频域变换。相比于现有技术中的有损编码器和无损编码器分别为频域编码器和时域编码器,其有损和无损侧编码器的类型不同,因此其在从有损编码向无损编码进行切换过程中,需要首先对从有损编码器缓存中获取的数据进行时频域变换,而本申请中的无损编码器和有损编码器同为频域编码器,无需进行数据类型转换,在获取到上一帧波形后,便可直接进行时域到频域的变换(即MDCT),整个过程非常方便简洁,开销小,切换过程实时无感。
在一种可行的实施方式中,所述上一帧Ti-1的波形和所述当前帧Ti的波形都包含时域上非混叠的N个数据点,N为正整数;所述第三变换结果包括频域上的N个数据点。
从技术效果上看,在将上一帧Ti-1的波形更新到上一帧缓存后,进行MDCT变换,便可顺利实现将当前帧Ti的波形变换为当前帧Ti的频谱。
在一种可行的实施方式中,所述方法还包括:对所述第三变换结果进行量化和编码,得到所述当前帧Ti对应的编码码流。
从技术效果上看,在实现对当前帧从时域到频域的转换后,直接对频域数据进行量化和编码,便可得到当前帧Ti对应的编码码流,过程简单。
第三方面,本申请提供了一种有损解码器向无损解码器切换的方法,无损解码器缓存包含交叠缓存和输入帧缓存,所述交叠缓存用于存储波形数据,所述输入帧缓存用于存储频谱数据;所述方法包括:获取当前帧Ti的频谱,并将所述当前帧Ti的频谱更新到所述输入帧缓存中;对所述无损解码器缓存中的频谱进行整数逆改进离散余弦变换INTIMDCT,得到第四变换结果;获取上一帧Ti-1的交叠帧,并将所述上一帧Ti-1的交叠帧与所述第四变换结果中的非混叠波形进行交叠相加OLA,得到所述当前帧Ti的波形;其中,所述上一帧Ti-1的频谱由所述有损解码器进行解码。
其中,上一帧Ti-1的交叠帧是从有损解码器缓存buffer中获取到的。
其中,当前帧Ti的频谱是基于接收到的编码码流获取的。
其中,上述有损解码器通过IMDCT实现时频域变换,无损解码器通过INTIMDCT实现时频域变换,即有损解码器和无损解码器同属于频域编解码器。
从技术效果上看,在从有损解码器向无损解码器切换的过程中,由于无损解码器交叠缓存中为历史波形数据,无法用于对当前帧Ti的频谱进行INTIMDCT的过程,即对当前帧Ti的INTIMDCT的过程缺少部分数据,使得变换后得到的第四变换结果中非混叠波形缺少交叠相加OLA的过程,但有损解码器缓存中正好存储有用于OLA的数据(上一帧Ti-1的交叠帧),此时可直接获取并进行交叠相加,即可得到当前帧Ti的波形,实现从频域到时域的变换。可以看出,由于现有技术中有损解码器和无损解码器分别为频域解码器和时域解码器,其缓存中的数据类型不同(分别为频域和时域),因此其在从有损解码器向无损解码器进行切换过程中,其从有损解码器缓存中获取的数据需要进行时频域变换,而本申请中有损解码器和无损解码器同属于频域解码器(即本申请架构和现有技术完全不同),无需进行这一过程,直接获取数据进行交叠相加OLA,便可顺利实现向无损解码器的切换。因此本申请相对于现有技术而言,切换过程简单、开销小,且切换过程实时无感。
在一种可行的实施方式中,所述方法还包括:在所述对所述无损解码器缓存中的频谱进行整数逆改进离散余弦变换INTIMDCT之前,对所述交叠缓存进行初始化。
从技术效果上看,对历史数据进行初始化,可以有效避免下一帧缓存中数据对INTIMDCT过程的影响。
在一种可行的实施方式中,所述当前帧Ti的频谱包含频域上N个数据点,N为正整数;所述第四变换结果中的非混叠波形包含时域上非混叠的N个数据点。
在一种可行的实施方式中,所述第四变换结果中还包含时域上混叠的N/2个数据点,所述方法还包括:将所述时域上混叠的N/2个数据点更新到所述交叠缓存中。
从技术效果上看,时域上混叠的N/2个数据点是在对下一帧进行INTIMDCT过程需要使用的数据,将此数据更新到交叠缓存中,便可确保对下一帧Ti+1的频谱顺利解码,即从下一帧Ti+1开始,解码过程完全由无损解码器完成,无需与有损解码器进行交互。
在一种可行的实施方式中,所述获取当前帧Ti的频谱,包括:所述无损解码器对接收到的编码码流进行解码和反量化处理,并从处理结果中获取所述当前帧Ti的频谱。
从技术效果上看,在无损解码器进行频谱到时域的变换之前,需要对接收到的编码码流进行解码和反量化,保证INTIMDCT过程使用正确的频谱数据。
第四方面,本申请提供了一种无损解码器向有损解码器切换的方法,有损解码器缓存包含当前帧缓存,所述当前帧缓存用于存储频谱数据;所述方法包括:获取当前帧Ti的频谱,并将所述当前帧Ti的频谱更新到所述当前帧缓存中;对所述有损解码器缓存中的数据进行逆改进离散余弦变换IMDCT,得到第五变换结果;对无损解码器缓存中上一帧Ti-1的交叠帧进行逆整数时域加窗混叠消除InverseINTwinTDAC,得到第六变换结果;其中,所述上一帧Ti-1的频谱由所述无损解码器进行解码;将所述第六变换结果中的非混叠波形和所述第五变换结果中对应的波形进行交叠相加OLA,得到所述当前帧Ti的波形。
其中,当前帧Ti的频谱是基于接收到的编码码流获取的。
其中,上述有损解码器通过IMDCT实现时频域变换,无损解码器通过INTIMDCT实现时频域变换,即有损解码器和无损解码器同属于频域编解码器。
从技术效果上看,在从无损解码器向有损解码器切换的过程中,由于有损解码器下一帧缓存中为历史波形数据,无法用于对当前帧Ti的频谱进行的IMDCT过程,即对当前帧Ti的IMDCT的过程缺少部分数据,使得变换后得到的第五变换结果中非混叠波形并不是所需要的当前帧Ti的波形,但无损解码器缓存中正好存储有上一帧Ti-1的交叠帧,通过对上一帧Ti-1的交叠帧进行展开和去窗处理(Inverse INT winTDAC),便可得到对当前帧Ti的频谱进行IMDCT的过程需要用到的历史数据,最后进行交叠相加OLA,便可得到正确的当前帧Ti的波形,实现从频域到时域的变换。而由于现有技术中有损解码器和无损解码器分别为频域解码器和时域解码器,其缓存中的数据类型不同(分别为频域和时域),因此其在从无损解码器向有损解码器进行切换过程中,其从有损解码器缓存中获取的数据需要进行时频域变换,而本申请中有损解码器和无损解码器同属于频域解码器(即本申请架构和现有技术完全不同),无需进行这一过程,只需进行简单的InverseINTwinTDAC过程和交叠相加OLA过程,便可顺利实现向有损解码器的切换。因此本申请相对于现有技术而言,切换过程简单、开销小,且切换过程实时无感。
在一种可行的实施方式中,所述有损解码器缓存还包含下一帧缓存,所述下一帧缓存用于存储波形数据;所述方法还包括:将所述第五变换结果中所述当前帧Ti的交叠帧更新到所述下一帧缓存中。
从技术效果上看,由于当前帧Ti的交叠帧为对下一帧Ti+1的频谱进行解码所需的数据,将其更新到下一帧缓存中,便可确保对下一帧Ti+1的频谱顺利解码,即从下一帧Ti+1开始,解码过程完全由有损解码器完成,无需与有损解码器进行交互。
其中,所述第五变换结果包括所述当前帧Ti的交叠帧和所述当前帧Ti对应的时域非混叠波形;所述当前帧Ti对应的时域非混叠波形与所述第六变换结果中的非混叠波形相对应。
从技术效果上看,通过将第六变换结果中非混叠波形是对当前帧Ti的频谱进行IMDCT过程所需的数据,在将其还原后,与当前帧对应的时域非混叠波形进行OLA,便可还原出准确的当前帧Ti的波形,实现向有损解码器的切换。
在一种可行的实施方式中,所述方法还包括:在所述对所述有损解码器缓存中的数据进行逆改进离散余弦变换IMDCT之前,对所述下一帧缓存进行初始化。
从技术效果上看,将下一帧缓存中的数据进行初始化,可以有效避免其上数据对IMDCT过程的影响。
在一种可行的实施方式中,所述方法还包括:在所述对无损解码器缓存中上一帧Ti-1的交叠帧进行逆整数时域加窗混叠消除Inverse INT winTDAC之前,对所述无损解码器缓存中的输入帧缓存进行初始化;其中,所述输入帧缓存用于存储频谱数据。
从技术效果上看,将输入帧缓存中的数据进行初始化,可以有效避免其对InverseINT winTDAC过程的影响。
在一种可行的实施方式中,所述获取当前帧Ti的频谱包括:所述有损解码器对接收到的编码码流进行解码和反量化处理,并从处理结果中获取所述当前帧Ti的频谱。
从技术效果上看,通过对接收到的编码码流进行解码和反量化,确保IMDCT过程使用正确的频谱数据。
综上,上述第一方面到第四方面提供四种方法其本质都是基于频域有损编解码器和频域无损编解码上缓存中数据类型差异以及相应变换机制来实现的。由于其同属于频域编解码器,因此在向一侧切换的过程中,只需对从对侧获取的数据进行简单处理后,便可进行时频域变换。相比于现有技术而言,实现过程简单,操作方便,切换过程实施无感。
第五方面,本申请提供了一种编码装置,所述编码装置包括无损编码器,所述无损编码器上存储单元包括第一存储单元和第二存储单元,所述第一存储单元用于存储混叠波形,所述第二存储单元用于存储非混叠波形;所述编码装置还包括:获取单元,用于获取上一帧Ti-1的波形,并将所述上一帧Ti-1的波形更新到所述第二存储单元;其中,所述上一帧Ti-1的波形由所述编码装置中的有损编码器进行编码;处理单元,用于对所述无损编码器上存储单元中的波形进行整数时域加窗混叠消除INTwinTDAC,得到第一变换结果,并将所述第一变换结果更新到所述第一存储单元中;所述获取单元,还用于获取当前帧Ti的波形,并将所述当前帧Ti的波形更新到所述第二存储单元;所述处理单元,还用于对所述无损编码器上存储单元中的波形进行整数改进离散余弦变换INTMDCT,得到第二变换结果。
在一种可行的实施方式中,所述处理单元还用于:在所述对所述无损编码器上存储单元中的波形进行整数时域加窗混叠消除INTwinTDAC之前,将所述第一存储单元进行初始化。
在一种可行的实施方式中,所述上一帧Ti-1的波形和所述当前帧Ti的波形都包含时域上非混叠的N个数据点,N为正整数;所述第一变换结果包含时域上混叠的N/2个数据点;所述第二变换结果包含时域上混叠的N/2个数据点和频域上的N个数据点。
在一种可行的实施方式中,所述处理单元还用于:将所述第二变换结果中时域上混叠的N/2个数据点更新到所述第一存储单元中。
在一种可行的实施方式中,所述装置还包括:编码单元,用于对所述第二变换结果中频域上的N个数据点进行量化和编码,得到所述当前帧Ti对应的编码码流。
第六方面,本申请提供了一种编码装置,所述编码装置包括有损编码器,所述有损编码器上存储单元包括第三存储单元和第四存储单元,所述第三存储单元用于存储上一帧Ti-1的波形,所述第四存储单元用于存储当前帧Ti的波形;所述编码装置还包括:获取单元,用于获取所述上一帧Ti-1的波形,并将所述上一帧Ti-1的波形更新到所述第三存储单元中;其中,所述上一帧Ti-1的波形由所述编码装置中的无损编码器进行编码;所述获取单元,还用于获取当前帧Ti的波形,并将所述当前帧Ti的波形更新到所述第四存储单元;处理单元,用于对所述有损编码器上存储单元中的波形进行改进离散余弦变换MDCT,得到第三变换结果。
在一种可行的实施方式中,所述上一帧Ti-1的波形和所述当前帧Ti的波形都包含时域上非混叠的N个数据点,N为正整数;所述第三变换结果包括频域上的N个数据点。
在一种可行的实施方式中,所述编码装置还包括:编码单元,用于对所述第三变换结果进行量化和编码,得到所述当前帧Ti对应的编码码流。
第七方面,本申请提供了一种解码装置,所述解码装置包括无损解码器,所述无损解码器上存储单元包括第五存储单元和第六存储单元,所述第五存储单元用于存储波形数据,所述第六存储单元用于存储频谱数据;所述解码装置还包括:获取单元,用于获取当前帧Ti的频谱,并将所述当前帧Ti的频谱更新到所述第六存储单元;处理单元,用于对所述无损解码器上存储单元中的频谱进行整数逆改进离散余弦变换INTIMDCT,得到第四变换结果;所述获取单元,还用于获取上一帧Ti-1的交叠帧;所述处理单元,还用于将所述上一帧Ti-1的交叠帧与所述第四变换结果中的非混叠波形进行交叠相加OLA,得到所述当前帧Ti的波形;其中,所述上一帧Ti-1的频谱由所述解码装置中的有损解码器进行解码。
在一种可行的实施方式中,所述处理单元还用于:在所述对所述无损解码器上存储单元中的频谱进行整数逆改进离散余弦变换INTIMDCT之前,对所述第五存储单元进行初始化。
在一种可行的实施方式中,所述当前帧Ti的频谱包含频域上N个数据点,N为正整数;所述第四变换结果中的非混叠波形包含时域上非混叠的N个数据点。
在一种可行的实施方式中,所述第四变换结果中还包含时域上混叠的N/2个数据点,所述处理单元还用于:将所述时域上混叠的N/2个数据点更新到所述第五存储单元中。
在一种可行的实施方式中,所述解码装置还包括:解码单元,用于对接收到的编码码流进行解码和反量化处理,所述当前帧Ti的频谱是从处理结果中获取到的。
第八方面,本申请提供了一种解码装置,所述解码装置包括有损解码器和无损解码器,所述有损解码器上存储单元包括第七存储单元,所述第七存储单元用于存储频谱数据;所述解码装置还包括:获取单元,用于获取当前帧Ti的频谱,并将所述当前帧Ti的频谱更新到所述第七存储单元中;处理单元,用于对所述有损解码器上存储单元中的数据进行逆改进离散余弦变换IMDCT,得到第五变换结果;所述处理单元,还用于对所述无损解码器上存储单元中上一帧Ti-1的交叠帧进行逆整数时域加窗混叠消除InverseINTwinTDAC,得到第六变换结果;其中,所述上一帧Ti-1的频谱由所述无损解码器进行解码;所述处理单元,还用于将所述第六变换结果中的非混叠波形和所述第五变换结果中对应的波形进行交叠相加OLA,得到所述当前帧Ti的波形。
在一种可行的实施方式中,所述有损解码器上上存储单元还包括第八存储单元,所述第八存储单元用于存储波形数据;所述处理单元还用于:将所述第五变换结果中所述当前帧Ti的交叠帧更新到所述第八存储单元。
在一种可行的实施方式中,所述第五变换结果包括所述当前帧Ti的交叠帧和所述当前帧Ti对应的时域非混叠波形;所述当前帧Ti对应的时域非混叠波形与所述第六变换结果中的非混叠波形相对应。
在一种可行的实施方式中,所述处理单元还用于:在所述对所述有损解码器上存储单元中的数据进行逆改进离散余弦变换IMDCT之前,对所述第八存储单元进行初始化。
在一种可行的实施方式中,所述处理单元还用于:在所述对所述无损解码器上存储单元中上一帧Ti-1的交叠帧进行逆整数时域加窗混叠消除InverseINTwinTDAC之前,对所述无损解码器上存储单元中的第九存储单元进行初始化;其中,所述第九存储单元用于存储频谱数据。
在一种可行的实施方式中,所述解码装置还包括:解码单元,用于对接收到的编码码流进行解码和反量化处理,所述当前帧Ti的频谱是从处理结果中获取到的。
第九方面,本申请提供了一种编码器,包括处理电路,用于执行上述第一方面和第二方面中任一项所述的方法。
第十方面,本申请提供了一种解码器,包括处理电路,用于执行上述第三方面和第四方面中任一项所述的方法。
第十一方面,本申请提供了一种编码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处理器执行时,使得所述编码器执行根据上述第一方面和第二方面中任一项所述的方法。
第十二方面,本申请提供了一种解码器,一个或多个处理器;非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处理器执行时,使得所述解码器执行上述第三方面和第四方面中任一项所述的方法。
第十三方面,本申请实施例提供了一种计算机程序产品,包括程序代码,当其在计算机或处理器上执行时,用于执行上述第一方面到第四方面中任一项所述的方法。
第十四方面,本申请实施例提供了一种非瞬时性计算机可读存储介质,其特征在于,包括程序代码,当其由计算机设备执行时,用于执行上述第一方面到第四方面中任一项所述的方法。
附图说明
以下对本申请实施例用到的附图进行介绍。
图1为本申请实施例提供的一种系统架构示意图;
图2为本申请实施例提供的一种编码和解码过程的流程示意图;
图3(a)-图3(b)为本申请实施例提供的一种有损编解码器缓存中的数据变化过程示意图;
图4(a)-图4(b)为本申请实施例提供的一种无损编解码器缓存中的数据变化过程示意图;
图5为本申请实施例提供的一种有损编码器向无损编码器切换的方法流程图;
图6为本申请实施例提供的一种无损编码器缓存中数据变化过程示意图;
图7为本申请实施例提供的一种无损编码器向有损编码器切换的方法流程图;
图8为本申请实施例提供的一种有损编码器缓存中数据变化过程示意图;
图9为本申请实施例提供的一种有损解码器向无损解码器切换的方法流程图;
图10为本申请实施例提供的一种无损解码器缓存中数据变化过程示意图;
图11为本申请实施例提供的一种无损解码器向有损解码器切换的方法流程图;
图12为本申请实施例提供的一种有损解码器缓存中数据变化过程示意图;
图13为本申请实施例提供的一种编码装置的结构示意图;
图14为本申请实施例提供的一种编码装置的结构示意图;
图15为本申请实施例提供的一种解码装置的结构示意图;
图16为本申请实施例提供的一种解码装置的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面介绍本申请中涉及的专业术语
(1)改进离散余弦变换(Modified Discrete Cosine Transform,MDCT):一种将时域信号转换为频域信号的方法。逆改进离散余弦变换(InverseModified Discrete CosineTransform,IMDCT)是MDCT的逆变换,即是将频域信号装换为时域信号的方法。MDCT/IMDCT变换对是音频压缩领域中应用最为广泛的一种有损数据压缩手段,是一种派生自傅里叶变换的变换,其特点是可以消除时域混叠。本申请中的有损编解码器就是基于MDCT/IMDCT变换对来实现时域和频域之间的转换。
(2)整数改进离散余弦变换(Integer Modified Discrete Cosine Transform,INTMDCT):与MDCT类似,也是一种将时域信号转换为频域信号的方法,但INTMDCT过程输入波形和输出频谱都是整数。INTMDCT的逆变换过程为整数逆改进离散余弦变换(IntegerInverse Modified Discrete Cosine Transform,INTIMDCT),此过程可以将整数的频谱还原成整数的波形。INTMDCT/INTIMDCT变换对加上完全可逆的量化编码/反量化编码模块,就可以组成数字上无损的音频编解码器,本申请中的无损编解码器就是基于INTMDCT/INTIMDCT变换对来实现时域和频域之间的变换。
(3)脉冲编码调制(Pulse-Code Modulation,PCM):一种模拟信号的数字化方法,其包括采样、量化、编码三个过程。本申请中的PCM音频数据即是对模拟音频信号进行PCM处理后得到的时域数据。
(4)有损编码器缓存:即有损编码器中的缓存buffer,其包含两部分。在本申请中,这两部分被命名为上一帧缓存和当前帧缓存。在对当前帧的有损编码过程结束后(不包含无损编码和有损编码之间的切换过程),当前帧缓存用于存储当前帧Ti的波形,上一帧缓存用于存储当前帧的交叠帧。
(5)无损编码器缓存:即无损编码器中的缓存buffer,其包含两部分。在本申请中,这两部分被命名为交叠缓存和输入帧缓存。在对当前帧的无损编码过程结束后(不包含无损编码和有损编码之间的切换过程),输入帧缓存用于存储当前帧Ti的波形,交叠缓存用于存储当前帧的交叠帧。
(6)有损解码器缓存:即有损解码器中的缓存buffer,其包含两部分。在本申请中,这两部分被命名为下一帧缓存和当前帧缓存。在对当前帧的有损解码过程结束后(不包含无损解码和有损解码之间的切换过程),当前帧缓存用于存储当前帧Ti的频谱,下一帧缓存用于存储当前帧的交叠帧。
(7)无损解码器缓存:即无损解码器中的缓存buffer,其包含两部分。在本申请中,这两部分被命名为交叠缓存和输入帧缓存。在对当前帧的无损解码过程结束后(不包含无损解码和有损解码之间的切换过程),输入帧缓存用于存储当前帧Ti的频谱,交叠缓存用于存储当前帧的交叠帧。
(8)交叠帧:在对当前帧Ti进行编解码时利用当前帧Ti生成的缓存数据,用于对下一帧的编解码中与下一帧进行交叠相加来获得正确的下一帧的波形或下一帧的频谱。
(9)切换帧:本申请中,有损编解码器向无损编解码器切换时,无损编解码器进行编解码的一帧音频数据;或者指无损编解码器向有损编解码器切换时,有损编解码器进行编解码的一帧音频数据。在执行完对切换帧的编解码后,即完成了无损编解码器和无损编解码器之间的切换。
(10)频域编解码器:指编码器进行量化和编码得到编码码流(比特流)过程所处理的数据类型为频域数据,以及解码器对接收到编码码流进行解码和反量化得到的数据类型为频域数据。同理,时域编解码器中,上述过程对应的数据类型为时域数据。
请参见图1,图1为本申请实施例提供的一种系统架构示意图,用于描述本申请中有损编解码器向无损编解码之间切换的方法所适用的应用场景。
如图1所示,该系统架构包括音频发送端110和音频接收端120,且其通过无线连接。
可选地,音频发送端110和音频接收端120之间无线连接的方式可以是蓝牙连接、WIFI连接等,本申请对此不限定。
可选地,音频发送端110为可以进行有损音频编解码和无损音频编解码,且具有发送音频数据流能力的设备。例如,其可以为手机、电脑、平板、车机等设备,本申请在此不进行一一列举。
可选地,音频接收端120为可以对接收到的音频数据流进行有损音频编解码和无损音频编解码,并进行播放的设备。例如,其可以为真无线立体声(True Wireless Stereo,TWS)耳机、普通无线耳机、音响、智能手表、智能眼镜等,本申请在此不进行一一列举。
其中,本申请所描述的有损编解码器和无损编解码器都是音频编解码器,每一帧的波形或者每一帧的频谱都是指音频数据。
请参见图2,图2为本申请实施例提供的一种编码和解码过程的流程示意图。
如图2所示,步骤210-步骤230为编码器中的过程,其可以是图1中音频发送端110中编码器中的过程。
在音频编码过程中,首先执行步骤210:波形输入。具体地,从PCM音频数据中获取当前帧Ti的波形。然后进行时频域变换220,将当前帧Ti的波形转换为当前帧Ti的频谱。最后进行量化与编码230,得到当前帧的编码码流,即图2中的比特流270。
其中,步骤210-步骤230可以是有损编码器中的编码过程、无损编码器中的编码过程,或者有损编码器和无损编码器之间进行切换时的编码过程。当其表示有损编码器和无损编码器之间进行切换的编码过程时,在进行时频域变换220之前,还需要进行相应的前处理,前处理的具体过程将在下文有损编码器向无损编码器切换的方法实施例和无损编码器向有损编码器切换的方法实施例中具体描述。
其中,时频域变换220使用的变换方法为MDCT或INTMDCT。
步骤240-步骤260为解码器中的过程,其可以是图1中音频接收端120上解码器中的过程。
在音频解码过程中,解码器对接收到的比特流270进行反量化与解码240,得到对应的频谱数据。然后获取当前帧Ti的频谱,对其进行逆时频域变换250,得到当前帧Ti的波形输出260。
其中,步骤240-步骤260可以是有损解码器中的解码过程、无损解码器中的解码过程,或者有损解码器和无损解码器之间进行切换时的解码过程。当其表示有损解码器和无损解码器之间进行切换的解码过程时,在进行逆时频域变换250之前,还需要进行相应的前处理,在进行逆时频域变换250之后,还需要进行相应的后处理。其中,此处前处理和后处理的具体过程将在下文有损解码器向无损解码器切换的方法实施例和无损解码器向有损解码器切换的方法实施例中具体描述。
其中,逆时频域变换250使用的变换方法为IMDCT或INTIMDCT。
下面将描述本申请中所使用的MDCT/IMDCT变换对、以及INTMDCT/INTIMDCT变换对的原理和对应的执行过程。
MDCT变换的数学原理如公式(1)所示:
其中,x(i),X(k)分别为原始时域数据和经MDCT变化后的频率数据,N为帧长。i和k分别为变换前时域上数据点和变换后频域上数据点。w(i)表示窗函数。
上述公式(1)表示将长度为2N的时域数据变化为长度为N的频域数据。
其中,MDCT可以分解为时域加窗混叠消除(Window Time Domain AliasingCancellation,winTDAC)和离散余弦变换(Discrete Cosine Transform-4,DCT4)DCT4两个过程。如果将2N点的PCM输入波形和对应窗平均拆分为4个连续部分,那么MDCT可以用公式(2)进行表示:
MDCT(w1a,w2b,w3c,w4d)=DCT4(-(w3c)R-(w4d),(w1a)-(w2b)R) (2)
其中,a、b、c、d分别表示平均切分为N/2点的PCM输入波形。w1、w2、w3、w4分别表示平均切分为N/2点的窗。R表示对相应序列进行反序。
可以看出,winTDAC过程就是将2N点的PCM输入波形乘以对应窗,然后按照公式所述折叠成N点,以便DCT4的后续处理。加窗的主要目的是防止频谱泄露,而混叠的主要目的是将序列折叠成DCT4可以处理的形式。
INTMDCT和MDCT类似,INTMDCT过程也包括时域加窗混叠消除过程和DCT4变换两个主要过程。但是借助于Givens旋转和Lifting变换,其正变换和逆变换完全可逆,而MDCT/IMDCT变换对则存在浮点数计算误差。
INTMDCT的时域加窗混叠消除过程和MDCT的不同,为整数时域加窗混叠消除(IntegerWindow Time Domain Aliasing Cancellation,INTwinTDAC);INTMDCT中的DCT4变换是基于Givens旋转和Lifting变换的INTDCT4变换,与MDCT中的也不同。
INTMDCT的PCM输入波形和输出频谱都是整数,其逆变换INTIMDCT可以将整数的频谱还原成整数的PCM,与输入的PCM达到完全比特一致,只是存在若干点的序列延迟。因而INTMDCT/INTIMDCT变换对加上完全可逆的量化编码/反量化编码模块,就可以组成数字上无损的音频编解码器。
下面将结合图3(a)-图3(b)来描述有损编解码器中MDCT、IMDCT过程中的有损编解码器缓存中的数据变化。
图3(a)表示有损编码中时域到频域的变换(即MDCT)。图3(a)表示有损编码器中对当前帧Ti的波形进行MDCT,得到当前帧Ti的频谱的过程。
其中,有损编码器缓存包括当前帧缓存和上一帧缓存。
如图3(a)所示,在对当前帧Ti的波形进行MDCT之前,当前帧缓存中存储有当前帧Ti的波形N,上一帧缓存中存储有上一帧的交叠帧N-Nz。零填充Zero-padding表示其上Nz个数据点的值为零。
其中,图3(a)中的N、N-Nz、Nz表示包含数据点的数量。
在开始执行MDCT时,首先对有损编码器缓存中的2N个数据点进行时域加窗混叠消除(即win TDAC),得到当前帧的混叠形式N。然后,对当前帧的混叠形式N执行DCT4过程,得到当前帧Ti的频谱N。
图3(b)表示有损解码中频域到时域的变换(即IMDCT)。图3(b)表示有损解码器中对当前帧Ti的频谱执行IMDCT,得到当前帧Ti的波形的过程。
其中,有损解码器缓存包括当前帧缓存和下一帧缓存。
如图3(b)所示,在对当前帧Ti的频谱进行IMDCT之前,当前帧缓存中存储有当前帧Ti的频谱N,下一帧缓存中存储有上一帧的交叠帧N-Nz。零填充Zero-padding表示其上Nz个数据点的值为零。
其中,图3(a)中的N、N-Nz、Nz表示包含数据点的数量。
在开始执行IMDCT时,首先对有损解码器缓存中的2N个数据点执行DCT4过程,得到当前帧的混叠形式N。然后,对当前帧的混叠形式N执行逆时域加窗混叠消除(InversewinTDAC),得到当前帧Ti的波形N、当前帧的交叠帧N-Nz,以及Nz个零填充数据点。
下面将结合图4(a)-图4(b)来描述无损编解码器中INTMDCT、INTIMDCT过程中的无损编解码器缓存中的数据变化。
图4(a)表示无损编码中时域到频域的变换(INTMDCT)。图4(a)表示无损编码器中对当前帧Ti的波形执行INTMDCT,得到当前帧Ti的频谱的过程。
其中,无损编码器缓存包括输入帧缓存和交叠缓存。
如图4(a)所示,在对当前帧Ti的波形N执行INTMDCT之前,输入帧缓存中存储有当前帧Ti的波形N,交叠缓存中存储有上一帧的交叠帧N/2。
其中,图4(a)中的N、N/2、(N-Nd)/2、Nd/2表示包含数据点的数量。
在开始执行INTMDCT时,首先对无损编码器缓存中当前帧Ti的波形N进行整数时域加窗混叠消除(INTwin TDAC),得到当前帧的非交叠部分(N-Nd)/2和当前帧的交叠部分Nd/2。然后,对上一帧的交叠帧N/2和当前帧的非交叠部分(N-Nd)/2执行INT DCT4过程,得到当前帧Ti的频谱N和当前帧的交叠帧N/2。
图4(b)表示无损解码中频域到时域的变换(INTIMDCT)。图4(b)表示无损解码器中对当前帧Ti的频谱执行INTIMDCT,得到当前帧Ti的波形的过程。
其中,无损解码器缓存包括输入帧缓存和交叠缓存。
如图4(b)所示,在对当前帧Ti的频谱N执行INTIMDCT之前,输入帧缓存中存储有当前帧Ti的频谱N,交叠缓存中存储有上一帧的交叠帧N/2。
其中,图4(b)中的N、N/2、(N-Nd)/2、Nd/2表示包含数据点的数量。
在开始执行INTIMDCT时,首先对无损解码器缓存中当前帧Ti的频谱N执行INTDCT4过程,得到当前帧的非交叠部分(N-Nd)/2和当前帧的交叠部分Nd/2。然后,对上一帧的交叠帧N/2和当前帧的非交叠部分(N-Nd)/2执行逆整数时域加窗混叠消除(InverseINTwinTDAC),得到当前帧Ti的波形N和当前帧的交叠帧N/2。
请参见图5,图5为本申请实施例提供的一种有损编码器向无损编码器切换的方法流程图。如图5所示,该方法包括步骤S510、步骤S520、步骤S530和步骤S540。下面将结合图6来描述图5方法中无损编码器缓存中数据变化过程。
如图6所示,无损编码器缓存buffer包括交叠缓存和输入帧缓存,交叠缓存用于存储混叠波形,输入帧缓存用于存储非混叠波形。
步骤S510:获取上一帧Ti-1的波形,并将所述上一帧Ti-1的波形更新到所述输入帧缓存;其中,所述上一帧Ti-1的波形由所述有损编码器进行编码。
具体地,可以从有损编码器缓存中获取上一帧Ti-1的波形。有损编码器缓存中上一帧Ti-1的波形与PCM音频数据中上一帧Ti-1的波形相同。
其中,上一帧Ti-1的波形已经由有损编码器完成了编码,当前帧Ti的波形为有损编码器向无损编码器切换过程中无损编码器进行编码的一帧,即切换帧。
此时,有损编码器缓存中的数据为对上一帧Ti-1的波形进行编码后,更新得到的数据。其中,有损编码器缓存包括当前帧缓存和上一帧缓存。当前帧缓存中此时存储上一帧Ti-1的波形,即在有损编码器向无损编码器切换之前,有损编码器编码的最后一帧的波形。上一帧缓存中存储有上一帧的交叠帧N-Nz,其是在对上一帧Ti-1的波形进行有损编码过程中得到的时域上非混叠波形。
即如图6所示,在将上一帧Ti-1的波形更新到无损编码器的输入帧缓存后,无损解码器缓存中的输入帧缓存、有损编码器的当前帧缓存中存储的都是PCM音频数据中上一帧Ti-1的波形。
其中,PCM音频数据中的每一帧的波形都包含时域上非混叠的N个数据点。图6中的字符N、N-Nz、Nz、N/2指包含的数据点的数量。
其中,PCM音频数据是由对模拟信号表示的音频数据进行PCM处理后得到的时域数据。
其中,图6中虚线所示的单向箭头表示对应数据的更新或复制过程。
步骤S520:对所述无损编码器缓存中的波形进行整数时域加窗混叠消除INTwinTDAC,得到第一变换结果,并将所述第一变换结果更新到所述交叠缓存中。
其中,在对无损编码器缓存中的波形进行整数时域加窗混叠消除INT winTDAC之前,对无损编码器中交叠缓存进行初始化。
可选地,该初始化过程为对交叠缓存中的数据进行置零。该过程用于清除交叠缓存中的历史波形,以消除交叠缓存中历史波形对INT winTDAC过程的影响。
其中,上述将第一变换结果更新到所述交叠缓存中,包括:将第一变换结果中的时域混叠波形更新到交叠缓存中。
其中,第一变换结果中的时域混叠波形为时域上混叠的N/2个数据点,此时域上混叠的N/2个数据点为第一变换结果中的前N/2个数据点。
步骤S530:获取当前帧Ti的波形,并将所述当前帧Ti的波形更新到所述输入帧缓存。
具体地,在得到第一变换结果之后,从PCM音频数据中获取当前帧Ti的波形,并将当前帧Ti的波形更新到无损编码器的输入帧缓存中。
其中,当前帧即为有损编码器向无损编码器切换过程中进行编码的一帧音频数据,即切换帧。
其中,本申请四种切换方法实施例中所描述的当前帧都为切换帧。
在完成上述对无损编码器缓存的更新后,无损编码器缓存中即存储了对当前帧Ti的波形执行INTMDCT过程所需的数据。
其中,第一变换结果和上述更新后无损编码器缓存中的数据具体可参见图6。
步骤S540:对所述无损编码器缓存中的波形进行整数改进离散余弦变换INTMDCT,得到第二变换结果。
具体地,在完成上述对无损编码器缓存的更新后,对无损编码器缓存中的3N/2个数据点执行INTMDCT过程,得到第二变换结果。
其中,第二变换结果包含时域上混叠的N/2个数据点和频域上的N个数据点。该频域上的N个数据点即为图6第二变换结果中当前帧Ti的频谱N。该时域上混叠的N/2个数据点即为当前帧的交叠帧,其用于对下一帧Ti+1的波形执行INTMDCT的过程。
在得到第二变换结果后,将第二变换结果中时域上混叠的N/2个数据点(即当前帧的交叠帧)更新到无损编码器的交叠缓存中。
在得到第二变换结果后,进一步对第二变换结果中频域上的N个数据点(即图6中当前帧Ti的频谱)进行量化和编码,得到当前帧Ti对应的编码码流,即图1中音频发送端110向音频接收端120发送的比特流。
此时,无损编码器缓存中交叠缓存和输入帧缓存分别存储的数据为当前帧的交叠帧、当前帧Ti的波形。
在执行完上述图5实施例中各步骤后,即完成了对当前帧(切换帧)的无损编码过程,也完成了有损编码器向无损编码器切换的过程。PCM音频数据中下一帧Ti+1的波形完全由无损编码器进行编码。
请参见图7,图7为本申请实施例提供的一种无损编码器向有损编码器切换的方法流程图。如图7所示,该方法包括步骤S710、步骤S720和步骤S730。下面将结合图8来描述图7方法中有损编码器缓存中数据变化过程。
其中,有损编码器缓存包含上一帧缓存和当前帧缓存两部分,上一帧缓存用于存储上一帧Ti-1的波形,所述当前帧缓存用于存储当前帧Ti的波形。
步骤S710:获取所述上一帧Ti-1的波形,并将所述上一帧Ti-1的波形更新到所述上一帧缓存中;其中,所述上一帧Ti-1的波形由所述无损编码器进行编码。
具体地,可以从无损编码器缓存中获取上一帧Ti-1的波形。
可选地,如图8所示,上述获取到的上一帧Ti-1的波形可只包含上一帧Ti-1的波形中时域上混叠的N-Nz个数据点。
如图8所示,无损编码器缓存中上一帧Ti-1的波形与PCM音频数据中上一帧Ti-1的波形相同。
其中,上一帧Ti-1的波形已经由无损编码器完成了编码,当前帧Ti的波形为有损编码器向无损编码器切换过程中无损编码器进行编码的一帧,即切换帧。
此时,无损编码器缓存中的数据为对上一帧Ti-1的波形进行编码后,更新得到的数据。其中,无损编码器缓存包括交叠缓存和输入帧缓存。输入帧缓存中此时存储上一帧Ti-1的波形(N-Nz和Nz个数据点),共N个数据点。上一帧Ti-1的波形也是在无损编码器向有损编码器切换之前,无损编码器编码的最后一帧的波形。交叠缓存中存储有上一帧的交叠帧N/2,其是在无损编码器对上一帧Ti-1的波形进行无损编码过程中得到的时域混叠波形。
如图8所示,在无损编码器的输入帧缓存以及PCM音频数据中,上一帧Ti-1的波形包括时域上非混叠的N-Nz个数据点和零填充的Nz个数据点,即共N个数据点。
步骤S720:获取当前帧Ti的波形,并将所述当前帧Ti的波形更新到所述当前帧缓存。
其中,当前帧Ti的波形是从PCM音频数据中获取到的。
其中,如图8所示,当前帧Ti的波形包含时域上非混叠的N个数据点。
其中,当前帧即为无损编码器向有损编码器切换过程中有损编码器进行编码的一帧音频数据,即切换帧。
在完成上述对有损编码器缓存的更新后,有损编码器缓存中即存储了对当前帧Ti的波形执行MDCT过程所需的数据。有损编码器缓存中的数据具体可参见图8中的图示。
图8中虚线所示的单向箭头表示对应数据的更新或复制过程。
步骤S730:对所述有损编码器缓存中的波形进行改进离散余弦变换MDCT,得到第三变换结果。
具体地,对有损编码器缓存中的2N个数据点执行MDCT过程,得到第三变换结果。
如图8所示,第三变换结果中包含频域上的N个数据点(即当前帧Ti的频谱N)。
进一步地,在得到第三变换结果后,对第三变换结果进行量化和编码,得到当前帧的编码码流。
在执行完上述图7实施例中各步骤后,即完成了对当前帧(切换帧)的有损编码过程,也完成了无损编码器向有损编码器切换的过程。PCM音频数据中下一帧Ti+1的波形完全由有损编码器进行编码。
请参见图9,图9为本申请实施例提供的一种有损解码器向无损解码器切换的方法流程图。如图9所示,该方法包括步骤S910、步骤S920和步骤S930。下面将结合图10来描述图9方法中无损解码器缓存中数据变化过程。
其中,无损解码器缓存包含交叠缓存和输入帧缓存两部分,交叠缓存用于存储波形数据,输入帧缓存用于存储频谱数据。
步骤S910:获取当前帧Ti的频谱,并将所述当前帧Ti的频谱更新到所述输入帧缓存中。
具体地,在无损解码器接收到编码码流后,对编码码流进行解码和反量化,便可得到图10所示的从无损编码码流中得到的频谱数据。当前帧Ti的频谱即是从该频谱数据中获取到的。
如图10所示,当前帧Ti的频谱包含频域上N个数据点,N为正整数。
如图10所示,在进行INTIMDCT之前,无损解码器中的交叠缓存存储的是历史波形数据(N/2数据点),与当前帧并不匹配,无法用于对当前帧Ti的频谱进行的INTMDCT过程。
因此,在执行INTMDCT之前,需要进行相应的前处理:对交叠缓存进行初始化。
可选的,该初始化过程为将交叠缓存中的历史波形数据置零。
步骤S920:对所述无损解码器缓存中的频谱进行整数逆改进离散余弦变换INTIMDCT,得到第四变换结果。
在完成上述对交叠缓存的初始化后,开始执行对当前帧Ti的频谱N的INTIMDCT过程,得到图10所示的第四变换结果。
其中,如图10所示,第四变换结果包含时域上非混叠的N个数据点和时域上混叠的N/2个数据点。
由于对当前帧Ti的频谱进行时频域变换过程(INTIMDCT)过程中,交叠缓存缺少正确的波形数据,因此第四变换结果中时域上非混叠的N个数据点并不是正确的当前帧Ti的波形。而有损解码器缓存中存储有当前帧Ti的频谱进行时频域变换所需的数据,因此可通过执行步骤S930,得到正确的当前帧Ti的波形。
步骤S930:获取上一帧Ti-1的交叠帧,并将所述上一帧Ti-1的交叠帧与所述第四变换结果中的非混叠波形进行交叠相加OLA,得到所述当前帧Ti的波形;其中,所述上一帧Ti-1的频谱由所述有损解码器进行解码。
其中,有损解码器缓存包括当前帧缓存和下一帧缓存两部分。当前帧缓存中存储有上一帧Ti-1的频谱,下一帧缓存中存储有上一帧的交叠帧,上一帧的交叠帧即是对当前帧Ti的频谱进行时频域变换所需的数据。
其中,如图10所示,第四变换结果中时域上非混叠的N个数据点包含N-Nz个数据点和Nz个零填充Zero-padding数据点。
在获取到上一帧的交叠帧后,将上一帧的交叠帧(包含N-Nz个数据点)与第四变换结果中N-Nz个数据点进行交叠相加OLA,即可得到当前帧Ti的波形。
其中,上述第四变换结果中时域上混叠的N/2个数据点即是对下一帧Ti+1的频谱执行INTIMDCT过程所需要的波形数据,因此在得到第四变换结果中时域上混叠的N/2个数据点后,将该时域上混叠的N/2个数据点更新到交叠缓存中。
通过上述对交叠缓存的更新,便可确保对下一帧Ti+1的频谱进行时频域变换,即INTIMDCT,交叠缓存中存储有用于该时频域变换所需的波形数据,即上述更新交叠缓存的过程确保了有损解码器向无损解码器切换的过程。在完成当前帧的无损解码过程后,即完成了向无损解码器的切换,对下一帧Ti+1的频谱进行无损解码的过程可由无损解码器独立完成。
请参见图11,图11为本申请实施例提供的一种无损解码器向有损解码器切换的方法流程图。如图11所示,该方法包括步骤S1110、步骤S1120、步骤S1130和步骤S1140。下面将结合图12来描述图11方法中有损解码器缓存中数据变化过程。
其中,有损解码器缓存包含当前帧缓存和下一帧缓存两部分,当前帧缓存用于存储频谱数据,下一帧缓存用于存储波形数据。
步骤S1110:获取当前帧Ti的频谱,并将所述当前帧Ti的频谱更新到所述当前帧缓存中。
具体地,获取当前帧Ti的频谱过程可对应参照前述图9实施例对应的描述,此处不再赘述。
由于有损解码器的下一帧缓存中存储的是历史波形(如图12所示,历史波形包含N-Nz个数据点),其与当前帧并不匹配,因此无法用于对当前帧Ti的频谱进行的IMDCT过程。
为避免历史波形对当前帧Ti的频谱执行IMDCT过程带来干扰,在进行IMDCT之前,对下一帧缓存进行初始化。
可选地,该初始化过程为将下一帧缓存中的历史波形进行置零。
上述初始化过程也可称为进行IMDCT之前的前处理过程。
步骤S1120:对所述有损解码器缓存中的数据进行逆改进离散余弦变换IMDCT,得到第五变换结果。
在完成上述对下一帧缓存中数据的初始化后,对有损解码器缓存中的数据进行IMDCT,得到第五变换结果。
其中,如图12所示,第五变换结果包括当前帧Ti的交叠帧(包括N-Nz个数据点)和当前帧Ti对应的时域非混叠波形(包括N个数据点)。
由于上述IMDCT过程缺少下一帧缓存中的波形数据,因此第五变换结果中当前帧Ti对应的时域非混叠波形并非正确的当前帧Ti的波形。
此时,通过IMDCT之后相应的后处理过程(即步骤S1130和S1140),便可得到正确的当前帧Ti的波形。具体如下:
步骤S1130:对无损解码器缓存中上一帧Ti-1的交叠帧进行逆整数时域加窗混叠消除InverseINTwinTDAC,得到第六变换结果;其中,所述上一帧Ti-1的频谱由所述无损解码器进行解码。
其中,如图12所示,无损解码器缓存包含交叠缓存和输入帧缓存两部分,交叠缓存用于存储波形数据,输入帧缓存用于存储频谱数据。具体地,如图10所示,此时交叠缓存存储有上一帧的交叠帧,输入帧缓存存储有上一帧Ti-1的频谱。
其中,对上一帧的交叠帧进行逆整数时域加窗混叠消除Inverse INT winTDAC后,可得出对当前帧Ti的频谱执行IMDCT过程所需的数据。
在对无损解码器缓存中上一帧Ti-1的交叠帧进行Inverse INT winTDAC之前,对无损解码器缓存中的输入帧缓存进行初始化。
可选的,上述对无损解码器上输入帧缓存的初始化过程为将输入帧缓存中的数据置零。
在完成上述初始化过程后,对无损解码器缓存执行Inverse INT winTDAC过程,得到第六变换结果。
其中,如图12所示,第六变换结果包括时域上非混叠波形(包括N个数据点)和时域上混叠波形(包括N/2个数据点)。其中,如图12所示,时域上非混叠波形包括时域上非混叠的N-Nz个数据点和Nz个零填充数据点两部分。
在得到第六变换结果后,执行下述步骤S1140,便可得到当前帧Ti的波形。具体如下:
步骤S1140:将所述第六变换结果中的非混叠波形和所述第五变换结果中对应的波形进行交叠相加OLA,得到所述当前帧Ti的波形。
其中,当前帧Ti对应的时域非混叠波形与第六变换结果中的非混叠波形相对应。
其中,如图12所示,上述步骤S1140中交叠相加OLA的过程具体为:将当前帧Ti对应的时域非混叠波形中的N-Nz个数据点与第六变换结果中的非混叠波形中的N-Nz个数据点进行交叠相加OLA,交叠相加的结果与Nz个零填充数据点组成了当前帧Ti的波形N。
进一步地,将第五变换结果中当前帧Ti的交叠帧更新到有损解码器中的下一帧缓存中。
其中,当前帧Ti的交叠帧为对下一帧Ti+1的频谱执行IMDCT过程所需要使用的数据。此更新过程完成后,下一帧Ti+1的频谱的无损解码过程便可由无损解码器独立完成,即顺利实现了从无损解码器向有损解码器的切换。
请参见图13,图13为本申请实施例提供的一种编码装置的结构示意图。该编码装置包括第一存储单元1310、第二存储单元1320、获取单元1330、处理单元1340和编码单元1350。其中,第一存储单元1310用于存储混叠波形,第二存储单元1320用于存储非混叠波形。
获取单元1330用于获取上一帧Ti-1的波形,并将所述上一帧Ti-1的波形更新到所述第二存储单元;其中,所述上一帧Ti-1的波形由所述编码装置中的有损编码器进行编码。处理单元1340,用于对所述无损编码器上存储单元中的波形进行整数时域加窗混叠消除INTwinTDAC,得到第一变换结果,并将所述第一变换结果更新到所述第一存储单元中;所述获取单元1330,还用于获取当前帧Ti的波形,并将所述当前帧Ti的波形更新到所述第二存储单元;所述处理单元1340,还用于对所述无损编码器上存储单元中的波形进行整数改进离散余弦变换INTMDCT,得到第二变换结果。
其中,处理单元1340还用于在所述对所述无损编码器上存储单元中的波形进行整数时域加窗混叠消除INTwinTDAC之前,将所述第一存储单元进行初始化。
其中,所述上一帧Ti-1的波形和所述当前帧Ti的波形都包含时域上非混叠的N个数据点,N为正整数;所述第一变换结果包含时域上混叠的N/2个数据点;所述第二变换结果包含时域上混叠的N/2个数据点和频域上的N个数据点。
可选地,处理单元1340还用于将所述第二变换结果中时域上混叠的N/2个数据点更新到所述第一存储单元中。
其中,编码单元1350用于对所述第二变换结果中频域上的N个数据点进行量化和编码,得到所述当前帧Ti对应的编码码流。
具体地,上述图13实施例中编码装置各步骤的具体过程可对应参照前述有损编码器向无损编码器切换的方法实施例(即图5和图6中实施例),此处不再赘述。
请参见图14,图14为本申请实施例提供的一种编码装置的结构示意图。该编码装置包括第三存储单元1410和第四存储单元1420、获取单元1430、处理单元1440和编码单元1450。其中,第三存储单元1410用于存储上一帧Ti-1的波形,第四存储单元1420用于存储当前帧Ti的波形。
获取单元1430用于获取所述上一帧Ti-1的波形,并将所述上一帧Ti-1的波形更新到所述第三存储单元中;其中,所述上一帧Ti-1的波形由所述编码装置中的无损编码器进行编码;所述获取单元1430还用于获取当前帧Ti的波形,并将所述当前帧Ti的波形更新到所述第四存储单元;处理单元1440用于对所述有损编码器上存储单元中的波形进行改进离散余弦变换MDCT,得到第三变换结果。
其中,所述上一帧Ti-1的波形和所述当前帧Ti的波形都包含时域上非混叠的N个数据点,N为正整数;所述第三变换结果包括频域上的N个数据点。
其中,编码单元1450用于对所述第三变换结果进行量化和编码,得到所述当前帧Ti对应的编码码流。
具体地,上述图14实施例中编码装置各步骤的具体过程可对应参照前述无损编码器向有损编码器切换的方法实施例(即图7和图8中实施例),此处不再赘述。
请参见图15,图15为本申请实施例提供的一种解码装置的结构示意图。该解码装置包括第五存储单元1510和第六存储单元1520、获取单元1530、处理单元1540和解码单元1550。其中,第五存储单元1510用于存储波形数据,第六存储单元1520用于存储频谱数据。第五存储单元1510和第六存储单元1520位于解码装置上的无损解码器中。
获取单元1530用于获取当前帧Ti的频谱,并将所述当前帧Ti的频谱更新到所述第六存储单元。处理单元1540用于对所述无损解码器上存储单元中的频谱进行整数逆改进离散余弦变换INTIMDCT,得到第四变换结果。获取单元1530还用于获取上一帧Ti-1的交叠帧。处理单元1540还用于将所述上一帧Ti-1的交叠帧与所述第四变换结果中的非混叠波形进行交叠相加OLA,得到所述当前帧Ti的波形;其中,所述上一帧Ti-1的频谱由所述解码装置中的有损解码器进行解码。
其中,处理单元1540还用于在所述对所述无损解码器上存储单元中的频谱进行整数逆改进离散余弦变换INTIMDCT之前,对所述第五存储单元进行初始化。
其中,所述当前帧Ti的频谱包含频域上N个数据点,N为正整数;所述第四变换结果中的非混叠波形包含时域上非混叠的N个数据点。
可选地,所述第四变换结果中还包含时域上混叠的N/2个数据点,处理单元1540还用于将所述时域上混叠的N/2个数据点更新到所述第五存储单元1510。
其中,解码单元1550用于对接收到的编码码流进行解码和反量化处理,所述当前帧Ti的频谱是从处理结果中获取到的。
具体地,上述图15实施例中解码装置各步骤的具体过程可对应参照前述有损解码器向无损解码器切换的方法实施例(即图9和图10中实施例),此处不再赘述。
请参见图16,图16为本申请实施例提供的一种解码装置的结构示意图。该解码装置包括第七存储单元1610、第八存储单元1620、第九存储单元1660、获取单元1630、处理单元1640和解码单元1650。其中,第七存储单元1610用于存储频谱数据,第八存储单元1620用于存储波形数据,第九存储单元1660用于存储频谱数据。第七存储单元1610和第八存储单元1620位于解码装置上的有损解码器中,第九存储单元1660位于解码装置上的无损解码器中。
获取单元1630用于获取当前帧Ti的频谱,并将所述当前帧Ti的频谱更新到所述第七存储单元中。处理单元1640用于对所述有损解码器上存储单元中的数据进行逆改进离散余弦变换IMDCT,得到第五变换结果。处理单元1640还用于对所述无损解码器上存储单元中上一帧Ti-1的交叠帧进行逆整数时域加窗混叠消除InverseINTwinTDAC,得到第六变换结果;其中,所述上一帧Ti-1的频谱由所述无损解码器进行解码。处理单元1640还用于将所述第六变换结果中的非混叠波形和所述第五变换结果中对应的波形进行交叠相加OLA,得到所述当前帧Ti的波形。
其中,处理单元1640还用于将所述第五变换结果中所述当前帧Ti的交叠帧更新到所述第八存储单元。
其中,所述第五变换结果包括所述当前帧Ti的交叠帧和所述当前帧Ti对应的时域非混叠波形;所述当前帧Ti对应的时域非混叠波形与所述第六变换结果中的非混叠波形相对应。
其中,处理单元1640还用于在所述对所述有损解码器上存储单元中的数据进行逆改进离散余弦变换IMDCT之前,对所述第八存储单元进行初始化。
其中,处理单元1640还用于在所述对所述无损解码器上存储单元中上一帧Ti-1的交叠帧进行逆整数时域加窗混叠消除InverseINTwinTDAC之前,对所述无损解码器上存储单元中的第九存储单元进行初始化;其中,所述第九存储单元用于存储频谱数据。
其中,解码单元1650用于对接收到的编码码流进行解码和反量化处理,所述当前帧Ti的频谱是从处理结果中获取到的。
具体地,上述图16实施例中解码装置各步骤的具体过程可对应参照前述无损解码器向有损解码器切换的方法实施例(即图11和图12中实施例),此处不再赘述。
本申请实施例提供了一种编码器,该编码器包括处理电路和接口电路,处理电路和接口电路通过线路互连。其中,接口电路用于发送音频帧的编码码流,处理电路可用于执行前述图5-图8中方法实施例。
本申请实施例提供了一种解码器,该解码器包括处理电路和接口电路,处理电路和接口电路通过线路互连。其中,接口电路用于接收音频帧的编码码流,处理电路可用于执行前述图9-图12中方法实施例。
本申请实施例提供了一种编码器,包括:一个或多个处理器,以及非瞬时性计算机可读存储介质,此非瞬时性计算机可读存储介质耦合到处理器并存储由处理器执行的程序,该程序在由处理器执行时,使得编码器执行前述图5-图8中方法实施例(即有损编码器和无损编码器之间进行切换的方法)。
本申请实施例提供了一种解码器,包括:一个或多个处理器,以及非瞬时性计算机可读存储介质,此非瞬时性计算机可读存储介质耦合到处理器并存储由处理器执行的程序,该程序在由处理器执行时,使得解码器执行前述图9-图12中方法实施例(即有损解码器和无损解码器之间进行切换的方法)。
本申请实施例提供了一种非瞬时性计算机可读存储介质,包括程序代码,当其由计算机设备执行时,用于执行前述图5-图12中方法实施例中的方法。
本申请实施例提供了一种计算机程序产品,包括程序代码,当其在计算机或处理器上执行时,用于执行根据前述图5-图12中方法实施例中的方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (44)
1.一种有损编码器向无损编码器切换的方法,其特征在于,无损编码器缓存buffer包括交叠缓存和输入帧缓存,所述交叠缓存用于存储混叠波形,所述输入帧缓存用于存储非混叠波形;所述方法包括:
获取上一帧Ti-1的波形,并将所述上一帧Ti-1的波形更新到所述输入帧缓存;其中,所述上一帧Ti-1的波形由所述有损编码器进行编码;
对所述无损编码器缓存中的波形进行整数时域加窗混叠消除INTwinTDAC,得到第一变换结果,并将所述第一变换结果更新到所述交叠缓存中;
获取当前帧Ti的波形,并将所述当前帧Ti的波形更新到所述输入帧缓存;
对所述无损编码器缓存中的波形进行整数改进离散余弦变换INTMDCT,得到第二变换结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述对所述无损编码器缓存中的波形进行INTwinTDAC之前,将所述交叠缓存进行初始化。
3.根据权利要求1或2所述的方法,其特征在于,
所述上一帧Ti-1的波形和所述当前帧Ti的波形都包含时域上非混叠的N个数据点,N为正整数;
所述第一变换结果包含时域上混叠的N/2个数据点;
所述第二变换结果包含时域上混叠的N/2个数据点和频域上的N个数据点。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将所述第二变换结果中时域上混叠的N/2个数据点更新到所述交叠缓存中。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
对所述第二变换结果中频域上的N个数据点进行量化和编码,得到所述当前帧Ti对应的编码码流。
6.一种无损编码器向有损编码器切换的方法,其特征在于,有损编码器缓存包含上一帧缓存和当前帧缓存,所述上一帧缓存用于存储上一帧Ti-1的波形,所述当前帧缓存用于存储当前帧Ti的波形;所述方法包括:
获取所述上一帧Ti-1的波形,并将所述上一帧Ti-1的波形更新到所述上一帧缓存中;其中,所述上一帧Ti-1的波形由所述无损编码器进行编码;
获取当前帧Ti的波形,并将所述当前帧Ti的波形更新到所述当前帧缓存;
对所述有损编码器缓存中的波形进行改进离散余弦变换MDCT,得到第三变换结果。
7.根据权利要求6所述的方法,其特征在于,
所述上一帧Ti-1的波形和所述当前帧Ti的波形都包含时域上非混叠的N个数据点,N为正整数;
所述第三变换结果包括频域上的N个数据点。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
对所述第三变换结果进行量化和编码,得到所述当前帧Ti对应的编码码流。
9.一种有损解码器向无损解码器切换的方法,其特征在于,无损解码器缓存包含交叠缓存和输入帧缓存,所述交叠缓存用于存储波形数据,所述输入帧缓存用于存储频谱数据;所述方法包括:
获取当前帧Ti的频谱,并将所述当前帧Ti的频谱更新到所述输入帧缓存中;
对所述无损解码器缓存中的频谱进行整数逆改进离散余弦变换INTIMDCT,得到第四变换结果;
获取上一帧Ti-1的交叠帧,并将所述上一帧Ti-1的交叠帧与所述第四变换结果中的非混叠波形进行交叠相加OLA,得到所述当前帧Ti的波形;其中,所述上一帧Ti-1的频谱由所述有损解码器进行解码。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在所述对所述无损解码器缓存中的频谱进行整数逆改进离散余弦变换INTIMDCT之前,对所述交叠缓存进行初始化。
11.根据权利要求9或10所述的方法,其特征在于,
所述当前帧Ti的频谱包含频域上N个数据点,N为正整数;
所述第四变换结果中的非混叠波形包含时域上非混叠的N个数据点。
12.根据权利要求9-11中任一项所述的方法,其特征在于,所述第四变换结果中还包含时域上混叠的N/2个数据点,所述方法还包括:
将所述时域上混叠的N/2个数据点更新到所述交叠缓存中。
13.根据权利要求9-12中任一项所述的方法,其特征在于,所述获取当前帧Ti的频谱,包括:
所述无损解码器对接收到的编码码流进行解码和反量化处理,并从处理结果中获取所述当前帧Ti的频谱。
14.一种无损解码器向有损解码器切换的方法,其特征在于,有损解码器缓存包含当前帧缓存,所述当前帧缓存用于存储频谱数据;所述方法包括:
获取当前帧Ti的频谱,并将所述当前帧Ti的频谱更新到所述当前帧缓存中;
对所述有损解码器缓存中的数据进行逆改进离散余弦变换IMDCT,得到第五变换结果;
对无损解码器缓存中上一帧Ti-1的交叠帧进行逆整数时域加窗混叠消除InverseINTwinTDAC,得到第六变换结果;其中,所述上一帧Ti-1的频谱由所述无损解码器进行解码;
将所述第六变换结果中的非混叠波形和所述第五变换结果中对应的波形进行交叠相加OLA,得到所述当前帧Ti的波形。
15.根据权利要求14所述的方法,其特征在于,所述有损解码器缓存还包含下一帧缓存,所述下一帧缓存用于存储波形数据;所述方法还包括:
将所述第五变换结果中所述当前帧Ti的交叠帧更新到所述下一帧缓存中。
16.根据权利要求15所述的方法,其特征在于,
所述第五变换结果包括所述当前帧Ti的交叠帧和所述当前帧Ti对应的时域非混叠波形;
所述当前帧Ti对应的时域非混叠波形与所述第六变换结果中的非混叠波形相对应。
17.根据权利要求14或15中所述的方法,其特征在于,所述方法还包括:
在所述对所述有损解码器缓存中的数据进行逆改进离散余弦变换IMDCT之前,对所述下一帧缓存进行初始化。
18.根据权利要求14-17中任一项所述的方法,其特征在于,所述方法还包括:
在所述对无损解码器缓存中上一帧Ti-1的交叠帧进行逆整数时域加窗混叠消除Inverse INT winTDAC之前,对所述无损解码器缓存中的输入帧缓存进行初始化;其中,所述输入帧缓存用于存储频谱数据。
19.根据权利要求14-18中任一项所述的方法,其特征在于,所述获取当前帧Ti的频谱包括:
所述有损解码器对接收到的编码码流进行解码和反量化处理,并从处理结果中获取所述当前帧Ti的频谱。
20.一种编码装置,其特征在于,所述编码装置包括无损编码器,所述无损编码器上存储单元包括第一存储单元和第二存储单元,所述第一存储单元用于存储混叠波形,所述第二存储单元用于存储非混叠波形;所述编码装置还包括:
获取单元,用于获取上一帧Ti-1的波形,并将所述上一帧Ti-1的波形更新到所述第二存储单元;其中,所述上一帧Ti-1的波形由所述编码装置中的有损编码器进行编码;
处理单元,用于对所述无损编码器上存储单元中的波形进行整数时域加窗混叠消除INTwinTDAC,得到第一变换结果,并将所述第一变换结果更新到所述第一存储单元中;
所述获取单元,还用于获取当前帧Ti的波形,并将所述当前帧Ti的波形更新到所述第二存储单元;
所述处理单元,还用于对所述无损编码器上存储单元中的波形进行整数改进离散余弦变换INTMDCT,得到第二变换结果。
21.根据权利要求20所述的装置,其特征在于,所述处理单元还用于:
在所述对所述无损编码器上存储单元中的波形进行整数时域加窗混叠消除INTwinTDAC之前,将所述第一存储单元进行初始化。
22.根据权利要求20或21所述的装置,其特征在于,
所述上一帧Ti-1的波形和所述当前帧Ti的波形都包含时域上非混叠的N个数据点,N为正整数;
所述第一变换结果包含时域上混叠的N/2个数据点;
所述第二变换结果包含时域上混叠的N/2个数据点和频域上的N个数据点。
23.根据权利要求22所述的装置,其特征在于,所述处理单元还用于:
将所述第二变换结果中时域上混叠的N/2个数据点更新到所述第一存储单元中。
24.根据权利要求22或23所述的装置,其特征在于,所述装置还包括:
编码单元,用于对所述第二变换结果中频域上的N个数据点进行量化和编码,得到所述当前帧Ti对应的编码码流。
25.一种编码装置,其特征在于,所述编码装置包括有损编码器,所述有损编码器上存储单元包括第三存储单元和第四存储单元,所述第三存储单元用于存储上一帧Ti-1的波形,所述第四存储单元用于存储当前帧Ti的波形;所述编码装置还包括:
获取单元,用于获取所述上一帧Ti-1的波形,并将所述上一帧Ti-1的波形更新到所述第三存储单元中;其中,所述上一帧Ti-1的波形由所述编码装置中的无损编码器进行编码;
所述获取单元,还用于获取当前帧Ti的波形,并将所述当前帧Ti的波形更新到所述第四存储单元;
处理单元,用于对所述有损编码器上存储单元中的波形进行改进离散余弦变换MDCT,得到第三变换结果。
26.根据权利要求25所述的装置,其特征在于,
所述上一帧Ti-1的波形和所述当前帧Ti的波形都包含时域上非混叠的N个数据点,N为正整数;
所述第三变换结果包括频域上的N个数据点。
27.根据权利要求25或26所述的装置,其特征在于,所述编码装置还包括:
编码单元,用于对所述第三变换结果进行量化和编码,得到所述当前帧Ti对应的编码码流。
28.一种解码装置,其特征在于,所述解码装置包括无损解码器,所述无损解码器上存储单元包括第五存储单元和第六存储单元,所述第五存储单元用于存储波形数据,所述第六存储单元用于存储频谱数据;所述解码装置还包括:
获取单元,用于获取当前帧Ti的频谱,并将所述当前帧Ti的频谱更新到所述第六存储单元;
处理单元,用于对所述无损解码器上存储单元中的频谱进行整数逆改进离散余弦变换INTIMDCT,得到第四变换结果;
所述获取单元,还用于获取上一帧Ti-1的交叠帧;
所述处理单元,还用于将所述上一帧Ti-1的交叠帧与所述第四变换结果中的非混叠波形进行交叠相加OLA,得到所述当前帧Ti的波形;其中,所述上一帧Ti-1的频谱由所述解码装置中的有损解码器进行解码。
29.根据权利要求28所述的装置,其特征在于,所述处理单元还用于:
在所述对所述无损解码器上存储单元中的频谱进行整数逆改进离散余弦变换INTIMDCT之前,对所述第五存储单元进行初始化。
30.根据权利要求28或29所述的装置,其特征在于,
所述当前帧Ti的频谱包含频域上N个数据点,N为正整数;
所述第四变换结果中的非混叠波形包含时域上非混叠的N个数据点。
31.根据权利要求28-30中任一项所述的装置,其特征在于,所述第四变换结果中还包含时域上混叠的N/2个数据点,所述处理单元还用于:
将所述时域上混叠的N/2个数据点更新到所述第五存储单元中。
32.根据权利要求28-31中任一项所述的装置,其特征在于,所述解码装置还包括:
解码单元,用于对接收到的编码码流进行解码和反量化处理,所述当前帧Ti的频谱是从处理结果中获取到的。
33.一种解码装置,其特征在于,所述解码装置包括有损解码器和无损解码器,所述有损解码器上存储单元包括第七存储单元,所述第七存储单元用于存储频谱数据;所述解码装置还包括:
获取单元,用于获取当前帧Ti的频谱,并将所述当前帧Ti的频谱更新到所述第七存储单元中;
处理单元,用于对所述有损解码器上存储单元中的数据进行逆改进离散余弦变换IMDCT,得到第五变换结果;
所述处理单元,还用于对所述无损解码器上存储单元中上一帧Ti-1的交叠帧进行逆整数时域加窗混叠消除InverseINTwinTDAC,得到第六变换结果;其中,所述上一帧Ti-1的频谱由所述无损解码器进行解码;
所述处理单元,还用于将所述第六变换结果中的非混叠波形和所述第五变换结果中对应的波形进行交叠相加OLA,得到所述当前帧Ti的波形。
34.根据权利要求33所述的装置,其特征在于,所述有损解码器上上存储单元还包括第八存储单元,所述第八存储单元用于存储波形数据;所述处理单元还用于:
将所述第五变换结果中所述当前帧Ti的交叠帧更新到所述第八存储单元。
35.根据权利要求34所述的装置,其特征在于,
所述第五变换结果包括所述当前帧Ti的交叠帧和所述当前帧Ti对应的时域非混叠波形;
所述当前帧Ti对应的时域非混叠波形与所述第六变换结果中的非混叠波形相对应。
36.根据权利要求34或35中所述的装置,其特征在于,所述处理单元还用于:
在所述对所述有损解码器上存储单元中的数据进行逆改进离散余弦变换IMDCT之前,对所述第八存储单元进行初始化。
37.根据权利要求33-36中任一项中所述的装置,其特征在于,所述处理单元还用于:
在所述对所述无损解码器上存储单元中上一帧Ti-1的交叠帧进行逆整数时域加窗混叠消除InverseINTwinTDAC之前,对所述无损解码器上存储单元中的第九存储单元进行初始化;其中,所述第九存储单元用于存储频谱数据。
38.根据权利要求33-37中任一项所述的装置,其特征在于,所述解码装置还包括:
解码单元,用于对接收到的编码码流进行解码和反量化处理,所述当前帧Ti的频谱是从处理结果中获取到的。
39.一种编码器,其特征在于,包括处理电路,用于执行根据权利要求1至8中任一项所述的方法。
40.一种解码器,其特征在于,包括处理电路,用于执行根据权利要求9至19中任一项所述的方法。
41.一种编码器,其特征在于,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处理器执行时,使得所述编码器执行根据权利要求1至8中任一项所述的方法。
42.一种解码器,其特征在于,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处理器执行时,使得所述解码器执行根据权利要求9至19中任一项所述的方法。
43.一种计算机程序产品,其特征在于,包括程序代码,当其在计算机或处理器上执行时,用于执行根据权利要求1至19中任一项所述的方法。
44.一种非瞬时性计算机可读存储介质,其特征在于,包括程序代码,当其由计算机设备执行时,用于执行根据权利要求1至19中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310152315.7A CN118522296A (zh) | 2023-02-17 | 2023-02-17 | 有损编解码器和无损编解码器之间的切换方法和装置 |
PCT/CN2024/073429 WO2024169532A1 (zh) | 2023-02-17 | 2024-01-22 | 有损编解码器和无损编解码器之间的切换方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310152315.7A CN118522296A (zh) | 2023-02-17 | 2023-02-17 | 有损编解码器和无损编解码器之间的切换方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118522296A true CN118522296A (zh) | 2024-08-20 |
Family
ID=92281618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310152315.7A Pending CN118522296A (zh) | 2023-02-17 | 2023-02-17 | 有损编解码器和无损编解码器之间的切换方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118522296A (zh) |
WO (1) | WO2024169532A1 (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7536305B2 (en) * | 2002-09-04 | 2009-05-19 | Microsoft Corporation | Mixed lossless audio compression |
US7424434B2 (en) * | 2002-09-04 | 2008-09-09 | Microsoft Corporation | Unified lossy and lossless audio compression |
EP1852849A1 (en) * | 2006-05-05 | 2007-11-07 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for lossless encoding of a source signal, using a lossy encoded data stream and a lossless extension data stream |
EP1852848A1 (en) * | 2006-05-05 | 2007-11-07 | Deutsche Thomson-Brandt GmbH | Method and apparatus for lossless encoding of a source signal using a lossy encoded data stream and a lossless extension data stream |
CN101231850B (zh) * | 2007-01-23 | 2012-02-29 | 华为技术有限公司 | 编解码方法及装置 |
ES2683077T3 (es) * | 2008-07-11 | 2018-09-24 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Codificador y decodificador de audio para codificar y decodificar tramas de una señal de audio muestreada |
ES2706061T3 (es) * | 2010-01-13 | 2019-03-27 | Voiceage Corp | Decodificación de audio con cancelación directa de distorsión por repliegue espectral en el dominio del tiempo usando filtrado predictivo lineal |
US10438597B2 (en) * | 2017-08-31 | 2019-10-08 | Dolby International Ab | Decoder-provided time domain aliasing cancellation during lossy/lossless transitions |
EP3451332B1 (en) * | 2017-08-31 | 2020-03-25 | Dolby International AB | Decoder-provided time domain aliasing cancellation during lossy/lossless transitions |
-
2023
- 2023-02-17 CN CN202310152315.7A patent/CN118522296A/zh active Pending
-
2024
- 2024-01-22 WO PCT/CN2024/073429 patent/WO2024169532A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024169532A1 (zh) | 2024-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9728196B2 (en) | Method and apparatus to encode and decode an audio/speech signal | |
US10607621B2 (en) | Method for predicting bandwidth extension frequency band signal, and decoding device | |
EP2022045B1 (en) | Decoding of predictively coded data using buffer adaptation | |
US10089997B2 (en) | Method for predicting high frequency band signal, encoding device, and decoding device | |
KR101647576B1 (ko) | 스테레오 오디오 신호 인코더 | |
US8392176B2 (en) | Processing of excitation in audio coding and decoding | |
JP2010538314A (ja) | 切り換え可能な時間分解能を用いた低演算量のスペクトル分析/合成 | |
US20080065373A1 (en) | Sound Encoding Device And Sound Encoding Method | |
CN104392726B (zh) | 编码设备和解码设备 | |
CN118522296A (zh) | 有损编解码器和无损编解码器之间的切换方法和装置 | |
WO2018142018A1 (en) | Stereo audio signal encoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |