Jan 1, 2024, 15:16 by nuomi2...@gmail.com: > + */ > +void ff_vvc_inv_dct2_4(int *coeffs, const ptrdiff_t stride, const size_t nz) > +{ > + const int a = 64, b = 83, c = 36; > + const int x0 = coeffs[0 * stride], x1 = coeffs[1 * stride]; > + const int x2 = coeffs[2 * stride], x3 = coeffs[3 * stride]; > + const int E[2] = { > + a * (x0 + G2(+x2)), > + a * (x0 + G2(-x2)), > + }; > + const int O[2] = { > + b * x1 + G2(+c * x3), > + c * x1 + G2(-b * x3), > + }; > + > + coeffs[0 * stride] = E[0] + O[0]; > + coeffs[1 * stride] = E[1] + O[1]; > + coeffs[2 * stride] = E[1] - O[1]; > + coeffs[3 * stride] = E[0] - O[0]; > +} >
Is that how the transforms are specified (matrices)? Also, why are you not adding the transformed residual *directly* to the input. This is how all our other decoders do this, because it skips a copy. This isn't something you can quite optimize later on. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".