Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Ogg Vorbis optimized for speed (Read 257149 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Ogg Vorbis optimized for speed

Reply #225
Is it a chance for any version in near future to work correctly after compilation by GCC (preferably by 4.x branches)?
Latest version which correctly works after compile by gcc 3.3.6 is 20051121 (tested on Athlon XP 2200+ with SSE only support in Ubuntu Linux). All versions after this one give differrent bitrate in generated .ogg (compared to 'standard' - aoTuV b4.51).
Ogg Vorbis is standard lossy codec in Linux world and SSE(2,3) optimized version for Linux is a good support for the community.

Ogg Vorbis optimized for speed

Reply #226
If the bitrate difference is only slight, this is probably normal. IIRC, even the P3-Optimised version of the original AoTuV-encoder gives slightly different results than the generic build.

Ogg Vorbis optimized for speed

Reply #227
The difference is significant, about 2-3 kbps for -q 3 (on my test.wav it gives 112.3 kbps instead of 115.3 kbps in aoTuV 4.51).
I've tried to compile aoTuV by gcc 3.3/3.4/4.0 with or without compiler SSE optimization (-march=athlon-xp -mfpmath=sse) and bitrate was different only in hundredths. So this is definitely a bug.

Ogg Vorbis optimized for speed

Reply #228
Remember that standard aoTuV uses the FPU and Lancer uses SSE. They have different bit-length to represent real nums, and may thus cause different compression.

If in doubt, ABX.

Ogg Vorbis optimized for speed

Reply #229
Already compiled oggenc2/oggDropXPd for Windows give the same bitrate as unoptimized aoTuV, but its were compiled MSVC or similar, not by GCC. I think GCC just untested in new versions of Lancer.

Ogg Vorbis optimized for speed

Reply #230
Lancer 20060616 released.

Edit: Fixed bug in decoding(SSE2)

Ogg Vorbis optimized for speed

Reply #231
Translated by google:
2006/06/16 Lancer 20060616
    In one for AMD CPU replacing the CPU distinction processing of the DLL file
    Optimizing vorbis_oggpack_look with the inline assembler
    Adding SSE3 optimization processing to _mm_add_horz*
    SSE optimizing oggdec, it adds
    Correcting the trouble of the SSE2 optimization of ov_read_float2pcm
    The decoding section of oggdropXPd SSE optimization
    Optimization profile for multithread operation for single thread and joint ownership conversion

Ogg Vorbis optimized for speed

Reply #232
Didn't use Vorbis for some time but now I needed an encoder for some previews and tried the Lancer (2006 06 16th) one.

The speed is just sick, thanks to all involved in that
Works great on my Athlon XP, normal SSE version.

Ogg Vorbis optimized for speed

Reply #233
LOL yeah I still got the warm-fuzzy-feeling everytime I encode using Lancer

Ogg Vorbis optimized for speed

Reply #234
New release out today.

Code: [Select]
Changes:
* inline assembly replaces as much as possible to intrinsic
* abolish original memory transfer code in block.c
* bitreverse use looking up table
* fix speed down vorbis_book_decodevv_add's regression in lancer
  20060529
* remove optimization prevention code in vorbis_book_decodevv_add
* pre-calculate tables for triggers in mdct
* simplifying a code in which high frequency removed by mdct_backward
* add decode only funcs: mdct_butterflies_backward,
  dct_butterfly_first_backward
* improve SSE optimization: bark_noise_hybridmp
* add SSE optimization: render_line, vorbis_noise_normalize,
  _vp_noise_normalize
* add SSE3 optimization: mdct_bitreverse
* add pre-calculation code: seed_loop, max_seeds
* optimize: seed_chase
* add SORT16 to psy.c
* auto loop unrolling: SORT8, SORT32 in psy.c
* use lddqu in non SSE environment for unaligned memory load
* improve loop condiution code in inline assembly code
* add t option for oggdec benchmarks (without outputting file)
(courtesy of pub at cyanet.jp)

Good to see the asm being replaced with intrinsics.

Ogg Vorbis optimized for speed

Reply #235
Quote
* add SSE optimization: render_line, vorbis_noise_normalize,
  _vp_noise_normalize


SSE optimizations to the noise normalization code ey? that's interesting. Must be very fast
budding I.T professional

Ogg Vorbis optimized for speed

Reply #236
Hope this guy will work on theora or dirac in the future !
I also hope to see SSE/SSE2/SS3 builds merged together and autoselects the optimizations on fly (like FLAC...)

Ogg Vorbis optimized for speed

Reply #237
Lancer 20060722 is temporarily unavailable due to memory issue(unconfirmed).

Ogg Vorbis optimized for speed

Reply #238
What kind of memory issue? I've been using 20060722 with no problems.

Ogg Vorbis optimized for speed

Reply #239
What kind of memory issue? I've been using 20060722 with no problems.

It's impossible to download from the page.
If someone could post Lancer 20060722 release (at least "oggenc2.83"), that would be great. Or just a link for dl, of course.
Is there a difference between yes and no?

Ogg Vorbis optimized for speed

Reply #240
Lancer 20060802 released.

This is bug fixed release.
20060722 had a memory leak according to author.

Ogg Vorbis optimized for speed

Reply #241
And the crash issue of Lancer DLL is going to be fixed.
Sorry for my English.

Ogg Vorbis optimized for speed

Reply #242
Experimental Lancer 20060806 is up.

Altavista says:
"Being heap memory access error occurs with vorbis_oggpack_write it abolishes, the optimization module in oggpack_write movement
oggpack_look SSE optimization of optimization
_ve_amp cash control processing of modification
accumulate_fit being imperfect with correction
MDCT-RELATED cash control rearranging unnecessary zero data exception processing the SSE optimization description section of deletion _encodepart with correction inspect_error"

Err.. right.

Ogg Vorbis optimized for speed

Reply #243
Wow! Optimization of optimization, that's gotta be fast!
we was young an' full of beans

Ogg Vorbis optimized for speed

Reply #244
Wow! Optimization of optimization, that's gotta be fast!


None of the many "recent" optimizations provided a major speedup for me. Maybe it's 20x encoding with an old lancer and 22x with the sse2-optimized version. I have a Celeron M 1400Mhz, so the MT speedups don't help here. Still, the speed is great. What are your experiences/speeds/setups? Just curious...

Ogg Vorbis optimized for speed

Reply #245
What are your experiences/speeds/setups? Just curious...

I'm experiencing a speedup of about ~1.7x with Lancer 20060806 compared to the latest OggEnc from rarewares (average speed is something around 29x vs 17x, significantly depending on the sound material).

EDIT: My system is WinXP SP2 on an Athlon 64 3400+ (Venice).
Infrasonic Quartet + Sennheiser HD650 + Microlab Solo 2 mk3. 

 

Ogg Vorbis optimized for speed

Reply #246
If anybody has a Core 2 Duo, I would be interested how fast the SSE2 version is, as this new CPU doesn't break up SSE2 instructions intto 2 parts and thus can compute them directly.

Ogg Vorbis optimized for speed

Reply #247
Athlon XP 3200+ (2.2GHz), SSE:

Lancer 20060616 - 37.85x
Lancer 20060805 - 38.56x

So it's about 1.9% faster, nice but hardly significant.

I also recall that a previous version of lancer was about .5x faster than 06/16. Like linux kernels, not every next version is faster on every system.

The SSE3 multithreading version should fly on Core2. I wouldn't be surprised if it encodes over 100x.
Veni Vidi Vorbis.

Ogg Vorbis optimized for speed

Reply #248
What are your experiences/speeds/setups? Just curious...

Machine: AMD Athlon64 X2 3800+ (2GHz) @ 2.4GHz
Track: Machinae Supremacy - Elite.wav (4m 24.0s)
Options: -q 5

OggEnc (vorbis-tools Rev.10381): 13.9284x (19s)
OggEnc v2.83 (Lancer [20060805](SSE3MT) based on aoTuV b4b): 57.605572x (4.594s)

Ogg Vorbis optimized for speed

Reply #249
It seems that there was something wrong with the latest Lancer-version (Lancer 20060802(Based on aotuv-b4.51_20051117)) for vorbis, because all files were taken (scratched) from the download-server. See actually his page.
My used codecs and settings:
FLAC V1.1.2 -4 / APE V3.99 Update 4 -high / MPC V1.15v --q 5 / LAME V3.97b2 -V2 --vbr-new / OGG aoTuV V4.51 Lancer -q5