X-Git-Url: https://git.sesse.net/?p=fjl;a=blobdiff_plain;f=zigzag.h;h=5d9df28ec457e9a048587d14ae81321d714a5b98;hp=3fc137710581211a137edc7d84633bee0c653b1e;hb=12195f1ed80bebbfecfa7505ec965177228ea916;hpb=8326dff1cbad02c5d660696648e15a0f575c9afd diff --git a/zigzag.h b/zigzag.h index 3fc1377..5d9df28 100644 --- a/zigzag.h +++ b/zigzag.h @@ -4,10 +4,10 @@ #include "idct.h" // Table for transforming from zig-zag order to natural order. -// We use the same trick as libjpeg here; there are 16 extra entries +// We use the same trick as libjpeg here; there are 64 extra entries // after the end of the table, since the run-length decoder could // potentially cause entries indices >= 64 to be decoded. -static const unsigned unzigzag[DCTSIZE2 + 16] = { +static const unsigned unzigzag[DCTSIZE2 * 2] = { // Regular entries. 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, @@ -18,7 +18,14 @@ static const unsigned unzigzag[DCTSIZE2 + 16] = { 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63, - // Extra padding entries; should never be referenced in well-formed data. + // Extra padding entries. + // May get referenced by malformed data or during end-of-block processing. + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, };