10% performance gain in decoder.

Some minor performance tweaks in decode method. Tested with 250MB file. Result looks like this:
```
               user     system      total        real
newdec    161.980000   1.120000 163.100000 (163.343434)
olddec    168.330000  11.000000 179.330000 (180.561655)
```