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: New FLAC encoder (Read 374531 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

New FLAC encoder

Reply #75
Quote
Code: [Select]
 
FILE            SIZE

t_FLAC.flac        321 356 528
t_i686.flac        319 851 517
t_INTEL.flac        319 851 517

wisodev, whats up with the second column?


This are output file sizes in bytes that are results of runned tests above. t_FLAC.flac is output file from original Flac encoder at version 1.1.2. The t_i686.flac and t_INTEL.flac are output file from Flake encoder version 0.10. t_i686.flac encoded using binary from Justin build and t_INTEL.flac is encoding output from my build. (It is called INTEL because I use Intel C++ Compiler to build my binarys). The mystery is solved ;-)

New FLAC encoder

Reply #76
wisodev,

still one mystery remains: 
Code: [Select]
DECODE_FROM_FLAKE_INTEL...
Kernel Time  =     3.328 = 00:00:03.328 =   7%
User Time    =    22.703 = 00:00:22.703 =  53%
Process Time =    26.031 = 00:00:26.031 =  61%
Global Time  =    42.188 = 00:00:42.188 = 100%

DECODE_FROM_i686...
Kernel Time  =     3.140 = 00:00:03.140 =   7%
User Time    =    23.078 = 00:00:23.078 =  56%
Process Time =    26.218 = 00:00:26.218 =  63%
Global Time  =    41.094 = 00:00:41.094 = 100%


Although both compilations are expected to generate bit-identical output, the decoding times vary.
Guess you would have to run those test multiple times to average out those variations.

.sundance.

New FLAC encoder

Reply #77
Quote
wisodev,

still one mystery remains:
Code: [Select]
DECODE_FROM_FLAKE_INTEL...
Kernel Time  =     3.328 = 00:00:03.328 =   7%
User Time    =    22.703 = 00:00:22.703 =  53%
Process Time =    26.031 = 00:00:26.031 =  61%
Global Time  =    42.188 = 00:00:42.188 = 100%

DECODE_FROM_i686...
Kernel Time  =     3.140 = 00:00:03.140 =   7%
User Time    =    23.078 = 00:00:23.078 =  56%
Process Time =    26.218 = 00:00:26.218 =  63%
Global Time  =    41.094 = 00:00:41.094 = 100%


Although both compilations are expected to generate bit-identical output, the decoding times vary.
Guess you would have to run those test multiple times to average out those variations.

.sundance.


Well, the test file is more then 400 MB and testing it in right way using more runs is time consuming. I only needed some simple estimate of speed, not precise testing. But the difference in decoding time is marginal and in range of measure error I think.

New FLAC encoder

Reply #78
This are output file sizes in bytes that are results of runned tests above. t_FLAC.flac is output file from original Flac encoder at version 1.1.2. The t_i686.flac and t_INTEL.flac are output file from Flake encoder version 0.10. t_i686.flac encoded using binary from Justin build and t_INTEL.flac is encoding output from my build. (It is called INTEL because I use Intel C++ Compiler to build my binarys). The mystery is solved ;-)

bleh put commas next time, I thought those were 3 different columns not a single number. out of curiosity where have you seen a number with spaces in it, that you didn't think the table looks wrong?
The Plan Within Plans

New FLAC encoder

Reply #79

This are output file sizes in bytes that are results of runned tests above. t_FLAC.flac is output file from original Flac encoder at version 1.1.2. The t_i686.flac and t_INTEL.flac are output file from Flake encoder version 0.10. t_i686.flac encoded using binary from Justin build and t_INTEL.flac is encoding output from my build. (It is called INTEL because I use Intel C++ Compiler to build my binarys). The mystery is solved ;-)

bleh put commas next time, I thought those were 3 different columns not a single number. out of curiosity where have you seen a number with spaces in it, that you didn't think the table looks wrong?


Oh the spaces are common error in windows ;-)

Try right clicking on some file in explorer and you can see this spaces everywhere or better try in windows console DIR command and the spaces comes in file sizes. This is funny.

New FLAC encoder

Reply #80
I want to write my notes on lack of some features in current flake version.

