Closed HeroicKatora closed 4 years ago
I'm just curious how this particular gif was created.
I'm not 100% confident that I remember the details, but I suspect that it was created by the byzanz
tool.
this yields new performance numbers which compare quite favorably
Thanks, but since we all have different hardware, I can't really learn much from these raw numbers without knowing a comparison point (on the same hardware, obviously). For example, numbers for "the old rust" or "wuffs/gif" or "C/giflib". When comparing two different Benchmarketc
runs, I use the benchstat
program to derive summary statistics (e.g. standard deviations and p-values).
Thanks, but since we all have different hardware, I can't really learn much from these raw numbers without knowing a comparison point (on the same hardware, obviously). For example, numbers for "the old rust" or "wuffs/gif" or "C/giflib".
the numbers for gcc -O3 test/c/gif.c && ./a.out -bench
:
In other words, the performance difference is no longer ×7 but rather ~×2.3.
I'm not 100% confident that I remember the details, but I suspect that it was created by the byzanz tool.
Thanks, I'll have a look.
Heh, I should just have read your source code... Since you made the same observation but more accurately reported it.
https://github.com/google/wuffs/blob/master/std/gif/decode_gif.wuffs#L889-L906
Sorry for the noice :slightly_smiling_face:
I'm just curious how this particular gif was created. It seems that in frame 62 (and possibly more after it) the LZW compressed data is not terminated by an
end code
. However, the specifcation says:Where
image
refers to one block terminated by a block terminator.This was noticed when upgrading the Rust
gif
library to a more principled decoder. (The old decoder was incredibly lenient in the structure of data permitted, even outputting additional data after the end code). By the way, this yields new performance numbers which compare quite favorably. As measured:I'll provide another update for ignoring the missing end code is published as currently the benchmark fails.