HydrogenAudio

Hydrogenaudio Forum => Uploads => Topic started by: wkwai on 2003-12-03 09:46:59

Title: MPEG4 AAC non-conforming evaluation program
Post by: wkwai on 2003-12-03 09:46:59
Hi folks,

I have uploaded a MPEG4 AAC test program.. It is NOT MPEG4 compliant as it does not conform to the standard. However, I am using as much of its tools as possible..

Conformance isn't done yet.. as such you will have to use the decoder that comes with the program to decode the encoded mp4a files into PCM files. (Unfortunately, you will need somekind of program that could playback headless raw pcm files such as CoolEdit.)

Input files can be in WAV or raw PCM format..

Please note..

1.  Gain Control selection would only change the filterbanks from the 2048 and 256 length module to the Sony Hybrid MDCT FilterBank. Its Bitstream is not scaleable.. (Not Implemented yet)..

2. Constant Bitrates only worked on Non Gain Control.. If you are using gain-control, you will have to switch to variable bitrates. There is no gurrantee that it will work at 128 kbps or 160 kbps.. In fact it is optimized with PNS, TNS, INTENSITY and MS Stereo ON.

3. Automatic window type switching, KB / Sine windowing function isn't properly implemented yet. You can manually force the switch..

4. The Decoder & Encoder isn't properly optimized yet..
 
Please be free to post your comment. Your input would be most valued.
Title: MPEG4 AAC non-conforming evaluation program
Post by: Ivan Dimkovic on 2003-12-03 16:22:14
Thanks wkwai,

I don't have too much time these days, but I did give a try to your codec -  nice work, it is always good to see more development in perceptual audio field.

Codec doesn't sound bad,  but I have some remarks:

- some of the tools (either PNS or BWP) break the bit rate control, and you end up with very small bit rate

- TNS with gain control is possible IMO by the standard, you should consider that

Wave in/out would also be a very good addy
Title: MPEG4 AAC non-conforming evaluation program
Post by: wkwai on 2003-12-04 07:08:43
Actually if you measure the size ratio between the original clips and the encoded clips, the bitrates is actually less than what it should be.. It is because, I have not implemented the fillbits module.. The part when the bits buffer exceeds its maximum size. The extra bits is just discarded. 

As for BWP, I don't really think it is very efficient.. I have not try out the LTP though.. BWP is disabled in a lot of cases such as when there is block switching, PNS and Intensity.. In fact I have some doubts about integrating BWP with MS Stereo! There is some theoritical calculations that indicate potential trouble in the use of BWP with MS Stereo..
Title: MPEG4 AAC non-conforming evaluation program
Post by: Ivan Dimkovic on 2003-12-04 11:08:33
Quote
Actually if you measure the size ratio between the original clips and the encoded clips, the bitrates is actually less than what it should be.. It is because, I have not implemented the fillbits module.. The part when the bits buffer exceeds its maximum size. The extra bits is just discarded.


I think you should avoid the situation where you would have to use fillbits as much as possible, for example with overcoding if you  know the bitres status apriori, which is usual case in most AAC encoders.

If you use greedy-merge huffman coding in that case it has sense, since usually greedy-merge is employed only after noise shaping has been done, and then you always have average 40-80 bits more. Sometimes the bitres buffer might be full and you'd have to employ fill bits.

Quote
As for BWP, I don't really think it is very efficient.. I have not try out the LTP though.. BWP is disabled in a lot of cases such as when there is block switching, PNS and Intensity.. In fact I have some doubts about integrating BWP with MS Stereo! There is some theoritical calculations that indicate potential trouble in the use of BWP with MS Stereo..


Never tried BWP though in my encoder (actually I did in Psytel - but that was ages ago) - since it imposes problems with seeking and it is not commercially viable (i.e. - no commercial VLSI/DSP decoder will use that) - and the theoritcal gain is anyway very small
Title: MPEG4 AAC non-conforming evaluation program
Post by: Todesengel on 2003-12-04 11:27:26
I am impressed of your encoder. Will you make newer versions? Will you make plugin for Winamp? I think if you make WAV output it will be good.
Title: MPEG4 AAC non-conforming evaluation program
Post by: wkwai on 2003-12-05 09:21:01
I don't really know.. Actually, I was sick for the last  2 years and unable to work for some time.. So, I did this program as some kind of "keep myself fit" exercise at home...  You know how it is like to stop programming for some time.. I needed to do something to remain at the "cutting - edge".. 

I'll be rejoining the corporate world very soon..
Title: MPEG4 AAC non-conforming evaluation program
Post by: wkwai on 2003-12-05 09:22:43
Quote
Never tried BWP though in my encoder (actually I did in Psytel - but that was ages ago) - since it imposes problems with seeking and it is not commercially viable (i.e. - no commercial VLSI/DSP decoder will use that) - and the theoritcal gain is anyway very small

You are right, the prediction gain is very small.. I think LTP would perform better though I have not tried it out yet..