On 01/25/2012 01:26 PM, Orit Wasserman wrote:
> The run length is encoded using ULEB128 (http://en.wikipedia.org/wiki/LEB128)
>
> page = zrun
>        | zrun nzrun
>        | zrun nzrun page
>
> zrun = length
>
> nzrun = length byte...
>
> length = uleb128 encoded integer
>

We can improve this by a further 2 bytes per page by not encoding the
trailing zero run:


  page = zrun nzrun
       | zrun nzrun page

so, a page containing

  { 10*0, 7, 4085*0 }

would be encoded as

  0x10 0x01 0x07

without the trailing 4085 zrun.  This works because you no longer send
unchanged pages.

-- 
error compiling committee.c: too many arguments to function


Reply via email to