Home | History | Annotate | Download | only in decoder

Lines Matching refs: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->left_available = 0;
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;
905 MACROBLOCKD *const xd = & pbi->mb;
917 vpx_memset(xd->segment_feature_data, 0, sizeof(xd->segment_feature_data));
918 xd->mb_segement_abs_delta = SEGMENT_DELTADATA;
921 vpx_memset(xd->ref_lf_deltas, 0, sizeof(xd->ref_lf_deltas));
922 vpx_memset(xd->mode_lf_deltas, 0, sizeof(xd->mode_lf_deltas));
941 xd->subpixel_predict = vp8_sixtap_predict4x4;
942 xd->subpixel_predict8x4 = vp8_sixtap_predict8x4;
943 xd->subpixel_predict8x8 = vp8_sixtap_predict8x8;
944 xd->subpixel_predict16x16 = vp8_sixtap_predict16x16;
948 xd->subpixel_predict = vp8_bilinear_predict4x4;
949 xd->subpixel_predict8x4 = vp8_bilinear_predict8x4;
950 xd->subpixel_predict8x8 = vp8_bilinear_predict8x8;
951 xd->subpixel_predict16x16 = vp8_bilinear_predict16x16;
958 xd->left_context = &pc->left_context;
959 xd->mode_info_context = pc->mi;
960 xd->frame_type = pc->frame_type;
961 xd->mode_info_context->mbmi.mode = DC_PRED;
962 xd->mode_info_stride = pc->mode_info_stride;
963 xd->corrupted = 0; /* init without corruption */
965 xd->fullpixel_mask = 0xffffffff;
967 xd->fullpixel_mask = 0xfffffff8;
975 MACROBLOCKD *const xd = &pbi->mb;
988 xd->corrupted = 0;
1066 vpx_memcpy(&xd->pre, yv12_fb_new, sizeof(YV12_BUFFER_CONFIG));
1067 vpx_memcpy(&xd->dst, yv12_fb_new, sizeof(YV12_BUFFER_CONFIG));
1087 xd->segmentation_enabled = (unsigned char)vp8_read_bit(bc);
1089 if (xd->segmentation_enabled)
1092 xd->update_mb_segmentation_map = (unsigned char)vp8_read_bit(bc);
1093 xd->update_mb_segmentation_data = (unsigned char)vp8_read_bit(bc);
1095 if (xd->update_mb_segmentation_data)
1097 xd->mb_segement_abs_delta = (unsigned char)vp8_read_bit(bc);
1099 vpx_memset(xd->segment_feature_data, 0, sizeof(xd->segment_feature_data));
1109 xd->segment_feature_data[i][j] = (signed char)vp8_read_literal(bc, mb_feature_data_bits[i]);
1112 xd->segment_feature_data[i][j] = -xd->segment_feature_data[i][j];
1115 xd->segment_feature_data[i][j] = 0;
1120 if (xd->update_mb_segmentation_map)
1123 vpx_memset(xd->mb_segment_tree_probs, 255, sizeof(xd->mb_segment_tree_probs));
1130 xd->mb_segment_tree_probs[i] = (vp8_prob)vp8_read_literal(bc, 8);
1137 xd->update_mb_segmentation_map = 0;
1138 xd->update_mb_segmentation_data = 0;
1147 xd->mode_ref_lf_delta_update = 0;
1148 xd->mode_ref_lf_delta_enabled = (unsigned char)vp8_read_bit(bc);
1150 if (xd->mode_ref_lf_delta_enabled)
1153 xd->mode_ref_lf_delta_update = (unsigned char)vp8_read_bit(bc);
1155 if (xd->mode_ref_lf_delta_update)
1163 xd->ref_lf_deltas[i] = (signed char)vp8_read_literal(bc, 6);
1166 xd->ref_lf_deltas[i] = xd->ref_lf_deltas[i] * -1;
1176 xd->mode_lf_deltas[i] = (signed char)vp8_read_literal(bc, 6);
1179 xd->mode_lf_deltas[i] = xd->mode_lf_deltas[i] * -1;
1187 xd->current_bc = &pbi->mbc[0];
1219 xd->corrupted |= vp8dx_bool_error(bc);
1220 if (pbi->ec_active && xd->corrupted)
1227 xd->corrupted |= vp8dx_bool_error(bc);
1228 if (pbi->ec_active && xd->corrupted)
1240 xd->corrupted |= vp8dx_bool_error(bc);
1241 if (pbi->ec_active && xd->corrupted)
1252 xd->corrupted |= vp8dx_bool_error(bc);
1253 if (pbi->ec_active && xd->corrupted)
1266 xd->corrupted |= vp8dx_bool_error(bc);
1267 if (pbi->ec_active && xd->corrupted)
1279 xd->corrupted |= vp8dx_bool_error(bc);
1280 if (pbi->ec_active && xd->corrupted)
1321 vpx_memset(xd->qcoeff, 0, sizeof(xd->qcoeff));
1342 vp8mt_decode_mb_rows(pbi, xd);
1351 corrupt_tokens |= xd->corrupted;