HydrogenAudio

Lossless Audio Compression => Lossless / Other Codecs => Topic started by: Liisachan on 2006-05-04 07:51:59

Title: Optimized TTA Encoder
Post by: Liisachan on 2006-05-04 07:51:59
Hi,

I happened to have time to test this Optimized TTA encoder.

"Multiple Read and Write Buffer Solution (Intel Compiler Executable)"
http://softlab.technion.ac.il/project/opti...source_code.htm (http://softlab.technion.ac.il/project/optimizing_tta_encoder/source_code.htm)

Apologies if this was already mentioned before.

First off, apparently this optimized versioin doesn't work on a Non-HT/single-CPU machine. I got a broken file testing it on Win2K, non HT. The following result was obtained on WinXP SP2, HT, Prescott 3.4G, where I tested again and again that decoded WAV is identical to the Original WAV and I belive this tweaked ttaenc is working properly at least for this sample.

(http://ffdshow.faireal.net/tmp/ttaopt.png)

In my test, Optimized TTAenc is significantly faster than Normal TTAenc. And it is a little faster now than WavPack default, in encoding, with better compression. WavPack def is still faster in decoding.
On the other hand, WavPack -h gives me much better compression; it's slower, but I'd think 60~70 sec per CD is enough fast.

Anyway, if you use TTA for some reason, and you are on a HT or Dual-CPU machine, you might want to test this optimized TTAenc.
Title: Optimized TTA Encoder
Post by: rjamorim on 2006-05-04 19:42:48
That´s very interesting. Too bad it will only work on HT or dual machines (I have neither)

Makes me wonder if running two wavpack instances on the HT machine wouldn´t speed it up somewhat, at least to get standard speed closer to the optimized TTA.
Title: Optimized TTA Encoder
Post by: Sebastian Mares on 2006-05-04 20:32:39
I have a HT machine and also access to several dual core machines - will do some tests at weekend.

Edit: Spelling.
Title: Optimized TTA Encoder
Post by: Liisachan on 2006-05-04 21:01:17
@ Sebastian Mares
Thanks very much. I'd really like other people to check if they can reproduce my result, as the way I checked the time cost is by no means professional (I just copid the time cost reported by the app itself, which might be inaccurate). Actually that's why I couldn't include FLAC data. (flac.exe doesn't report the time cost.)

I'm wondering why encoding cost by normal ttaenc varies greatly each time I try it too.
Title: Optimized TTA Encoder
Post by: rjamorim on 2006-05-04 22:04:37
Actually that's why I couldn't include FLAC data. (flac.exe doesn't report the time cost.)


http://www.microsoft.com/windows2000/techi.../timethis-o.asp (http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/timethis-o.asp)

Enjoy!
Title: Optimized TTA Encoder
Post by: Sebastian Mares on 2006-05-04 22:10:19
Crapola, and I already coded something in VB using QueryPerformanceCounter...
Title: Optimized TTA Encoder
Post by: Liisachan on 2006-05-05 04:42:42
@rjamorim
Thanks, I'll try it.

@Sebastian Mares
Yeah... That may be a good diea, altho, CreateProcess overhead is quite big compared to QueryPerformanceCounter accuracy, perhaps we can get at least ms accracy. maybe I'll code that later when I have an hour to kill
Title: Optimized TTA Encoder
Post by: Liisachan on 2006-05-05 17:52:12
OK, this time I timed the cost down to microseconds, including FLAC.

(http://ffdshow.faireal.net/tmp/ttaopt2.png)

The conclusion is about the same.
Title: Optimized TTA Encoder
Post by: Josef Pohm on 2006-05-11 09:16:44
I'd really like other people to check if they can reproduce my result...


I performed a fast test session on that matter.

On a PIV with HT I got bit identical files, a 16% improvement in encoding speed and a 20% improvement in decoding speed.

On a PIII I got corrupted files.

I think that is more or less a confirmation for your results.
Title: Optimized TTA Encoder
Post by: Liisachan on 2006-05-25 12:10:10

I'd really like other people to check if they can reproduce my result...


I performed a fast test session on that matter.

On a PIV with HT I got bit identical files, a 16% improvement in encoding speed and a 20% improvement in decoding speed.


Thank you very much.

Quote
On a PIII I got corrupted files.


This part is really annoying. Probably this optimized encoder shouldn't be recommended to general users, as some of them would use it on PCs that are not supported and get broken files.

For the record I'm going to time encoding/decoding speed of optimized FLAC.exe vs optimized TTAenc.exe, as it is somehow unfair to compare this ttaenc with the normal FLAC.exe. I didn't have time to do that so far, but I alraedy made an accurate timing tool which will correct the time cost needed for timing itself. (I mean, "Timing" itself needs some CPU time)