Re: Fwd: Lookie lookie, faster code.

From: Phil Carmody (fatphil@altavista.com)
Date: Wed Mar 14 2001 - 03:08:51 PST


Blimey, you're behind the times.

I almost instantly got the small one down from 526 to 501 bytes.
Kieth and Marc however got it down to 499 bytes.
I stole two 2 byte savings from their code to get mine down to 497 bytes.
I then got it down to 491, but in the same time they'd got it down to 472 bytes with a whole host of optimisations.
However, I've since then got their code down to 470 bytes.

(It's not 'competition' - we share findings when we discover them)

Dave Touretsky's DeCSS gallery at CMU has the 472 byte one still I think.

The 'fast' one will probably only be updated when size has been done to death.

The C code one is smaller (442 bytes?) but I believe has some redundancy still...

FatPhil

On Tue, 13 March 2001, Carey Lening wrote:

> Usage:
> qrpff 153 2 8 105 225 /mnt/dvd/VOB_FILE_NAME | extract_mpeg2 | mpeg2_dec -
>
> #!/usr/bin/perl -w
> # 531-byte qrpff-fast, Keith Winstein and Marc Horowitz <sipb-iap-dvd@mit.edu>
> # MPEG 2 PS VOB file on stdin -> descrambled output on stdout
> # arguments: title key bytes in least to most-significant order
> $_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(
>
> $m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($_%16
> -2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h
> =5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$
> d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^
> $d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t[$_]^
> (($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval
>
>
>

Mathematics should not have to involve martyrdom;
Support Eric Weisstein, see http://mathworld.wolfram.com
Find the best deals on the web at AltaVista Shopping!
http://www.shopping.altavista.com



This archive was generated by hypermail 2b29 : Fri Apr 27 2001 - 23:14:11 PDT