Hi all, Yes, it's true. A new version of rehuff, the tool that losslessly compresses Vorbis files: one that is easy to compile, and that works with newer-than-two-years-ago streams, too! On 1.0 streams, you get about 3% size reduction, and the headers get _much_ smaller (which helps for fast-start network streams). Building it should be easy (you might have to add some -I and -L for libogg). Missing features: - support for floor0 and res0 and res1; - recode in-place; - support for chained and muxed streams etc; - built-in mail client. If you have any comments on rehuff, be sure to contact me about it, Have fun, Segher -------------- next part -------------- A non-text attachment was scrubbed... Name: rehuff.tar.gz Type: image/x-photoshop Size: 9024 bytes Desc: rehuff.tar.gz Url : http://lists.xiph.org/pipermail/vorbis-dev/attachments/20020731/6d9f656b/rehuff.tar-0001.psd
hello segher, how does the compression work? what does it compress? <p><p>On Wed, 31 Jul 2002 02:42:02 +0200, Segher Boessenkool wrote:>Hi all, > >Yes, it's true. A new version of rehuff, the tool that losslessly compresses >Vorbis files: one that is easy to compile, and that works with >newer-than-two-years-ago streams, too! > >On 1.0 streams, you get about 3% size reduction, and the headers get _much_ >smaller (which helps for fast-start network streams).<p><p><p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Christian.Buchner
2002-Jul-30 17:50 UTC
[vorbis] Re: [vorbis-dev] rehuff [source attached]
This thread taken from vorbis-deff> Yes, it's true. A new version of rehuff, the tool that losslessly compresses > Vorbis files: one that is easy to compile, and that works with > newer-than-two-years-ago streams, too!Erm. So what exactly does "rehuff" it do? Does it re-calculate more optimal codebooks, recompress the stream and generate a new and shorter version of the original stream? So if rehuff can do that kind of magic, why can't Ogg Vorbis 1.0 generate a better coded stream? Why is there a need for such a tool? ;) Christian <p><p><p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
On Wed, Jul 31, 2002 at 02:42:02AM +0200, Segher Boessenkool wrote:> [-- Attachment #2: rehuff.tar.gz --] > [-- Type: image/x-photoshop, Encoding: base64, Size: 11K --]Please fix your mime types. <p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
ons 2002-07-31 klockan 02.42 skrev Segher Boessenkool:> Hi all, > > Yes, it's true. A new version of rehuff, the tool that losslessly compresses > Vorbis files: one that is easy to compile, and that works with > newer-than-two-years-ago streams, too! > > On 1.0 streams, you get about 3% size reduction, and the headers get _much_ > smaller (which helps for fast-start network streams). >Oh, this is wonderful. I tried to -q3 versions of all the small .wav-files in my /usr/share/sounds (53 very short cd quality wav's) with the following results: 3356 sounds 788 sounds.ogg 272 sounds.ogg.rehuffed (total size for all files in kilobytes) That's a 65% size decrease over 'uncompressed' oggs. I'm impressed. Thanks! /noa <p><p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Has anyone compiled it for Windows? I tried but I'm not versed enough with OGG to make it work... I just spent a few hours working on that. If anyone compiled it, can you please send it to me or post a link, I'm dying to try it out! Thanks! Eric Fortier <p><p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Making it compile on Windows is cake. Making it not eat Vorbis files on the Win32 platform is a different issue. I can't tell if it's working right or not, but all the players I've tried for Windows barf on rehuff'd streams. That's something for Segher to fix, if at all. <p>--- Eric Fortier <efortier@techlogic.ca> wrote:> If anyone compiled it, can you please send it to me or post a > link, I'm dying to try it out! > > Thanks! > > Eric Fortier<p>__________________________________________________ Do You Yahoo!? Yahoo! Health - Feel better, live better http://health.yahoo.com <p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Hi all, There were a few "non-optimalities" in the rehuff code. Please apply patch, and cross fingers. Special thanks to Alan MacDonald, who found the semicolon imperfection, and everyone who sent me bug reports. Please test again :) The second problem is an evil one: a codeword length of zero is actually quite fine if it's the only codeword in the codebook; but Vorbis takes a length of zero to mean "not allocated". So let's waste a bit on those cases... <p>Have fun, <p>Segher <p><p>diff -ur rehuff/recode-headers.c rehuff-new/recode-headers.c --- rehuff/recode-headers.c Wed Jul 31 02:09:23 2002 +++ rehuff-new/recode-headers.c Fri Aug 2 10:11:41 2002 @@ -275,11 +275,11 @@ recode_residue(&ob_in, &ob_out, headers->residue + i); oggpack_copy(&ob_in, &ob_out, 6); - for (i = 0; i < headers->mappings; i++); + for (i = 0; i < headers->mappings; i++) recode_mapping(&ob_in, &ob_out, headers->mapping + i, headers); oggpack_copy(&ob_in, &ob_out, 6); - for (i = 0; i < headers->modes; i++); + for (i = 0; i < headers->modes; i++) recode_mode(&ob_in, &ob_out, headers->mode + i); oggpack_copy(&ob_in, &ob_out, 1); diff -ur rehuff/recode.c rehuff-new/recode.c --- rehuff/recode.c Wed Jul 31 01:54:03 2002 +++ rehuff-new/recode.c Fri Aug 2 12:55:24 2002 @@ -118,7 +118,7 @@ if (heap.n) { for (i = 0; i < 2*book->n-1; i++) length[i] = -1; - length[heap.x[1]] = 0; + length[heap.x[1]] = (heap.x[1] < book->n ? 1 : 0); } book->new_length = malloc(book->n * sizeof(*book->new_length)); diff -ur rehuff/recode-headers.c rehuff-new/recode-headers.c --- rehuff/recode-headers.c Wed Jul 31 02:09:23 2002 +++ rehuff-new/recode-headers.c Fri Aug 2 10:11:41 2002 @@ -275,11 +275,11 @@ recode_residue(&ob_in, &ob_out, headers->residue + i); oggpack_copy(&ob_in, &ob_out, 6); - for (i = 0; i < headers->mappings; i++); + for (i = 0; i < headers->mappings; i++) recode_mapping(&ob_in, &ob_out, headers->mapping + i, headers); oggpack_copy(&ob_in, &ob_out, 6); - for (i = 0; i < headers->modes; i++); + for (i = 0; i < headers->modes; i++) recode_mode(&ob_in, &ob_out, headers->mode + i); oggpack_copy(&ob_in, &ob_out, 1); diff -ur rehuff/recode.c rehuff-new/recode.c --- rehuff/recode.c Wed Jul 31 01:54:03 2002 +++ rehuff-new/recode.c Fri Aug 2 12:55:24 2002 @@ -118,7 +118,7 @@ if (heap.n) { for (i = 0; i < 2*book->n-1; i++) length[i] = -1; - length[heap.x[1]] = 0; + length[heap.x[1]] = (heap.x[1] < book->n ? 1 : 0); } book->new_length = malloc(book->n * sizeof(*book->new_length)); <p><p><p><p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
--two-pass switch had been added to BeSweet's -ogg( ) section. above is relevant since BeSweet v1.4RC6. Best Regards, Dg. http://DSPguru.doom9.net> HJ wrote: > > Works just peachy. > > > Does this mean oggenc will get: > > [--two-pass [--verify]] ? > > --two-pass Optimizes track when completed > (note: this function only saves a few > percent in disk space use and make > take time)<p><p><p>_____________________________________________________________ Get email for your site ---> http://www.everyone.net _____________________________________________________________ Promote your group and strengthen ties to your members with email@yourgroup.org by Everyone.net http://www.everyone.net/?btn=tag <p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.