Help - Search - Members - Calendar
Full Version: MPEG-4 ALS help
Hydrogenaudio Forums > Lossless Audio Compression > Lossless / Other Codecs
Persues
Hi friend,
I am new in audio field and started from ALS..
I have been reading those codes. I started with Matlab blocksets..
and tested on some sample arrays. Now planing to switch on PCM samples.
some confusions.. how to make the blocks and what is the size..
and whether LPC coeff are static or they change..

Plese guide the NewB.. smile.gif

Thanks in advance
Justin Ruggles
QUOTE (Persues @ Apr 22 2009, 04:24) *
Hi friend,
I am new in audio field and started from ALS..
I have been reading those codes. I started with Matlab blocksets..
and tested on some sample arrays. Now planing to switch on PCM samples.
some confusions.. how to make the blocks and what is the size..
and whether LPC coeff are static or they change..

Plese guide the NewB.. smile.gif

Thanks in advance

Are you trying to encode or decode? LPC coeffs are static within a block, but obviously change from frame-to-frame. The LPC filter order can be static or dynamic, which is determined from the AlsSpecificConfig. The block size is static and is encoded in the AlsSpecificConfig, but they can be broken down into sub-blocks and entropy coding blocks to increase compression efficiency if needed. If you have not done so, I suggest you read the ISO specification, not just the reference code.
Persues
QUOTE (Justin Ruggles @ Apr 22 2009, 20:27) *
Are you trying to encode or decode? LPC coeffs are static within a block, but obviously change from frame-to-frame. The LPC filter order can be static or dynamic, which is determined from the AlsSpecificConfig. The block size is static and is encoded in the AlsSpecificConfig, but they can be broken down into sub-blocks and entropy coding blocks to increase compression efficiency if needed. If you have not done so, I suggest you read the ISO specification, not just the reference code.


Sorry for delay in reply..
i read about those functions in refrence code but didnt found the ISO specifications docs, searching...smile.gif
for now i am encoding and that even in matlab. so i am not looking after the refrence code..
i have just simulated blocks as in block diagram..
I took the PCM samples and buffered in small frames ( random no.) and found the autocorrelation matrix and input those
in the Lavinson durbin filter..to get coefficients.. ( till here i reached).
Now i am planing to realise decoder with those coefficients and reverse the process..( right now for the single frame).
i will work on entropy coding after getting these.

Kindly guide me , if i am going in right way or not ..

Justin Ruggles
QUOTE (Persues @ Apr 23 2009, 05:58) *
QUOTE (Justin Ruggles @ Apr 22 2009, 20:27) *
Are you trying to encode or decode? LPC coeffs are static within a block, but obviously change from frame-to-frame. The LPC filter order can be static or dynamic, which is determined from the AlsSpecificConfig. The block size is static and is encoded in the AlsSpecificConfig, but they can be broken down into sub-blocks and entropy coding blocks to increase compression efficiency if needed. If you have not done so, I suggest you read the ISO specification, not just the reference code.


Sorry for delay in reply..
i read about those functions in refrence code but didnt found the ISO specifications docs, searching...smile.gif


You can purchase the ISO spec here:
http://www.iso.org/iso/iso_catalogue/catal...?csnumber=43026

There are also some necessary related corrigenda available from ISO at no charge.

QUOTE
for now i am encoding and that even in matlab. so i am not looking after the refrence code..
i have just simulated blocks as in block diagram..
I took the PCM samples and buffered in small frames ( random no.) and found the autocorrelation matrix and input those
in the Lavinson durbin filter..to get coefficients.. ( till here i reached).
Now i am planing to realise decoder with those coefficients and reverse the process..( right now for the single frame).
i will work on entropy coding after getting these.

Kindly guide me , if i am going in right way or not ..

MPEG4-ALS actually encodes quantized PARCOR coefficients, not LPC coefficients. The spec describes a bit-exact transformation from one to the other. For encoding, you can use autocorrelation+Levinson-Durbin to get your LPC coeffs, but then you need to convert them to PARCOR, then back to LPC before running the filter to get your prediction residual. Or you can just use autocorrelation+Schur recursion to get PARCOR, quantize them, then convert to LPC.
Persues
QUOTE (Justin Ruggles @ Apr 23 2009, 21:22) *
MPEG4-ALS actually encodes quantized PARCOR coefficients, not LPC coefficients. The spec describes a bit-exact transformation from one to the other. For encoding, you can use autocorrelation+Levinson-Durbin to get your LPC coeffs, but then you need to convert them to PARCOR, then back to LPC before running the filter to get your prediction residual. Or you can just use autocorrelation+Schur recursion to get PARCOR, quantize them, then convert to LPC.


yes,I got the conversion and reconstruction of PARCOR coeff. from the specifications.. but not found the Schur recursion on net sad.gif. Is it faster than the L-D mtd ??

Anyways thanks for reply.. I will continue studying and will come again if i will get stuck... biggrin.gif
Justin Ruggles
QUOTE (Persues @ Apr 24 2009, 05:52) *
QUOTE (Justin Ruggles @ Apr 23 2009, 21:22) *
MPEG4-ALS actually encodes quantized PARCOR coefficients, not LPC coefficients. The spec describes a bit-exact transformation from one to the other. For encoding, you can use autocorrelation+Levinson-Durbin to get your LPC coeffs, but then you need to convert them to PARCOR, then back to LPC before running the filter to get your prediction residual. Or you can just use autocorrelation+Schur recursion to get PARCOR, quantize them, then convert to LPC.


yes,I got the conversion and reconstruction of PARCOR coeff. from the specifications.. but not found the Schur recursion on net sad.gif. Is it faster than the L-D mtd ??

Anyways thanks for reply.. I will continue studying and will come again if i will get stuck... biggrin.gif

There is an implementation of Schur recursion in libgsm, which is released under a BSD-variant license.

edit: yes it is faster than Levinson-Durbin
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.