enhanced aac+ to aac lc |
enhanced aac+ to aac lc |
Nov 2 2012, 09:53
Post
#1
|
|
|
Group: Members Posts: 10 Joined: 1-November 12 Member No.: 104229 |
Hi, everyone, has there anybody used enhanced aac+ code(TS 26.410) to encode/decode only aac lc ,without sbr?
I modified the encoder of the enhanced aac+, ,there is no sbr, then when the decoder decode the new .3gp file ,no sbr is decoded, but the outout sample rate is 1/2 downsampled, because aac lc works at 1/2 sample rate, the sbr works at original sample rate, and in the decoder ,it is sbr make it become to original sample rate, but now there is no sbr. Does anyone know how to make the sample rate of decoder output same as the original input file sample rate, i tried to modify the encoder to encode at original sample rate,but there will be no sound, and if i use 1/2 sample rate .3gp & modify the decoder to change the sample rate and frame size, the sound will sound strange... or is that ok if i upsample the new decoder output file (1/2 sample rate ) through matlab? Thanks in advance. This post has been edited by wind: Nov 2 2012, 10:29 |
|
|
|
![]() |
Nov 3 2012, 15:43
Post
#2
|
|
![]() Group: Members Posts: 735 Joined: 17-September 06 Member No.: 35307 |
I guess we need to inspect the source code of an open source decoder to find out. I can't see how mathematically they could generate with an iMDCT containing twice as many samples as 'frequency' bins (positive and negative 'frequencies' both count towards the total) provided in the transform domain. Therefore, I'd assume it must be done after converting to the time domain (i.e. by upsampling with appropriate anti-alias filtering).
I'd like to be enlightened by anyone who knows for sure. |
|
|
|
Nov 4 2012, 23:50
Post
#3
|
|
|
Group: Members Posts: 10 Joined: 1-November 12 Member No.: 104229 |
I guess we need to inspect the source code of an open source decoder to find out. I can't see how mathematically they could generate with an iMDCT containing twice as many samples as 'frequency' bins (positive and negative 'frequencies' both count towards the total) provided in the transform domain. Therefore, I'd assume it must be done after converting to the time domain (i.e. by upsampling with appropriate anti-alias filtering). I'd like to be enlightened by anyone who knows for sure. Hi, Dynamic,in the decoder, 'splline_resampler.c', there are static const float a_22_16 = 0.3f; resample from 22.05khz->16khz static const float b_22_16 = 1.3f; static const float a_24_16 = 0.24f; resample from 24khz->16khz static const float b_24_16 = 1.24f; static const float a_22_8 = 0.06f; resample from 22khz->8khz static const float b_22_8 = 1.06f; static const float a_24_8 = 0.05f; resample from 24khz->8khz static const float b_24_8 = 1.05f; i guess maybe they add the iirFilterCoeff_a/b of resampling from e.g.24khz->48khz(upsample back to original one)...,but i'm not sure, i don't know how these values come from .do you know how to make sure of these iirFilterCoeff_a/b values? by the way, do you know have to get the mono decoder output file ? i set the CT mono debug mode, it seems everytime when the program went to interleaveSamples(&TimeDataFloat[0],&TimeDataFloat[frameSize],pTimeDataPcm,frameSize,&numChannels); the 'numChannels' will change from 1 to 2, but if i set the numchannels keeps 1, i will get the mono output ,but the sound sounds totally wrong...thanks. This post has been edited by wind: Nov 4 2012, 23:52 |
|
|
|
wind enhanced aac+ to aac lc Nov 2 2012, 09:53
Dynamic What you see is to be expected. AFAIK, the only wa... Nov 2 2012, 19:20
wind QUOTE (Dynamic @ Nov 2 2012, 19:20) What ... Nov 3 2012, 15:14
wind QUOTE (Dynamic @ Nov 2 2012, 19:20) What ... Nov 3 2012, 15:25
wind QUOTE (Dynamic @ Nov 3 2012, 15:43) I gue... Nov 4 2012, 12:13
Dynamic SoX is a free open source project on Sourceforge w... Nov 4 2012, 19:15
wind QUOTE (Dynamic @ Nov 4 2012, 19:15) SoX i... Nov 4 2012, 21:47
saratoga libspeex also contains a good resampler that is us... Nov 4 2012, 20:16
wind QUOTE (saratoga @ Nov 4 2012, 20:16) libs... Nov 4 2012, 21:51
Dynamic Thats' from the 3gpp code isn't it? I thin... Nov 5 2012, 19:30
wind QUOTE (Dynamic @ Nov 5 2012, 19:30) Thats... Nov 6 2012, 00:02
Dynamic QUOTE (wind @ Nov 5 2012, 23:02) How abou... Nov 6 2012, 19:20
wind QUOTE (Dynamic @ Nov 6 2012, 19:20) QUOTE... Nov 7 2012, 17:30
Dynamic So that's an interleave function?
Why do you ... Nov 7 2012, 23:00
wind QUOTE (Dynamic @ Nov 7 2012, 23:00) So th... Nov 8 2012, 13:31![]() ![]() |
|
Lo-Fi Version | Time is now: 22nd May 2013 - 17:11 |