Skip to main content

Topic: Ogg Vorbis acceleration project (Read 132257 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • john33
  • [*][*][*][*][*]
  • Developer
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!
John
----------------------------------------------------------------
My compiles and utilities are at http://www.rarewares.org/

  • lvqcl
  • [*][*][*][*][*]
  • Developer
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.
  • Last Edit: 20 February, 2012, 11:20:58 AM by lvqcl

  • forart.eu
  • [*][*]
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 Link)

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...

  • forart.eu
  • [*][*]
Ogg Vorbis acceleration project
Reply #28
Very fast graphic reply of tests (i'll explain better tomorrow):

  • Last Edit: 12 December, 2009, 07:29:53 AM by forart.eu

  • forart.eu
  • [*][*]
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...

  • lvqcl
  • [*][*][*][*][*]
  • Developer
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

  • john33
  • [*][*][*][*][*]
  • Developer
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!!
John
----------------------------------------------------------------
My compiles and utilities are at http://www.rarewares.org/

  • forart.eu
  • [*][*]
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.
  • Last Edit: 15 December, 2009, 03:00:20 AM by forart.eu

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

  • AshenTech
  • [*][*]
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

  • Dukers
  • [*]
Ogg Vorbis acceleration project
Reply #35
I completely forgot about this topic....

Fantastic job lvqcl and john33! 

  • AshenTech
  • [*][*]
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)

  • lvqcl
  • [*][*][*][*][*]
  • Developer
Ogg Vorbis acceleration project
Reply #37
As you can see from the picture in post #29, Lancer doesn't benefit from 64-bitness.

  • forart.eu
  • [*][*]
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.
  • Last Edit: 15 June, 2010, 04:06:46 AM by forart.eu

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

  • lvqcl
  • [*][*][*][*][*]
  • Developer
Ogg Vorbis acceleration project
Reply #40
No Lancer x64 in the above tests !!!

  Buuuuut... you said
oggenc264 is the last build posted here by lvqcl;

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

  • forart.eu
  • [*][*]
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 ?
  • Last Edit: 16 June, 2010, 06:22:57 AM by forart.eu

  • lvqcl
  • [*][*][*][*][*]
  • Developer
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).

  • forart.eu
  • [*][*]
Ogg Vorbis acceleration project
Reply #43
@john33: Lame x64 officially available @ RareWares, what about Vorbis ???

  • john33
  • [*][*][*][*][*]
  • Developer
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.
John
----------------------------------------------------------------
My compiles and utilities are at http://www.rarewares.org/

  • lvqcl
  • [*][*][*][*][*]
  • Developer
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.

  • john33
  • [*][*][*][*][*]
  • Developer
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.
  • Last Edit: 04 July, 2010, 10:03:58 AM by john33
John
----------------------------------------------------------------
My compiles and utilities are at http://www.rarewares.org/

  • lvqcl
  • [*][*][*][*][*]
  • Developer
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.
  • Last Edit: 04 July, 2010, 11:13:47 AM by lvqcl

  • john33
  • [*][*][*][*][*]
  • Developer
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.
John
----------------------------------------------------------------
My compiles and utilities are at http://www.rarewares.org/

  • forart.eu
  • [*][*]
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 ?