- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We are developing an accelerated MPEG-2 based video decoder and are comparing the use of Intel IPP with other methods.
When using the following:
ippiDCT8x8Inv_AANTransposed_16s8u_C1R
Initial sample values are stored as:
Ipp16s samples[6][64]; // 4:2:0
The resulting values are arranged in X / Y flipped, and for negative DC values the function always returns all 0s.
Our own reference IDCT function returns very different values.
For example:
block[0] = -848
Intel IPP IDCT yields: result = [0, 0, ....]
Our own IDCT yields: result = [-106, -106, ...]
I understand that 8u values are not to be negative, but what happens to these values? How do I correct this? I tried using the Intel IPP Inverse Quant function too..
So in summary, I'm stuck on:
IDCT sample placement (for values it works on),
IDCT handling of negative input values.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have read the IPPI manual (.PDF); but the sample code is extremely difficult to understand. What perplexes me is that this function works correctly for positive values...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Well, I don't know if this issue is solved, but for now I stopped using that function.
I found a different undocumented direct function in "ippi.h":
ippiDCT8x8InvLSClip_16s8u_C1R
This one does everything I need and the results are correct as well.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page