DSPRelated.com
Forums

G726?

Started by Satheesh Ram October 28, 2004


Hi all
I am a new member of this group!

I am working on implementing G726 in parthus ceva's Palm DSP. I like
to know whether anybody worked on similar implementation before? if
yes, what's the best MIPS performance achieved?

Fmult function takes roughly 30% of the cycle count. The fmult
function does floating point multiplication of given inputs. Is there
any simple alogorithm/logic to perform the same function, other than
the way described in the ITU G726 standard (pseudo code).

Thnx
Satheesh




Sateesh-

> I am working on implementing G726 in parthus ceva's Palm DSP. I like
> to know whether anybody worked on similar implementation before? if
> yes, what's the best MIPS performance achieved?
>
> Fmult function takes roughly 30% of the cycle count. The fmult
> function does floating point multiplication of given inputs. Is there
> any simple alogorithm/logic to perform the same function, other than
> the way described in the ITU G726 standard (pseudo code).

Normally Fmult is optimized on the specific processor being used. For example,
on
Texas Instruments website, there are examples of G.726 Fmult function in C5xxx
assembly language.

You will need to code the fastest implementation on the CEVA Palm DSP --
probably
16-bit, using MMD instructions.

-Jeff




Hi Satheesh,
If you don't mind being not bit-exact with the standard (but with same quality),
you can replace the fmult with a fixed-point multiplication, and save a few MIPS
per channel.
Bare in mind that you have to understand exactly what fmult does before you can
replace it with a fixed-point equivalent.

Guy Bazelet

_____________________________________________________________________
________________________________________________________________________

Message: 1
Date: Thu, 28 Oct 2004 10:12:57 -0000
From: "Satheesh Ram" <>
Subject: G726?
Hi all
I am a new member of this group!

I am working on implementing G726 in parthus ceva's Palm DSP. I like
to know whether anybody worked on similar implementation before? if
yes, what's the best MIPS performance achieved?

Fmult function takes roughly 30% of the cycle count. The fmult
function does floating point multiplication of given inputs. Is there
any simple alogorithm/logic to perform the same function, other than
the way described in the ITU G726 standard (pseudo code).

Thnx
Satheesh





Hi,

As you mentioned, Fmult is the most complex routine in G726. One
aproach to reduce MIPS for this function is to convert 11 bits float
(1 sign,4 exponent and 6 mantissa) into separte buffer( preferably
circular). This way float multiplication can be DSP friendly. Shatrughna

--- In , "Guy Bazelet" <guy_b@r...> wrote:
>
> Hi Satheesh,
> If you don't mind being not bit-exact with the standard (but with
same quality), you can replace the fmult with a fixed-point
multiplication, and save a few MIPS per channel.
> Bare in mind that you have to understand exactly what fmult does
before you can replace it with a fixed-point equivalent.
>
> Guy Bazelet
_____________________________________________________________________
>
______________________________________________________________________
__
>
> Message: 1
> Date: Thu, 28 Oct 2004 10:12:57 -0000
> From: "Satheesh Ram" <satheesh.ram@g...>
> Subject: G726? >
> Hi all
> I am a new member of this group!
>
> I am working on implementing G726 in parthus ceva's Palm DSP. I
like
> to know whether anybody worked on similar implementation before? if
> yes, what's the best MIPS performance achieved?
>
> Fmult function takes roughly 30% of the cycle count. The fmult
> function does floating point multiplication of given inputs. Is
there
> any simple alogorithm/logic to perform the same function, other
than
> the way described in the ITU G726 standard (pseudo code).
>
> Thnx
> Satheesh