Segher Boessenkool
2000-Dec-23 23:23 UTC
[vorbis-dev] Look what I found under the Xmas tree!
Hello people, Looks like Santa Claus thinks I've been a good boy this year. Here's the third in my performance patch series: d.m.l Apply after applying d.o.n and d.n.m; I don't know how much of those got applied to the CVS tree. What's inside: Request for help! Look in os.h if you're using a compiler or processor I don't use (I use gcc on K5, K7, G3). New MDCT! Now we have two; competition is a good thing. Let's see which one is fastest :-) Completely overhauled psycha! Well, actually, the only big change is that it does all of its computations in the dB domain, and does some things just a little bit different, to improve performance. Changed the ATH_Bark_dB array. This removes some very annoying artifacts when encoding low-frequency, tonal sounds. MDCT_COOR: this should reduce the blocking artifacts the MDCT creates. This #define is tunable; smaller is less correction. The algorithm is only exact for sine windows, but is ok for the Vorbis window as well, as long as the flr[] is reasonably smooth (in the high freq region). This should help low bitrates. And, of course, the quantization control magic. Never thought 69kbps would sound that good. Still need some VQ training; I just can't figure how to use the tools correctly (currently, huffbuild is segfaulting on me). Yoho yoho! And off you go! Segher <HR NOSHADE> <UL> <LI>image/x-xbitmap attachment: d.m.l </UL> -------------- next part -------------- A non-text attachment was scrubbed... Name: d.m.l Type: application/octet-stream Size: 41290 bytes Desc: not available Url : http://lists.xiph.org/pipermail/vorbis-dev/attachments/20001224/af19827e/d.m-0001.obj
At 08:23 AM 12/24/00 +0100, you wrote:>Hello people, > >Looks like Santa Claus thinks I've been a good boy this year. > >Here's the third in my performance patch series: d.m.l > >Apply after applying d.o.n and d.n.m; I don't know how much of >those got applied to the CVS tree. >Segher, In future, it'd be much better if you split patches up into seperate parts - optimisations, and other changes. Optimisations can (usually) be applied as-is. Your other changes probably won't be, since they make pretty major functional changes sometimes. Also, could you please _explain_ functional changes? I haven't looked at this one properly yet, but the previous one made huge changes to the psychoacoustics and short block triggering with ZERO explanation. As a result, it's been ignored (your other patch was applied completely, I think, since it didn't make functional changes, just speed ones).>What's inside: > >Request for help! Look in os.h if you're using a compiler or >processor I don't use (I use gcc on K5, K7, G3).What sort of performance increases do you see from this (when you actually use it)? Why 32-byte alignment - the reasons for having aligned allocations is obvious, but is 32 bytes actually beneficial (does this give you cache line alignment or something?)> >New MDCT! Now we have two; competition is a good thing. Let's >see which one is fastest :-)How much faster is your new one for the case it handles?>Changed the ATH_Bark_dB array. This removes some very annoying >artifacts when encoding low-frequency, tonal sounds.This seems like a dubious change. I suspect it's just hiding an actual problem elsewhere. This is what I mean - explain WHY you've done things like this, in reasonable detail, rather than just saying "I think it makes it better sometimes". Michael --- >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-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.