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
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
