Home | History | Annotate | Download | only in decoder

Lines Matching defs:xd

57 void vp8_mb_init_dequantizer(VP8D_COMP *pbi, MACROBLOCKD *xd)
61 MB_MODE_INFO *mbmi = &xd->mode_info_context->mbmi;
65 if (xd->segmentation_enabled)
68 if (xd->mb_segement_abs_delta == SEGMENT_ABSDATA)
69 QIndex = xd->segment_feature_data[MB_LVL_ALT_Q][mbmi->segment_id];
74 QIndex = pc->base_qindex + xd->segment_feature_data[MB_LVL_ALT_Q][mbmi->segment_id];
82 xd->dequant_y1_dc[0] = 1;
83 xd->dequant_y1[0] = pc->Y1dequant[QIndex][0];
84 xd->dequant_y2[0] = pc->Y2dequant[QIndex][0];
85 xd->dequant_uv[0] = pc->UVdequant[QIndex][0];
89 xd->dequant_y1_dc[i] =
90 xd->dequant_y1[i] = pc->Y1dequant[QIndex][1];
91 xd->dequant_y2[i] = pc->Y2dequant[QIndex][1];
92 xd->dequant_uv[i] = pc->UVdequant[QIndex][1];
96 static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
105 if (xd->mode_info_context->mbmi.mb_skip_coeff)
107 vp8_reset_mb_tokens_context(xd);
109 else if (!vp8dx_bool_error(xd->current_bc))
112 eobtotal = vp8_decode_mb_tokens(pbi, xd);
115 xd->mode_info_context->mbmi.mb_skip_coeff = (eobtotal==0);
118 mode = xd->mode_info_context->mbmi.mode;
120 if (xd->segmentation_enabled)
121 vp8_mb_init_dequantizer(pbi, xd);
134 throw_residual = (throw_residual || vp8dx_bool_error(xd->current_bc));
142 vpx_memset(xd->qcoeff, 0, sizeof(xd->qcoeff));
143 vp8_conceal_corrupt_mb(xd);
151 vpx_memset(xd->eobs, 0, 25);
157 if (xd->mode_info_context->mbmi.ref_frame == INTRA_FRAME)
159 vp8_build_intra_predictors_mbuv_s(xd,
160 xd->recon_above[1],
161 xd->recon_above[2],
162 xd->recon_left[1],
163 xd->recon_left[2],
164 xd->recon_left_stride[1],
165 xd->dst.u_buffer, xd->dst.v_buffer,
166 xd->dst.uv_stride);
170 vp8_build_intra_predictors_mby_s(xd,
171 xd->recon_above[0],
172 xd->recon_left[0],
173 xd->recon_left_stride[0],
174 xd->dst.y_buffer,
175 xd->dst.y_stride);
179 short *DQC = xd->dequant_y1;
180 int dst_stride = xd->dst.y_stride;
183 if(xd->mode_info_context->mbmi.mb_skip_coeff)
184 vpx_memset(xd->eobs, 0, 25);
186 intra_prediction_down_copy(xd, xd->recon_above[0] + 16);
190 BLOCKD *b = &xd->block[i];
191 unsigned char *dst = xd->dst.y_buffer + b->offset;
193 xd->mode_info_context->bmi[i].as_mode;
202 if (xd->eobs[i])
204 if (xd->eobs[i] > 1)
222 vp8_build_inter_predictors_mb(xd);
233 if(!xd->mode_info_context->mbmi.mb_skip_coeff)
238 short *DQC = xd->dequant_y1;
242 BLOCKD *b = &xd->block[24];
245 if (xd->eobs[24] > 1)
247 vp8_dequantize_b(b, xd->dequant_y2);
250 xd->qcoeff);
255 b->dqcoeff[0] = b->qcoeff[0] * xd->dequant_y2[0];
257 xd->qcoeff);
264 DQC = xd->dequant_y1_dc;
268 (xd->qcoeff, DQC,
269 xd->dst.y_buffer,
270 xd->dst.y_stride, xd->eobs);
274 (xd->qcoeff+16*16, xd->dequant_uv,
275 xd->dst.u_buffer, xd->dst.v_buffer,
276 xd->dst.uv_stride, xd->eobs+16);
502 MACROBLOCKD *const xd = & pbi->mb;
504 MODE_INFO *lf_mic = xd->mode_info_context;
543 xd->up_available = 0;
547 vp8_loop_filter_frame_init(pc, xd, pc->filter_level);
556 xd->current_bc = & pbi->mbc[ibc];
567 xd->above_context = pc->above_context;
568 vpx_memset(xd->left_context, 0, sizeof(ENTROPY_CONTEXT_PLANES));
570 xd
572 xd->mb_to_top_edge = -((mb_row * 16) << 3);
573 xd->mb_to_bottom_edge = ((pc->mb_rows - 1 - mb_row) * 16) << 3;
575 xd->recon_above[0] = dst_buffer[0] + recon_yoffset;
576 xd->recon_above[1] = dst_buffer[1] + recon_uvoffset;
577 xd->recon_above[2] = dst_buffer[2] + recon_uvoffset;
579 xd->recon_left[0] = xd->recon_above[0] - 1;
580 xd->recon_left[1] = xd->recon_above[1] - 1;
581 xd->recon_left[2] = xd->recon_above[2] - 1;
583 xd->recon_above[0] -= xd->dst.y_stride;
584 xd->recon_above[1] -= xd->dst.uv_stride;
585 xd->recon_above[2] -= xd->dst.uv_stride;
588 xd->recon_left_stride[0] = xd->dst.y_stride;
589 xd->recon_left_stride[1] = xd->dst.uv_stride;
591 setup_intra_recon_left(xd->recon_left[0], xd->recon_left[1],
592 xd->recon_left[2], xd->dst.y_stride,
593 xd->dst.uv_stride);
601 xd->mb_to_left_edge = -((mb_col * 16) << 3);
602 xd->mb_to_right_edge = ((pc->mb_cols - 1 - mb_col) * 16) << 3;
608 vp8dx_bool_error(xd->current_bc);
610 xd->mode_info_context->mbmi.ref_frame == INTRA_FRAME &&
622 vp8_interpolate_motion(xd,
630 xd->dst.y_buffer = dst_buffer[0] + recon_yoffset;
631 xd->dst.u_buffer = dst_buffer[1] + recon_uvoffset;
632 xd->dst.v_buffer = dst_buffer[2] + recon_uvoffset;
634 xd->pre.y_buffer = ref_buffer[xd->mode_info_context->mbmi.ref_frame][0] + recon_yoffset;
635 xd->pre.u_buffer = ref_buffer[xd->mode_info_context->mbmi.ref_frame][1] + recon_uvoffset;
636 xd->pre.v_buffer = ref_buffer[xd->mode_info_context->mbmi.ref_frame][2] + recon_uvoffset;
639 xd->corrupted |= ref_fb_corrupted[xd->mode_info_context->mbmi.ref_frame];
641 decode_macroblock(pbi, xd, mb_idx);
644 xd->left_available = 1;
647 xd->corrupted |= vp8dx_bool_error(xd->current_bc);
649 xd->recon_above[0] += 16;
650 xd->recon_above[1] += 8;
651 xd->recon_above[2] += 8;
652 xd->recon_left[0] += 16;
653 xd->recon_left[1] += 8;
654 xd->recon_left[2] += 8;
659 ++xd->mode_info_context; /* next mb */
661 xd->above_context++;
665 vp8_extend_mb_row(yv12_fb_new, xd->dst.y_buffer + 16,
666 xd->dst.u_buffer + 8, xd->dst.v_buffer + 8);
668 ++xd->mode_info_context; /* skip prediction column */
669 xd->up_available = 1;
914 MACROBLOCKD *const xd = & pbi->mb;
926 vpx_memset(xd->segment_feature_data, 0, sizeof(xd->segment_feature_data));
927 xd->mb_segement_abs_delta = SEGMENT_DELTADATA;
930 vpx_memset(xd->ref_lf_deltas, 0, sizeof(xd->ref_lf_deltas));
931 vpx_memset(xd->mode_lf_deltas, 0, sizeof(xd->mode_lf_deltas));
950 xd->subpixel_predict = vp8_sixtap_predict4x4;
951 xd->subpixel_predict8x4 = vp8_sixtap_predict8x4;
952 xd->subpixel_predict8x8 = vp8_sixtap_predict8x8;
953 xd->subpixel_predict16x16 = vp8_sixtap_predict16x16;
957 xd->subpixel_predict = vp8_bilinear_predict4x4;
958 xd->subpixel_predict8x4 = vp8_bilinear_predict8x4;
959 xd->subpixel_predict8x8 = vp8_bilinear_predict8x8;
960 xd->subpixel_predict16x16 = vp8_bilinear_predict16x16;
967 xd->left_context = &pc->left_context;
968 xd->mode_info_context = pc->mi;
969 xd->frame_type = pc->frame_type;
970 xd->mode_info_context->mbmi.mode = DC_PRED;
971 xd->mode_info_stride = pc->mode_info_stride;
972 xd->corrupted = 0; /* init without corruption */
974 xd->fullpixel_mask = 0xffffffff;
976 xd->fullpixel_mask = 0xfffffff8;
984 MACROBLOCKD *const xd = &pbi->mb;
997 xd->corrupted = 0;
1075 vpx_memcpy(&xd->pre, yv12_fb_new, sizeof(YV12_BUFFER_CONFIG));
1076 vpx_memcpy(&xd->dst, yv12_fb_new, sizeof(YV12_BUFFER_CONFIG));
1096 xd->segmentation_enabled = (unsigned char)vp8_read_bit(bc);
1098 if (xd->segmentation_enabled)
1101 xd->update_mb_segmentation_map = (unsigned char)vp8_read_bit(bc);
1102 xd->update_mb_segmentation_data = (unsigned char)vp8_read_bit(bc);
1104 if (xd->update_mb_segmentation_data)
1106 xd->mb_segement_abs_delta = (unsigned char)vp8_read_bit(bc);
1108 vpx_memset(xd->segment_feature_data, 0, sizeof(xd->segment_feature_data));
1118 xd->segment_feature_data[i][j] = (signed char)vp8_read_literal(bc, mb_feature_data_bits[i]);
1121 xd->segment_feature_data[i][j] = -xd->segment_feature_data[i][j];
1124 xd->segment_feature_data[i][j] = 0;
1129 if (xd->update_mb_segmentation_map)
1132 vpx_memset(xd->mb_segment_tree_probs, 255, sizeof(xd->mb_segment_tree_probs));
1139 xd->mb_segment_tree_probs[i] = (vp8_prob)vp8_read_literal(bc, 8);
1146 xd->update_mb_segmentation_map = 0;
1147 xd->update_mb_segmentation_data = 0;
1156 xd->mode_ref_lf_delta_update = 0;
1157 xd->mode_ref_lf_delta_enabled = (unsigned char)vp8_read_bit(bc);
1159 if (xd->mode_ref_lf_delta_enabled)
1162 xd->mode_ref_lf_delta_update = (unsigned char)vp8_read_bit(bc);
1164 if (xd->mode_ref_lf_delta_update)
1172 xd->ref_lf_deltas[i] = (signed char)vp8_read_literal(bc, 6);
1175 xd->ref_lf_deltas[i] = xd->ref_lf_deltas[i] * -1;
1185 xd->mode_lf_deltas[i] = (signed char)vp8_read_literal(bc, 6);
1188 xd->mode_lf_deltas[i] = xd->mode_lf_deltas[i] * -1;
1196 xd->current_bc = &pbi->mbc[0];
1228 xd->corrupted |= vp8dx_bool_error(bc);
1229 if (pbi->ec_active && xd->corrupted)
1236 xd->corrupted |= vp8dx_bool_error(bc);
1237 if (pbi->ec_active && xd->corrupted)
1249 xd->corrupted |= vp8dx_bool_error(bc);
1250 if (pbi->ec_active && xd->corrupted)
1261 xd->corrupted |= vp8dx_bool_error(bc);
1262 if (pbi->ec_active && xd->corrupted)
1275 xd->corrupted |= vp8dx_bool_error(bc);
1276 if (pbi->ec_active && xd->corrupted)
1288 xd->corrupted |= vp8dx_bool_error(bc);
1289 if (pbi->ec_active && xd->corrupted)
1330 vpx_memset(xd->qcoeff, 0, sizeof(xd->qcoeff));
1351 vp8mt_decode_mb_rows(pbi, xd);
1360 corrupt_tokens |= xd->corrupted;