The DCT and IDCT functions provided by your IPP library do not produce matching results.
See, in the case like:
[X0] -> DCT -> [Y1] -> IDCT -> [X1] -> DCT -> [Y2]
In result, [Y1] != [Y2].
Any suggestions? Thank you.
The suggestion is to carefully read IPP documentation and properly use IPP functions.
If you use 16-bit DCT functions you need to provide data in some particular range, 9-bit if I remember it correctly. You also mayexpect rounding errors in integer arithmetic used in 16-bit functions. You may use floating point IPP DCT functions if the accuracy of 16-bit integer functions is not enough for your application.