You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Progressive images now render incomplete coefficients
Progressive jpegs have multiple passes on their spectral coefficients.
This library currently waits for all coefficients to have been
read in by the various segments before it sends the coefficient data
to the DCT engine.
However, some images have (perhaps incorrectly) incomplete passes on
the coefficient data, where eg. a component might only have spectral
coefficients 0 through 5 sent due to perhaps an improperly written
encoder. In these scenarios this library would yield the error, 'not
all components have data' instead of a more forgiving approach.
This change adds a final pass over the components when in a progressive
frame. The pass checks all components to determine if any have missing
coefficients (ie. haven't been processed yet), and if this is the case
it will send the components to the DCT engine to be processed, and then
collected. This way, the library is more forgiving to incomplete
spectral information present in certain progressive files.
Added new crashtest image:
* missing-sos: Image with a SOF but no SOS marker. Expected behavior is to
yield the 'not all components have data' error
Added new reftest images:
* progressive-incomplete: Progressive image with only the DC component.
Expected behavior should now be to render a white square.
* progressive-missing-dc: Progressive image with only the first AC
component. Expected behavior should be render a horizontal gradient.
0 commit comments