Skip to content
  • Kenneth Moreland's avatar
    Change run lengths from 16 bits to 32 bits. · f8f74ff1
    Kenneth Moreland authored
    I was using 16 bit run lengths to ensure that I never inflated images,
    even when pixels only took up 32 bits.  However, 16 bits limits the
    maximum size of the run lengths.  Thus, it inflated images (albiet by
    a small amount) in the average case when all pixels were averaged, and
    there is lots of code to break up the run lengths and copy pixels
    individually.
    
    This change means that some images can expand up to 50%, but only in
    cases that probably never happen.  The worst side effect of this
    change is that IceT must allocate this extra 50% in buffers just in
    case.  I could probably get around this by refusing to use run
    lengths of size 1.  However, that would again complicate code,
    especially in cases where you are copying active pixels (and hence
    have a special case of inserting background pixels).
    f8f74ff1