--- branches/dev-api-4/xvidcore/src/bitstream/mbcoding.c 2003/03/15 17:06:53 925 +++ branches/dev-api-4/xvidcore/src/bitstream/mbcoding.c 2003/03/16 12:05:09 926 @@ -627,6 +627,13 @@ #endif + +static int iDQtab[5] = { + 1, 0, -1 /* no change */, 2, 3 +}; +#define DQ_VALUE2INDEX(value) iDQtab[(value)+2] + + static __inline void CodeBlockIntra(const FRAMEINFO * const frame, const MACROBLOCK * pMB, @@ -661,7 +668,7 @@ // write dquant if (pMB->mode == MODE_INTRA_Q) - BitstreamPutBits(bs, pMB->dquant, 2); + BitstreamPutBits(bs, DQ_VALUE2INDEX(pMB->dquant), 2); // write interlacing if (frame->vol_flags & XVID_INTERLACING) { @@ -723,7 +730,7 @@ // write dquant if (pMB->mode == MODE_INTER_Q) - BitstreamPutBits(bs, pMB->dquant, 2); + BitstreamPutBits(bs, DQ_VALUE2INDEX(pMB->dquant), 2); // interlacing if (frame->vol_flags & XVID_INTERLACING) {