[vorbis] Setting up the trig tables.

Govind Kharbanda govind.kharbanda at sli-institute.ac.uk
Sun Aug 18 06:37:25 PDT 2002



"Timothy J. Wood" wrote:

>    I thought it was standard practice to build trig functions via CORDIC
> or something like that.  At any rate, I would sort of assume that a
> lookup table would be the last approach in a hardware design.  It seems
> like you would take less footprint with a circuit that could do a
> series approximation of trig functions than putting in a lookup table.

That's an interesting comment.  I've never done any complex hardware
design before so I certainly did not decide to use a lookup table based
on prior experience.  I just decided that I didn't want to implement
trig functions in hardware using a Taylor expansion and as the existing
software generates lookup tables then that should work.  I calculated
the size of the trig lookup tables to be 5n bytes and the bitrev table
to be n bytes, where n is the Vorbis block size (2048 or 256).  I asked
the guys at Celoxica, who produce the DK1 design suite we're using to
produce the MDCT hardware, if those tables would fit OK on a Xilinx
Virtex 2000e FPGA and they think so, judging from earlier MP3 designs. 
The Xilinx FPGAs have the capability to synthesize "block ram" which is
suited to this.  If the table were too big, we could use external SRAM
which would be replaced by Flash memory in a final ASIC implementation.

It's important to remember this is a Masters project with only 5 or so
weeks left to go.  If we were doing this commercially we would implement
more functions than just the MDCT in hardware.  For instance, the
residue and codebook operations appears fairly intensive, from existing
studies using the 'gprof' tool.  In this case less estate would be
available on the FPGA for tables.  I've just visited the CORDIC website
and it contains a lot of relevant information that I wish I knew of
weeks ago.  One observation though is that it refers to rotating a
vector around the unit circle.  Vorbis appears to use a "unit square",
although I haven't looked at the differences in any detail.

For those with further interest in our work, you can always visit our
TWiki site:

http://www.sli-institute.ac.uk/project/motorola_projects/twiki/bin/view/H2/WebHome

Best wishes,

Govind


-- 
Govind S Kharbanda                Institute for System Level Integration
MSc Course Rep.                        Alba Campus, Livingston, EH54 7EG
http://www.sli-institute.ac.uk/~gk/                    Tel: 01506 469340
--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.




More information about the Vorbis mailing list