From 5a78bfbde74620137ccbd8c223300ac639107f60 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 22 Jul 2008 13:01:10 +0000 Subject: [PATCH] qscale has a range of 0..51 we thus do not need a 256 entry table and neither need to and it with 0xFF. Originally committed as revision 14336 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/h264.c | 6 +++--- libavcodec/h264.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index ee29f1b81f..213e03b087 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -1584,7 +1584,7 @@ static void chroma_dc_dct_c(DCTELEM *block){ * gets the chroma qp. */ static inline int get_chroma_qp(H264Context *h, int t, int qscale){ - return h->pps.chroma_qp_table[t][qscale & 0xff]; + return h->pps.chroma_qp_table[t][qscale]; } //FIXME need to check that this does not overflow signed 32 bit for low qp, I am not sure, it's very close @@ -7337,8 +7337,8 @@ static void build_qp_table(PPS *pps, int t, int index) { int i; - for(i = 0; i < 255; i++) - pps->chroma_qp_table[t][i & 0xff] = chroma_qp[av_clip(i + index, 0, 51)]; + for(i = 0; i < 52; i++) + pps->chroma_qp_table[t][i] = chroma_qp[av_clip(i + index, 0, 51)]; } static inline int decode_picture_parameter_set(H264Context *h, int bit_length){ diff --git a/libavcodec/h264.h b/libavcodec/h264.h index dc18d20c38..889c94c6bc 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -138,7 +138,7 @@ typedef struct PPS{ int transform_8x8_mode; ///< transform_8x8_mode_flag uint8_t scaling_matrix4[6][16]; uint8_t scaling_matrix8[2][64]; - uint8_t chroma_qp_table[2][256]; ///< pre-scaled (with chroma_qp_index_offset) version of qp_table + uint8_t chroma_qp_table[2][64]; ///< pre-scaled (with chroma_qp_index_offset) version of qp_table int chroma_qp_diff; }PPS;