In windows world, especially for on-the-fly ripping, it may be problem, but if you have flac/metaflac utilites and able to write simple script/batch file you can:
  • test .flac file for integrity (after compression) by flac -t <file.flac> (instead of flac's great -V options at compress time)
  • add seek points for quick search in .flac file by metaflac --add-seek-points 10s <file.flac> (flac at compress time does this automatically)
  • calculate and add ReplayGain tags by metaflac --add-replay-gain *.flac (instead of flac's --replay-gain option when compress a number of .wav files)
  • embed cuesheet in metadata by metaflac --import-cuesheet-from <file.cue> <file.flac> (insead of flac's --cuesheet option at compress time)
  • add tags by metaflac --set-tag <name=value> <file.flac> (or even better with metaflac --import-tags-from <somefile.txt> <file.flac> where somefile.txt can be created yourself or exported from current .flac by metaflac --export-tags-to <somefile.flac> <file.flac> and edited in your favorite UTF-8 capable editor).
So, metaflac is a swiss knife for .flac files when you have already compressed .flac file with lack of some features (which flac executable can add at compress time!). Referenced flac executable is great and featureful program but flake generates file smaller in size and complitely compatible with FLAC specification.

And now I'm using flake for (the best, ATM) compression (with -8, for compatibility reasons) and flac/metaflac to test/process .flac files.

New FLAC encoder

Reply #81
Oh the spaces are common error in windows ;-)

"It's not a bug, it's a feature."

Digit grouping symbol depends on your locale, and can be specified explicitly in Control Panel -> Regional options -> Numbers. BTW, a space is a correct grouping symbol in the Russian locale, and a comma is not. A comma is a decimal point symbol here.

New FLAC encoder

Reply #82
Quote
Digit grouping symbol depends on your locale, and can be specified explicitly in Control Panel -> Regional options -> Numbers. BTW, a space is a correct grouping symbol in Russian locale, and a comma is not. A comma is a decimal point symbol here.


Yes thanks for clarifying this issue. In Polish locale space is also valid as you can see in screenshot attached below and yes it is feature of OS. I was bit too sarcastic I suppose.


New FLAC encoder

Reply #83
hi, I have a somewhat strange request  a few pages back there was a discussion about linear solvers and pseudo-inverses, can someone possibly post actual matrix that would appear on the left hand side (taken from encoding a sample of your choice, during algorithm run) and a right hand side vector? any one will do. obviously as attachement in a text file and not plaintext in the reply (since I'm assuming the dimensions will be quite large)

thank you very much, I know it's weired
The Plan Within Plans

New FLAC encoder

Reply #84
Is this encoder (flake 0.10) trustworthy for "production" use?

 

New FLAC encoder

Reply #85
FYI:

I have just encoded my favorite album of Maria Peszek called "Miasto Mania" with flake -12 and it plays perfectly on my iAudio U3 2GB flash player even though the specification states that it does support only flac 0, 1 & 2. Isn't that great! 

New FLAC encoder

Reply #86
Is this encoder (flake 0.10) trustworthy for "production" use?

It depends on what you're looking for.  The testing has not been extremely exhaustive, but on the other hand, I have yet to produce a FLAC file with Flake which will not decode losslessly using the reference decoder.  Also, it embeds an MD5 sum for checking losslessness.  One thing it lacks which may be important to some is verification during encoding.

FYI:

I have just encoded my favorite album of Maria Peszek called "Miasto Mania" with flake -12 and it plays perfectly on my iAudio U3 2GB flash player even though the specification states that it does support only flac 0, 1 & 2. Isn't that great! 

Now that is a surprise!  It would be interesting to make some test cases to put hardware players through a FLAC compatibility test.

New FLAC encoder

Reply #87
I have just encoded my favorite album of Maria Peszek called "Miasto Mania" with flake -12 and it plays perfectly on my iAudio U3 2GB flash player even though the specification states that it does support only flac 0, 1 & 2. Isn't that great! 

This is exactly the kind of feedback I was looking for! Thank you for this test

New FLAC encoder

Reply #88

I have just encoded my favorite album of Maria Peszek called "Miasto Mania" with flake -12 and it plays perfectly on my iAudio U3 2GB flash player even though the specification states that it does support only flac 0, 1 & 2. Isn't that great! 

This is exactly the kind of feedback I was looking for! Thank you for this test


I'm glad that I could help a bit. BTW, I've checked the iAudio site again, and to my surprise, I've found updated specification of U3:
Quote
MP3 : MPEG 1/2/2.5 Layer 3, ~320kbps, ~48khz, mono/stereo
WMA : ~256kbps, ~48khz, mono/stereo
OGG : ~Q10, ~44.1khz, mono/stereo
FLAC : compression level 0~8, ~44.1khz, mono/stereo
WAV : ~48khz, 16bit, mono/stereo
Video File up to 160x128
JPG, TXT

New FLAC encoder

Reply #89
yes, that level 0-2 limitation was from the early days and I'm pretty sure all the iAUDIOs that support FLAC will play 0-8.  their forums are the best place to ask though if you're about to buy.

Josh

New FLAC encoder

Reply #90
I've encoded over a dozen cd's with flake -8 so far and never encountered a problem apart from the memory leaks in older versions.

Don't have a DAP that plays flacs though.

Because it has relatively few switches there's not much to go wrong either. Up to -8 it should output valid flac files that should be indistinguishable from the reference encoder output (save the encoder version string of course). But don't quote me on that.

Indeed a -V option that uses the reference decoder for verification and a warning for levels over -8 (if there isn't one already) would come in handy.
Veni Vidi Vorbis.

New FLAC encoder

Reply #91
I have tried running my scripts with wisodev's flake 0.10 and both times now flake has crashed.  The first time a memory allocation error was reported.  My wife has just GTalked me to tell me that it has happened today (I left the script running before I went to work) so I'm afraid I can't tell you the exact error message.

I will try running the script again and post the exact (standard Windows) message, but I was wondering if anyone else had experienced this?
I'm on a horse.

New FLAC encoder

Reply #92
I've been using wiso's flake 0.10 several times in foobar's converter without any problems yet...

[edit] Forgot mentioning that I used the Intel compilation...


New FLAC encoder

Reply #94
I have run my scripts here at work using the i586, i686 and wisodev builds available at sourceforge.

In the first run, with all three encoders using -5 all encodes (50 files sent to each encoder) were successful.

I just started another batch file only using the wisodev build using -0, -5, -8 and -12.  The encoder crashed using -0 on file 37.wav.  This leads me to believe that something about the file is causing the issue, as the first crash happened on 37.wav also, although I can't remember the compression setting used.  As previously mentioned I cannot confirm any details about the second crash.

I will perform some more tests with the wisodev build, specifically with my file 37.wav, and let you know if I can pin this down any further.
I'm on a horse.

New FLAC encoder

Reply #95
OK, I have tested 37.wav with the i586, i686 and wisodev builds at compression levels -0, -1, -5, -8, and -12.

All three builds work fine for all levels, except -0 where all three builds crash.

Edit:  Here's Flake's dying words, if it is any use:

Code: [Select]
Flake: FLAC audio encoder
(c) 2006  Justin Ruggles

Signed 16-bit 44100 Hz stereo
samples: 10465224

blocksize: 1024
max order: 0
order method: maximum
stereo method: mid-side

progress: 100% | ratio: 0.813 | bitrate: 1147.0 kbps | bytes: 33988647

Edit 2: The above tests were taken using my "Yalac" corpus (used to test Yalac/TAK).  I have just run the scripts on my "FLAC" corpus (used to test 1.1.2_CVS) and I had the same happen with file 02.wav, which is the same file as 37.wav.  Therefore, out of 78 files tested only one file can highlight this bug.
I'm on a horse.

New FLAC encoder

Reply #96
Hey,

I work for Winamp, and I'm very impressed by this encoder, so I wrote a winamp encoder plugin which uses libflake.

Binary + source: http://stashbox.org/uploads/1158591116/enc_flac.zip

To compile you'll need wisodevs win32 sources, extract them to the flake directory. Feel free to put this into the sourceforge SVN or whatever.

For the moment, I just let the user configure the compression value, everything else is chosen based upon the compression by libflake.

I have replicated the speed differences between flake and the reference flac encoder when comparing with other flac encoding plugins, and for a much smaller binary!

I can't make any guarantees, but hopefully one day this will be considered for inclusion in the winamp installer. 

Thanks,

Will Fisher

New FLAC encoder

Reply #97
It seems the problem is still evident even in the first 10 seconds of the file, so I have uploaded a Flake -12 encoded version of the first 10 seconds for others to test:

http://synthetic-soul.co.uk/temp/37_0-10_12.flac
I'm on a horse.

New FLAC encoder

Reply #98
I can encode that sample at -0 just fine, using wisodev's Flake 0.10 build, both through Foobar and the commandline.

I did discover another bug: when trying to read from the following filename: "- 37_0-10_12.wav" or when trying to write a file called "- 37_0-10_12.flac" it fails. For the output i get a "tried to write to nonexistent pipe" error and for the input file, it treats it like an unrecognised commandline and gives the standard message. I tested further and it gives the error for all filenames that start with a dash.
Flac handles it fine.
Veni Vidi Vorbis.

New FLAC encoder

Reply #99
@Synthetic Soul:

Flake 0.10 has failed to compress your test file with -0 switch on my Pentium 4 PC BUT it succeeded to compress it on my Intel Centrino laptop. Seems like Flake has some issues with Pentium 4?

Edit: I did my tests with Flake on WinXP SP2