60
const uint8_t ff_h264_chroma_qp[52]={
61
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,
62
12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,
63
28,29,29,30,31,32,32,33,34,34,35,35,36,36,37,37,
64
37,38,38,38,39,39,39,39
60
#define QP(qP,depth) ( (qP)+6*((depth)-8) )
62
#define CHROMA_QP_TABLE_END(d) \
63
QP(0,d), QP(1,d), QP(2,d), QP(3,d), QP(4,d), QP(5,d),\
64
QP(6,d), QP(7,d), QP(8,d), QP(9,d), QP(10,d), QP(11,d),\
65
QP(12,d), QP(13,d), QP(14,d), QP(15,d), QP(16,d), QP(17,d),\
66
QP(18,d), QP(19,d), QP(20,d), QP(21,d), QP(22,d), QP(23,d),\
67
QP(24,d), QP(25,d), QP(26,d), QP(27,d), QP(28,d), QP(29,d),\
68
QP(29,d), QP(30,d), QP(31,d), QP(32,d), QP(32,d), QP(33,d),\
69
QP(34,d), QP(34,d), QP(35,d), QP(35,d), QP(36,d), QP(36,d),\
70
QP(37,d), QP(37,d), QP(37,d), QP(38,d), QP(38,d), QP(38,d),\
71
QP(39,d), QP(39,d), QP(39,d), QP(39,d)
73
const uint8_t ff_h264_chroma_qp[3][QP_MAX_NUM+1] = {
75
CHROMA_QP_TABLE_END(8)
79
CHROMA_QP_TABLE_END(9)
84
CHROMA_QP_TABLE_END(10)
67
88
static const uint8_t default_scaling4[2][16]={
422
build_qp_table(PPS *pps, int t, int index)
443
build_qp_table(PPS *pps, int t, int index, const int depth)
425
for(i = 0; i < 52; i++)
426
pps->chroma_qp_table[t][i] = ff_h264_chroma_qp[av_clip(i + index, 0, 51)];
446
const int max_qp = 51 + 6*(depth-8);
447
for(i = 0; i < max_qp+1; i++)
448
pps->chroma_qp_table[t][i] = ff_h264_chroma_qp[depth-8][av_clip(i + index, 0, max_qp)];
429
451
int ff_h264_decode_picture_parameter_set(H264Context *h, int bit_length){
430
452
MpegEncContext * const s = &h->s;
431
453
unsigned int pps_id= get_ue_golomb(&s->gb);
455
const int qp_bd_offset = 6*(h->sps.bit_depth_luma-8);
434
457
if(pps_id >= MAX_PPS_COUNT) {
435
458
av_log(h->s.avctx, AV_LOG_ERROR, "pps_id (%d) out of range\n", pps_id);