52 |
|
|
53 |
#include <stdlib.h> |
#include <stdlib.h> |
54 |
#include "../portab.h" |
#include "../portab.h" |
55 |
|
#include "../global.h" |
56 |
#include "bitstream.h" |
#include "bitstream.h" |
57 |
#include "zigzag.h" |
#include "zigzag.h" |
58 |
#include "vlc_codes.h" |
#include "vlc_codes.h" |
60 |
|
|
61 |
#include "../utils/mbfunctions.h" |
#include "../utils/mbfunctions.h" |
62 |
|
|
63 |
#define ABS(X) (((X)>0)?(X):-(X)) |
VLC intra_table[4*2048*64]; |
64 |
#define CLIP(X,A) (X > A) ? (A) : (X) |
VLC inter_table[4*2048*64]; |
|
|
|
|
VLC intra_table[524032]; |
|
|
VLC inter_table[524032]; |
|
65 |
|
|
66 |
VLC DCT3Dintra[4096]; |
VLC DCT3Dintra[4096]; |
67 |
VLC DCT3Dinter[4096]; |
VLC DCT3Dinter[4096]; |
681 |
|
|
682 |
uint32_t index; |
uint32_t index; |
683 |
|
|
684 |
index = CLIP(BitstreamShowBits(bs, 9), 256); |
index = MIN(BitstreamShowBits(bs, 9), 256); |
685 |
|
|
686 |
BitstreamSkip(bs, mcbpc_inter_table[index].len); |
BitstreamSkip(bs, mcbpc_inter_table[index].len); |
687 |
|
|
838 |
DPRINTF(DPRINTF_COEFF,"block[%i] %i", scan[coeff], level); |
DPRINTF(DPRINTF_COEFF,"block[%i] %i", scan[coeff], level); |
839 |
//DPRINTF(DPRINTF_COEFF,"block[%i] %i %08x", scan[coeff], level, BitstreamShowBits(bs, 32)); |
//DPRINTF(DPRINTF_COEFF,"block[%i] %i %08x", scan[coeff], level, BitstreamShowBits(bs, 32)); |
840 |
|
|
841 |
if (level < -127 || level > 127) { |
if (level < -2047 || level > 2047) { |
842 |
DPRINTF(DPRINTF_ERROR,"warning: intra_overflow %i", level); |
DPRINTF(DPRINTF_ERROR,"warning: intra_overflow %i", level); |
843 |
} |
} |
844 |
coeff++; |
coeff++; |
872 |
DPRINTF(DPRINTF_COEFF,"block[%i] %i", scan[p], level); |
DPRINTF(DPRINTF_COEFF,"block[%i] %i", scan[p], level); |
873 |
// DPRINTF(DPRINTF_COEFF,"block[%i] %i %08x", scan[p], level, BitstreamShowBits(bs, 32)); |
// DPRINTF(DPRINTF_COEFF,"block[%i] %i %08x", scan[p], level, BitstreamShowBits(bs, 32)); |
874 |
|
|
875 |
if (level < -127 || level > 127) { |
if (level < -2047 || level > 2047) { |
876 |
DPRINTF(DPRINTF_ERROR,"warning: inter overflow %i", level); |
DPRINTF(DPRINTF_ERROR,"warning: inter overflow %i", level); |
877 |
} |
} |
878 |
p++; |
p++; |