Hi,

attached patch isn't entirely complete, e.g. I believe mbaff +
contrained intra pred is broken for 4:2:2 (we don't check each side
edge, this requires extending the prediction modes a bit
422-specifically). Also, lossless is untested because JM fails to
generate correct 422 lossless samples, so I can't be 100% sure that
that code is correct, but I'm pretty sure it is. This applies on top
of Baptiste's patch and decodes all 422 samples in the conformance
suite correctly (i.e. identical to JM).

TODOs ATM:
- most (all?) CHROMA422 checks need to be changed so that these
functions (assuming they're inlined) take a chroma_idc argument that
we check instead (this can also replace the chroma444 argument).
- the way in which we do weight/biweight simd functions is suboptimal
now that 420 isn't the only format in the world. I believe it makes
sense to change these functions so that they act on fixed width but
take a height argument. I'm sure this will be a nice trollfest. This
may allow getting rid of some of the if (CHROMA422) { do identical
thing for the bottom half of chroma block } pieces in the code.
- I don't like how several of these pred8x8 and pred8x8_add functions
get abused to mean 8x16 for 422. I guess for now it's OK but at least
it should be documented.
- haven't confirmed that it doesn't slow down 420

Ronald

Attachment: 0001-Support-for-lossless-and-inter-H264-4-2-2.patch
Description: Binary data

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to