WebP images
WebP packages lossy or lossless image coding in a RIFF container that can also describe alpha, colour/metadata and animation.
WebP combines image coding with a RIFF-based file structure. Its lossy and lossless routes represent different choices; an extension alone does not identify which was used.
Read the container's roles
| Part | Meaning |
|---|---|
| RIFF / WEBP identification | Recognizable file packaging |
| VP8 image data | Lossy coded picture |
| VP8L image data | Lossless coded picture |
| Extended structure | Additional image features |
| Alpha, ICC, Exif or XMP data | Coverage and associated interpretation/metadata |
| Animation records | Canvas, timed frames and applicable composition behavior |
The extended structure can bring these features together. The reader needs the features present in the particular resource, rather than merely recognizing a VP8-based picture.
Lossless image coding also needs a defined input representation. It does not restore a previous full-resolution or higher-precision master that was changed before the encoder received it.
For Emby photos and artwork, compare that delivered resource with what the app can display. A video decoder accepting VP8 does not by itself prove that the same app implements WebP's still-image container, alpha or animation path.
Compare the same prepared image
Consider a photograph and a transparent title logo. The photo's useful result may tolerate lossy coding. The logo may instead need precise lettering and smooth alpha edges.
A meaningful comparison retains the same output dimensions and required colour/alpha behavior, then assesses appearance and encoded size. A codec's quality number and another encoder's identically named number do not establish equivalent output.
Conversion can also flatten alpha or discard metadata independently of the coding mode. A visually acceptable still thumbnail does not imply preservation of an animated WebP source's whole presentation.
A browsing derivative is a separate resource
A server-side image route can decode a source, resize it and encode another format for the app. The source's WebP features then matter at the decoding boundary; the output format's features matter at the receiving boundary.