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 acceleration project (Read 190721 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Ogg Vorbis acceleration project

Reply #25
Here is an x64 compile of oggenc2.85 with FLAC support. Currently this is based on the standard 1.2.3 libs, but if some kind people would like to test this and confirm whether it's OK, or not, I'll go ahead and build an aoTuV version.

http://www.rarewares.org/files/ogg/oggenc2.85-1.2.3-x64.zip

Any chance to have an x64 compile of this Lancer mod too ?

I'm afraid not as it would require heavy modification of the Lancer code which is something I have neither the time, nor the skills to do!

Ogg Vorbis acceleration project

Reply #26
I don't have x64 OS yet... so I cannot even test my x64 compile, but here it is (MSVS9 compile, SSE3): [obsolete; removed]

Maybe it even works.  It lacks FLAC and SRC support, though.

Ogg Vorbis acceleration project

Reply #27
I don't have x64 OS yet... so I cannot even test my x64 compile, but here it is (MSVS9 compile, SSE3): [attachment=5536:oggenc2_x64_test.7z]

Maybe it even works.  It lacks FLAC and SRC support, though.

Cool, it encodes correctly (on WinXP64 SP2 - E2200 @ 2,35 GHz - 1 Gb).

Now testing speeds...
F.O.R.A.R.T. npo

Ogg Vorbis acceleration project

Reply #28
Very fast graphic reply of tests (i'll explain better tomorrow):

F.O.R.A.R.T. npo

Ogg Vorbis acceleration project

Reply #29
OK, here's the encoders explaination:

  • All vencs are - of course - the latest build from aoTuV test page by Aoyumi;
  • All oggenc2SSE* are from the top of this 3ad by lvqcl;
  • oggenc2LM is the patched john33's encoder in this 3ad too;
  • oggenc64 is the cited john33's unofficial build;
  • oggenc264 is the last build posted here by lvqcl;


Hope that inspires...
F.O.R.A.R.T. npo

Ogg Vorbis acceleration project

Reply #30
john33, I tested your Lancer compile with the following input:
8...48kHz/16 bit/mono or stereo, -q2, -q1, ... -q10;
44.1kHz/16bit/stereo, -q2, -q1.9, -q1.8, ...-q9.9, -q10.

Everything is fine  but its ENCODE_VENDOR_STRING ends with "\n" again

Ogg Vorbis acceleration project

Reply #31
john33, I tested your Lancer compile with the following input:
8...48kHz/16 bit/mono or stereo, -q2, -q1, ... -q10;
44.1kHz/16bit/stereo, -q2, -q1.9, -q1.8, ...-q9.9, -q10.

Everything is fine  but its ENCODE_VENDOR_STRING ends with "\n" again

Amended, recompiled and uploaded on same link. Hopefully all is now well!!

Ogg Vorbis acceleration project

Reply #32
More details about my above encoding tests:
  • Original file: CDImage.wav, 44100 Hz/16 bit, 606MB (636 223 100 bytes) - 1:00:06.707 (159055764 samples), 1411 kbps
  • Encoding options: -q0 (~64Kbps)
  • Coded files:
    28,3 MB (29.710.652 byte) - oggenc264
    28,3 MB (29.710.723 byte) - oggenc2LM, oggenc264, oggenc2SSE*
    29,1 MB (30.571.832 byte) - all vencs


Ask me for any other doubt/question.
F.O.R.A.R.T. npo

Ogg Vorbis acceleration project

Reply #33
I'll leave you to do the maths, but the speed gain is somewhat alarming!!

Alarming in the most pleasing manner possible

Quote
If this appears stable, and I'd like feedback regarding this, then I'll make it generally available on Rarewares.

I've been using your builds for a few weeks now, everything's performing as expected. Thanks, john33 [and lvqcl] for doing the hard work. I'm loving it

Ogg Vorbis acceleration project

Reply #34
cant wait to see somebody do an assimbly enhanced version for x64 cpu's, my athlon II 435@phenom II b35 3.5gz loves 64bit

Ogg Vorbis acceleration project

Reply #35
I completely forgot about this topic....

Fantastic job lvqcl and john33! 

Ogg Vorbis acceleration project

Reply #36
lvqcl if you still need an x64 os get ahold of me, I may be able to help you out there, I would really like to see a nice well tested/tweaked x64 version of vorbis(not that i dont like the x64 one that we already have, but the more the better)

Ogg Vorbis acceleration project

Reply #37
As you can see from the picture in post #29, Lancer doesn't benefit from 64-bitness.

Ogg Vorbis acceleration project

Reply #38
No Lancer x64 in the above tests !!!

BTW, according to my tests, x64 build can achieve a similar performances compared to Lancer.
So it would be really interesting to encode with an x64 + Lancer optimizations Vorbis build...

It would also be very interesting to compare compilers' performances, IMHO.
F.O.R.A.R.T. npo

Ogg Vorbis acceleration project

Reply #39
nice improvements, but i had a slightly hard time figuring this thead out... could you put the stuff that works up on rarewares.org? maybe with a litte explanation of the different versions.

thanks


Ogg Vorbis acceleration project

Reply #41
I think you mean the attachment in the post #27. And this is -- Lancer x64 build.

I haven't noticed that it was Lancer build !!!
BTW, if so, it's not a good build 'cause it MUST achieve at least the same performances of x86 build (Lancer has ASM optimizations...).

A question: it's builded from the same oggenc2LM patched sources ?
F.O.R.A.R.T. npo

Ogg Vorbis acceleration project

Reply #42
john33's oggenc2LM was compiled with Intel (optimizing) compiler, and mine - with MSVS compiler. That's the only difference.

Also, x64 MSVS compile (aka oggenc264) is slightly faster than x86 MSVS compile (oggenc2SSE2/oggenc2SSE3).

Ogg Vorbis acceleration project

Reply #43
@john33: Lame x64 officially available @ RareWares, what about Vorbis ???
F.O.R.A.R.T. npo

Ogg Vorbis acceleration project

Reply #44
@john33: Lame x64 officially available @ RareWares, what about Vorbis ???

Essentially because the compiles that I've produced work fine on XP x64, but instantly crash on Windows 7 x64 and I haven't yet managed to figure out why!! If anyone has any ideas, please fire away.

Ogg Vorbis acceleration project

Reply #45
Once I encountered a problem (with debug compile) with the following code in encode.c:

Code: [Select]
        /* Next 3 lines added to add padding bytes into comment header for tagging space.
         */
        header_comments.packet = realloc(header_comments.packet, header_comments.bytes + opt->padding);
        memset(header_comments.packet + header_comments.bytes, 0, opt->padding);
        header_comments.bytes += opt->padding;


And oggenc2 stopped crashing in debug mode after removing this code.

Ogg Vorbis acceleration project

Reply #46
Once I encountered a problem (with debug compile) with the following code in encode.c:

Code: [Select]
        /* Next 3 lines added to add padding bytes into comment header for tagging space.
         */
        header_comments.packet = realloc(header_comments.packet, header_comments.bytes + opt->padding);
        memset(header_comments.packet + header_comments.bytes, 0, opt->padding);
        header_comments.bytes += opt->padding;


And oggenc2 stopped crashing in debug mode after removing this code.

You're absolutely right!  Although, why this should be OK in XP x64 and not Windows 7 x64 beats me.

Anyway, the following download is a standard 1.3.1 lib compile for x64 and does work on XP x64 and Win 7 x64:

http://www.rarewares.org/files/oggenc2.87-1.3.1-x64.zip

Regarding the above, I have obviously removed the 'Comment Padding' option. Unless there are any tagging programs out there that will add/amend vorbis comments via update-in-place, and I don't believe there are, then this was always of little value anyway.

Edit: If there are no reports of any issues with this, then I'll add it to the normal Rarewares ogg page.

Ogg Vorbis acceleration project

Reply #47
IIRC...  the address that stored in header_comments.packet is also stored in some other variable. So if realloc doesn't change this address then oggenc works but if it returns different address -- oggenc crashes.

Ogg Vorbis acceleration project

Reply #48
IIRC...  the address that stored in header_comments.packet is also stored in some other variable. So if realloc doesn't change the address oggenc works but if it returns different address -- oggenc crashes.

Makes sense. Thanks very much for the assist.

 

Ogg Vorbis acceleration project

Reply #49
If there are no reports of any issues with this, then I'll add it to the normal Rarewares ogg page.


Just tested under both x64 Windows (7 and XP), it works.

Another question: what about merging lancer optimizations ?
F.O.R.A.R.T. npo