2 ms·
> Keyframes don't disappear with the next frame — they're the basis of all the delta (P- and B-) frames that follow until the next I-frame. Exactly this. P/B-f
by lifthrasiir 4y ago
> Keyframes don't disappear with the next frame — they're the basis of all the delta (P- and B-) frames that follow until the next I-frame.
Exactly this. P/B-frames are not encoded as a delta to the input I-frame; it is encoded as a delta to once compressed then decoded I-frame, otherwise errors in the I-frame will accumulate. So any imperfection in I-frames has a chance to be fixed by subsequent P/B-frames, but this is impossible in a still image.
You have a good point that AVIF layered image items can act like such P/B-frames. Do libavif (or other AVIF implementations if any) make use of them? JPEG XL has the same feature (zero-duration frame) but I think libjxl doesn't use it to encode a residue when the input image is not animated---in fairness such residues are very hard to compress though.
- CharlesW 4y ago> You have a good point that AVIF layered image items can act like such P/B-frames. Do libavif (or other AVIF implementations if any) make use of them? Seemingly! https://github.com/AOMediaCodec/libavif/blob/main/CHANGELOG.md https://github.com/AOMediaCodec/libavif/blob/main/CHANGELOG.... inclues the notes "Support for progressive AVIFs and operating point selection" and "Update the handling of 'lsel' and progressive decoding to AVIF spec v1.1.0" in 2021.