Every bitstream in one file: webp-corners.tgz.
A case describes the content of a bitstream as text, and is assembled into the .webp of the same name in files/. The field names are the specifications' own: RFC 6386 for the lossy frame, RFC 9649 for the container. reject means a compliant decoder must refuse it. SYNTAX.md is the vocabulary, HOWTO.md the walk-through.
| case | expected | what it is |
|---|---|---|
alph-after-image | ok | An ALPH chunk placed after the image chunk instead of before it. |
alph-compression-invalid | reject | A compression method of 2, past the lossless one. |
alph-empty-payload | reject | An ALPH chunk holding its header byte and nothing else. |
alph-lossless-byte-flipped | reject | The same plane with its last byte replaced. |
alph-lossless-palette | ok | A losslessly compressed alpha plane carrying a palette transform, from a cwebp encode of a two-valued plane. |
alph-lossless-predictor | ok | A losslessly compressed alpha plane carrying a predictor transform, from a cwebp encode of a gradient. |
alph-lossless-truncated | reject | The predictor-transform plane cut to ten bytes. |
alph-no-vp8x | reject | An ALPH chunk in a RIFF file with no VP8X ahead of it. |
alph-plane-cache | ok | A palette-coded alpha plane that also declares a colour cache. |
alph-plane-filtered | ok | A compressed alpha plane with the gradient filter on top. |
alph-plane-literals | ok | A compressed alpha plane written as plain green literals. |
alph-plane-lz77 | ok | An alpha plane whose second half is a back-reference to its first. |
alph-plane-lz77-dist-2 | ok | An alpha plane back-reference at distance 2. |
alph-plane-lz77-dist-4 | ok | An alpha plane back-reference at distance 4. |
alph-plane-lz77-past-start | reject | An alpha plane copying from before its own beginning. |
alph-plane-lz77-plain | ok | Two alpha-plane back-references that take neither pattern arm: one at distance 3, one shorter than its own distance. |
alph-plane-lz77-unaligned | ok | An alpha plane back-reference starting one byte off a word boundary. |
alph-plane-meta-huffman | ok | A palette-coded alpha plane with an entropy image inside it. |
alph-plane-nontrivial-red | ok | A palette-coded alpha plane whose red code carries two symbols. |
alph-plane-oversubscribed | reject | An alpha plane whose green code is over-subscribed. |
alph-plane-palette | ok | A compressed alpha plane of three values, through a palette. |
alph-plane-preprocessed | ok | A compressed alpha plane flagged as level-reduced. |
alph-plane-two-transforms | ok | An alpha plane carrying a palette and a subtract-green transform. |
alph-preprocessing-invalid | reject | A pre-processing value of 2, past level reduction. |
alph-raw-filter-gradient | ok | An uncompressed alpha plane under the gradient filter. |
alph-raw-filter-horizontal | ok | An uncompressed alpha plane under the horizontal filter. |
alph-raw-filter-none | ok | An uncompressed alpha plane under the none filter. |
alph-raw-filter-vertical | ok | An uncompressed alpha plane under the vertical filter. |
alph-raw-oversized | ok | An uncompressed plane 44 bytes longer than the picture needs. |
alph-raw-preprocessing | ok | An uncompressed plane declaring the level-reduction pre-processing. |
alph-raw-short | reject | An uncompressed plane one byte short of the picture. |
alph-reserved-set | reject | The two reserved bits of the ALPH header byte set. |
alph-without-vp8x-flag | ok | An ALPH chunk with the VP8X alpha flag left clear. |
anim-alph-after-image | reject, anim_dump reject | A frame whose alpha chunk comes after its image. |
anim-alpha-flag-missing | reject, anim_dump ok, webpinfo reject | Frames with transparency in a file whose VP8X does not admit it. |
anim-alpha-lossless-frame | reject, anim_dump ok | An animation frame whose alpha plane is a compressed image stream. |
anim-alpha-raw-frame | reject, anim_dump ok | An animation frame carrying an uncompressed ALPH chunk beside its lossy image. |
anim-anim-chunk-padded | reject, anim_dump ok, webpinfo reject | An ANIM chunk with four bytes of padding after its two fields. |
anim-anim-chunk-short | reject, anim_dump reject | An ANIM chunk of two bytes. |
anim-anmf-header-truncated | reject, anim_dump reject | An ANMF chunk declaring fewer bytes than its own header needs. |
anim-anmf-odd-size | reject, anim_dump reject | An ANMF chunk whose declared length is odd. |
anim-anmf-size-past-end | reject, anim_dump reject | An ANMF chunk claiming to be far longer than the file. |
anim-anmf-size-short | reject, anim_dump reject | An ANMF chunk declaring less than the image inside it takes up. |
anim-background-color | reject, anim_dump ok | A background colour that is neither white nor transparent. |
anim-blend-none | reject, anim_dump ok | A half-transparent frame that says not to blend it. |
anim-blend-over | reject, anim_dump ok | The same half-transparent frame, blended. |
anim-blend-ranges | reject, anim_dump ok | Three frames arranged so the blended region is split in two. |
anim-canvas-larger-than-frames | reject, anim_dump ok | A canvas bigger than any frame in it. |
anim-dispose-background | reject, anim_dump ok | A partial frame that asks to be cleared away after it is shown. |
anim-dispose-blend-matrix | reject, anim_dump ok | The four combinations of the disposal and blending bits, in one sequence. |
anim-duplicate-anim | reject, anim_dump ok | A second ANIM chunk between the frames. |
anim-duration-extremes | reject, anim_dump ok | One frame of zero milliseconds and one of the longest the field can say. |
anim-eight-frames | reject, anim_dump ok | Eight frames, each a different flat colour. |
anim-empty-frame | reject, anim_dump ok, webpinfo reject | An ANMF chunk holding its header and nothing else, followed by a real frame. |
anim-empty-frame-alone | reject, anim_dump reject | An animation whose only frame carries no image. |
anim-frame-1x1 | reject, anim_dump ok | A single-pixel frame in the middle of a canvas. |
anim-frame-alpha-only | reject, anim_dump reject | A frame carrying an alpha chunk and no image. |
anim-frame-area-overflow | reject, anim_dump reject | An ANMF header claiming a frame of sixteen million by sixteen million, inside a canvas of sixteen by sixteen. |
anim-frame-image-past-canvas | reject, anim_dump reject | A frame whose header fits the canvas but whose image does not. |
anim-frame-offsets | reject, anim_dump ok | A second frame smaller than the canvas, placed at an offset. |
anim-frame-past-canvas | reject, anim_dump reject | A frame whose rectangle runs off the edge of the canvas. |
anim-frame-reserved-bits | reject, anim_dump ok | The six reserved bits of the ANMF flag byte all set. |
anim-frame-size-mismatch | reject, anim_dump ok, webpinfo reject | An ANMF header claiming a size its own image disagrees with. |
anim-frames-without-flag | reject, anim_dump reject | A full animation whose VP8X does not claim to be one. |
anim-image-chunk-beside-frames | reject, anim_dump reject | A top-level image chunk in a file that also has frames. |
anim-loop-count-max | reject, anim_dump ok | Loop count 65535, the largest the field holds. |
anim-lossy-frames | reject, anim_dump ok | Two lossy frames rather than lossless ones. |
anim-metadata-chunks | reject, anim_dump ok | An animation carrying an ICC profile and both metadata chunks. |
anim-metadata-without-flags | reject, anim_dump ok, webpinfo reject | ICCP and EXIF chunks in an animation that declares neither. |
anim-mixed-formats | reject, anim_dump ok | A lossy frame and a lossless one in the same animation. |
anim-nested-anmf | reject, anim_dump reject | An ANMF chunk inside another ANMF chunk. |
anim-no-anim-chunk | reject, anim_dump reject | Frames with no ANIM chunk in front of them. |
anim-no-vp8x | reject, anim_dump reject | ANIM and ANMF chunks with no VP8X in front of them. |
anim-riff-size-past-end | reject, anim_dump reject | A RIFF size claiming more bytes than the file has. |
anim-riff-size-truncates-frames | reject, anim_dump reject | A RIFF size that stops in the middle of the last frame. |
anim-second-vp8x | reject, anim_dump reject | A second VP8X chunk after the frames have started. |
anim-single-frame | reject, anim_dump ok | An animation of one frame. |
anim-two-frames | reject, anim_dump ok | Two full-canvas lossless frames, the plain animation everything else here is a variation on. |
anim-two-images-in-frame | reject, anim_dump reject | One ANMF carrying two image chunks. |
anim-unknown-chunk-between-frames | reject, anim_dump ok | An unrecognised chunk sitting between two frames. |
anim-vp8l-with-alph | reject, anim_dump reject | A frame carrying both an alpha chunk and a lossless image. |
cache-bits-0-invalid | reject | Color cache flagged as present but with 0 bits. |
cache-bits-1 | ok | Color cache with the minimum size, 1 bit (2 entries). |
cache-bits-11 | ok | Color cache with the maximum size, 11 bits (2048 entries). |
cache-bits-12-invalid | reject | Color cache with 12 bits, one past MAX_CACHE_BITS. |
cache-index-literal | ok | A pixel coded as a color-cache index rather than as a literal. |
codelen-all-zero-lengths | reject | A code-length stream that assigns length 0 to every symbol. |
codelen-depth-15 | ok | A green code containing a symbol of depth 15, MAX_ALLOWED_CODE_LENGTH. |
codelen-incomplete | reject | A code whose lengths leave the tree incomplete (two symbols of depth 2). |
codelen-max-symbol-early-stop | ok | Code-length stream with an explicit max_symbol far below the alphabet size. |
codelen-max-symbol-too-big | reject | Explicit max_symbol greater than the alphabet size. |
codelen-num-codes-19 | ok | All 19 code-length codes declared. |
codelen-num-codes-4 | ok | Only 4 code-length codes declared, the minimum the 4-bit field allows. |
codelen-over-capacity | reject | Three symbols of depth 1, more than the two codes of that length that exist. |
codelen-oversubscribed | reject | Lengths 1, 2, 2, 2: each length is individually possible, but together they over-subscribe the tree. |
codelen-repeat-past-end | reject | A repeat run that would write past the end of the alphabet. |
codelen-repeat16-no-previous | ok | Code-length stream starting with code 16 (repeat previous), before any non-zero length was seen. |
codelen-repeat17-short-zeros | ok | Code-length stream using code 17 (3..10 zeros) rather than 18. |
codelen-repeat18-138-zeros | ok | Code-length stream using code 18 with its maximum run of 138 zeros. |
codelen-single-symbol-complex-form | ok | The complex form used to describe a code with exactly one symbol. |
codelen-two-level-table | ok | A green code with depths up to 10, past the 8-bit root table. |
container-chunk-header-truncated | reject | The file cut four bytes into the last chunk header. |
container-duplicate-image-chunk | ok | Two VP8 chunks, one after the other. |
container-metadata-chunks | ok | ICCP, EXIF and XMP chunks around the frame. |
container-no-image-chunk | reject | A VP8X chunk and some metadata, and no image chunk at all. |
container-odd-chunk-no-pad | reject | An odd-sized chunk whose header rounds its length up, taking the pad byte away. |
container-odd-chunk-payload | ok | An optional chunk with an odd-sized payload, and the pad byte that must follow it. |
container-riff-size-past-end | reject, incremental ok | A RIFF header claiming far more bytes than the file holds. |
container-riff-size-short | reject | A RIFF header claiming 11 bytes, one less than the smallest legal value. |
container-riff-size-truncates-chunks | reject | A RIFF size that stops in the middle of the chunks behind it. |
container-trailing-bytes | ok | Bytes after the last chunk that the RIFF size does not account for. |
container-unknown-chunk | ok | A chunk with a fourcc the format does not define, ahead of the frame. |
container-vp8x | ok | The extended format: a VP8X chunk ahead of the frame. |
container-vp8x-animation | reject | The VP8X animation flag set on a file with no animation chunks. |
container-vp8x-area-overflow | reject | A VP8X canvas of 16777216 by 16777216, the largest the two 24-bit fields can describe. |
container-vp8x-canvas-mismatch | reject | A VP8X canvas of 64x64 in front of a 32x32 frame. |
container-vp8x-reserved-bits | ok | The reserved bits of the VP8X flags field all set. |
container-vp8x-still-flags | ok | The four still-image VP8X flags set, with none of the chunks they promise. |
container-vp8x-wrong-size | reject | A VP8X chunk whose header claims 9 bytes rather than 10. |
container-zero-size-chunk | ok | An optional chunk declaring a zero-length payload. |
header-alpha-is-used | ok | The alpha_is_used hint set on an image whose every pixel is opaque. |
header-magic-wrong | reject | Signature byte 0x2e instead of the 0x2f the format defines. |
header-max-area-bomb | ok | 34 bytes declaring 16384x16384, every pixel one color. |
header-max-area-truncated | reject | The same 16384x16384 header, cut off before the Huffman codes. |
header-version-max | reject | Header with the 3-bit version field at 7, the largest it holds. |
header-version-nonzero | reject | Header with the 3-bit version field set to 1. |
header-width-16384 | ok | Width 16384, one past WEBP_MAX_DIMENSION. |
lossless-all-features | ok | Every optional part of the lossless format in one image. |
lossless-plain | ok | An ordinary lossless image, with none of the corners. |
lossy-coeff-all-types | ok | All four coefficient types in one macroblock, and both luma types across two. |
lossy-coeff-bands-chroma | ok | The same sweep across the four blocks of a chroma plane. |
lossy-coeff-bands-i16 | ok | The same sweep for the two block kinds a 16x16 macroblock has: the Y2 block and the luma blocks that follow it. |
lossy-coeff-bands-i4 | ok | Three 4x4 luma blocks that sweep every coefficient band, one per context. |
lossy-coeff-cat3 | ok | Category-3 coefficients: 11 to 18, three extra bits each. |
lossy-coeff-cat4 | ok | Category-4 coefficients: 19 to 34, four extra bits. |
lossy-coeff-cat5 | ok | Category-5 coefficients: 35 to 66, five extra bits. |
lossy-coeff-cat6 | ok | Category-6 coefficients: 67 upwards, eleven extra bits. |
lossy-coeff-cat6-max | ok | The largest coefficient the format can encode: 2114. |
lossy-coeff-context | ok | Neighbouring blocks with and without coefficients, so that every context value from 0 to 2 is used. |
lossy-coeff-empty-blocks | ok | Every one of the 25 blocks empty, but the macroblock not skipped. |
lossy-coeff-full-block | ok | A block with all sixteen coefficients non-zero, so the loop ends by running out of positions rather than on an end-of-block. |
lossy-coeff-medium-magnitudes | ok | Coefficients of 5 through 10, coded with the fixed probabilities 159, 165 and 145. |
lossy-coeff-small-magnitudes | ok | Coefficients of 1, 2, 3 and 4, the magnitudes with their own tree branches. |
lossy-coeff-wht-full | ok | A Y2 block with more than one coefficient, next to one with only a DC. |
lossy-coeff-zero-runs | ok | Single coefficients at positions 15, 12, 8 and 1, each behind a run of zeros. |
lossy-combo-all-features | ok | Every optional tool switched on in one frame at once. |
lossy-filter-lf-delta | ok | Loop-filter deltas: 63 and -63 on the reference deltas, and a delta on the 4x4 mode. |
lossy-filter-lf-delta-extremes | ok | Loop-filter mode deltas at -63 and 63. |
lossy-filter-normal-max | ok | The normal loop filter at level 63, sharpness 0. |
lossy-filter-sharpness-4 | ok | Sharpness 4, the last level that halves the interior limit. |
lossy-filter-sharpness-5 | ok | Sharpness 5, the first level that quarters it. |
lossy-filter-simple-max | ok | The simple loop filter at level 63 and sharpness 7. |
lossy-frame-bad-start-code | reject | The three-byte start code changed from 9d 01 2a to 9d 01 29. |
lossy-frame-colorspace-clamp | ok | The colour-space and clamping-type bits both set. |
lossy-frame-interframe | reject | The key-frame bit cleared, so the frame claims to be an inter frame. |
lossy-frame-not-shown | reject | A key frame with the show_frame bit cleared. |
lossy-frame-part0-empty | reject | The frame tag claims a zero-byte partition 0. |
lossy-frame-part0-past-end | reject | The frame tag claims a partition 0 far larger than the file. |
lossy-frame-scale-1 | ok | A horizontal upscaling hint of 1 and a vertical one of 3. |
lossy-frame-scale-2 | ok | A horizontal upscaling hint of 2 and a vertical one of 1. |
lossy-frame-scaled | ok | Horizontal and vertical upscaling hints of 3 (2x) in the top bits of the dimension fields. |
lossy-frame-version-1 | ok | A frame declaring profile 1 instead of 0. |
lossy-frame-version-2 | ok | Profile 2, one of the four values the decoder accepts. |
lossy-frame-version-3 | ok | Profile 3, the largest the decoder accepts. |
lossy-frame-version-4 | reject | Profile 4, one past the last valid value. |
lossy-frame-version-7 | reject | Profile 7, the largest the 3-bit field can hold. |
lossy-frame-width-16383 | ok | The widest frame the 14-bit field can describe, one macroblock tall. |
lossy-frame-zero-width | reject | A frame whose width field is zero, with a height of 32. |
lossy-mode-i16-all-four | ok | The four 16x16 luma modes, one per macroblock. |
lossy-mode-i4-all-ten | ok | All ten 4x4 luma modes inside one macroblock, twice over. |
lossy-mode-i4-context | ok | Four B_PRED macroblocks whose 4x4 modes walk the [above][left] probability table. |
lossy-mode-mixed | ok | 16x16 and 4x4 macroblocks alternating, in both directions. |
lossy-mode-uv-all-four | ok | The four chroma modes, one per macroblock. |
lossy-parts-2-wrap | ok | Four rows over two partitions, so each partition holds two non-adjacent rows. |
lossy-parts-8-rows | ok | Eight macroblock rows over eight token partitions, one row each, every row different. |
lossy-parts-last-empty | reject | Four partitions whose declared sizes leave nothing for the last one. |
lossy-parts-size-past-end | reject | Four partitions, the first declaring 16 MB of data. |
lossy-parts-table-too-small | reject | Eight partitions declared in a frame with only ten bytes left for the twenty-one-byte size table. |
lossy-proba-all-updated | ok | Every one of the 1056 coefficient probabilities updated. |
lossy-proba-one-update | ok | A single coefficient probability updated, the other 1055 left alone. |
lossy-proba-refresh-and-skip-zero | ok | The entropy-refresh bit set, and a skip probability of 0. |
lossy-proba-skip-extremes | ok | A skip probability of 255 with nothing skipped, and the flag itself written out. |
lossy-proba-zero | ok | Coefficient probabilities of 0 and of 255, the ends of the range. |
lossy-quant-deltas | ok | All five quantizer deltas present, at the ends of their 4-bit range. |
lossy-quant-deltas-mirrored | ok | The five quantizer deltas at the ends lossy-quant-deltas does not use. |
lossy-quant-dequant-overflow | ok | A coefficient of 2114 at the coarsest quantizer, so the dequantized value does not fit the int16 it is stored in. |
lossy-quant-max | ok | The frame quantizer at 127, the coarsest. |
lossy-quant-min | ok | The frame quantizer at 0, the finest the format allows. |
lossy-quant-uv-dc-clamp | ok | A chroma DC quantizer index pushed past 117, where it is clamped rather than at 127. |
lossy-segment-delta-quantizers | ok | Segment quantizers read as deltas on the frame quantizer instead of absolute values. |
lossy-segment-filter-strengths | ok | Per-segment loop-filter strengths, from 0 to 63, under a frame filter level of 40. |
lossy-segment-four-quantizers | ok | Four segments with four different absolute quantizers, one macroblock each. |
lossy-segment-map-only | ok | A segment map with no segment data behind it. |
lossy-segment-no-map | ok | Segmentation on, quantizers given, but no segment map: every macroblock is segment 0. |
lossy-segment-prob-extremes | ok | Segment probabilities of 0 and 255, and loop-filter updates at both ends of their range. |
lossy-segment-quant-extremes | ok | Segment quantizers at 127, -127, 0 and absent. |
lossy-skip-all | ok | Every macroblock skipped. |
lossy-skip-i4x4-nz-dc | ok | A skipped 4x4 macroblock between two 16x16 ones that both carry a Y2 block. |
lossy-skip-mixed | ok | Skipped and coded macroblocks alternating, with a skip probability of 1. |
lossy-truncated-header | reject | Partition 0 cut to two bytes, which is enough for the segment header and not for the filter header. |
lossy-truncated-modes | reject | Partition 0 long enough for the whole frame header and not for the macroblock modes that follow it. |
lossy-truncated-short-modes | ok | Mode data for 15 macroblocks in a frame whose dimensions call for 16. |
lossy-truncated-tokens | reject | Partition 0 intact, the token partition cut in half. |
lz77-distance-1-run | ok | A single literal followed by a length-8 copy at distance 1. |
lz77-distance-2-pattern | ok | A back-reference at distance 2, five pixels long. |
lz77-distance-3-overlap | ok | A ten-pixel back-reference at distance 3. |
lz77-distance-direct-121 | ok | Plane code 121, the first value past the table. |
lz77-distance-past-start | reject | A back-reference pointing further back than the pixels decoded so far. |
lz77-length-past-end | reject | A copy whose length runs past the last pixel of the image. |
lz77-max-length-symbol | ok | A back-reference using length symbol 23, the largest the format defines. |
lz77-plane-code-1 | ok | Back-reference with plane code 1, which means "the pixel directly above". |
lz77-plane-code-120 | ok | Plane code 120, the last entry of the 2-D offset table. |
lz77-plane-code-clamped-to-1 | ok | Plane code 4 on a 1-pixel-wide image, where the 2-D offset computes to 0. |
meta-huffman-1001-groups | ok | Entropy image whose highest group index is 1000, one past the decoder's arbitrary limit. |
meta-huffman-groups-truncated | reject | An entropy image naming group 1 when only one group of codes follows. |
meta-huffman-per-tile-data | ok | Two Huffman groups that both carry real data, so the code in use changes four pixels into every row. |
meta-huffman-precision-max | ok | Meta Huffman with the largest tile size (precision 9, 512x512 pixels). |
meta-huffman-precision-min | ok | Meta Huffman with the smallest tile size (precision 2, 4x4 pixels). |
meta-huffman-sparse-groups | ok | Entropy image referencing groups 0 and 900 only, leaving a 900-entry hole. |
meta-huffman-two-groups | ok | Two Huffman groups selected per tile by the entropy image. |
predictor-all-16-modes | ok | One tile per predictor index, 0 to 15, across a 64x4 image. |
predictor-mode-11-select | ok | Predictor 11 (Select) over the whole image. |
predictor-mode-13-clamp-half | ok | Predictor 13 (ClampAddSubtractHalf) over the whole image. |
predictor-mode-14-undefined | ok | Every tile selects predictor 14, which the format does not define. |
predictor-mode-15-undefined | ok | Every tile selects predictor 15, the other undefined index. |
predictor-single-row | ok | A predictor transform on a one-row image. |
predictor-tile-bits-min | ok | Predictor tiles of 4x4 pixels, the smallest the format allows. |
simple-dist-1sym-oob | reject | Distance code: simple form, single symbol 255, alphabet_size is 40. |
simple-dist-2sym-both-oob | reject | Distance code: both simple-form symbols out of range (200, 201). |
simple-dist-2sym-duplicate | ok | Distance code: simple form declaring 2 symbols that are the same (5, 5). |
simple-dist-2sym-first-oob | ok | Distance code: simple form, 2 symbols, the first one 200 >= alphabet_size 40. |
simple-dist-2sym-second-oob | ok | Distance code: simple form, 2 symbols, the second one 200 >= 40. |
simple-dist-sym-39-last-valid | ok | Distance code: single symbol 39, the last in-range value. |
simple-dist-sym-40-first-oob | reject | Distance code: single symbol 40, the first out-of-range value. |
simple-green-1bit-symbol | ok | Green code: simple form with first_symbol_len_code = 0, so the symbol is 1 bit wide. |
simple-green-2sym-1bit-each | ok | Green code with two real symbols, so every pixel costs exactly 1 bit. |
subimage-cache-12-invalid | reject | A sub-image color cache of 12 bits, one past MAX_CACHE_BITS. |
subimage-cache-entropy-image | ok | A color cache inside the entropy image itself. |
subimage-cache-palette-max | ok | A color cache of 11 bits inside the palette sub-image of the color-indexing transform. |
subimage-cache-predictor-min | ok | A color cache declared inside the predictor transform's sub-image, 1 bit. |
subimage-cache-zero-invalid | reject | A sub-image color cache flagged present but with 0 bits. |
subimage-code-complex-form | ok | The predictor sub-image's green code written with the code-length repeat escapes. |
subimage-code-empty | reject | A sub-image code-length stream that really does assign length 0 to all 280 symbols. |
subimage-code-max-symbol | ok | A sub-image code using the explicit max_symbol early stop. |
subimage-code-oversubscribed | reject | A sub-image Huffman code with lengths 1, 2, 2, 2, which over-subscribes the tree. |
transform-all-four | ok | All four transforms present in one stream. |
transform-cross-color-bits-max | ok | Cross-color transform with bits = 9, the largest tile size. |
transform-cross-color-multipliers | ok | A cross-color transform with real multipliers rather than the identity. |
transform-palette-1-color | ok | Palette with a single color, the smallest the 8-bit field can express. |
transform-palette-16-colors | ok | Palette of 16 colors, so indices are 4 bits and 2 pixels share a byte. |
transform-palette-2-colors | ok | Color-indexing transform with 2 colors, so 8 pixels are packed per byte. |
transform-palette-256-colors | ok | Color-indexing transform with the full 256-entry palette. |
transform-palette-3-colors | ok | Palette of 3 colors, so indices are 2 bits and 4 pixels share a byte. |
transform-palette-index-past-end | ok | Palette of 3 colors addressed with index 3, which does not exist. |
transform-predictor-bits-max | ok | Predictor transform with bits = 9, the maximum tile size. |
transform-repeated | reject | The subtract-green transform declared twice. |