| OLD | NEW |
| 1 /* | 1 /* |
| 2 Copyright (c) 2010 The WebM project authors. All Rights Reserved. | 2 Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 const int xmis = MIN(cm->mi_cols - mi_col, bw); | 115 const int xmis = MIN(cm->mi_cols - mi_col, bw); |
| 116 const int ymis = MIN(cm->mi_rows - mi_row, bh); | 116 const int ymis = MIN(cm->mi_rows - mi_row, bh); |
| 117 int x, y; | 117 int x, y; |
| 118 | 118 |
| 119 for (y = 0; y < ymis; y++) | 119 for (y = 0; y < ymis; y++) |
| 120 for (x = 0; x < xmis; x++) | 120 for (x = 0; x < xmis; x++) |
| 121 current_segment_ids[mi_offset + y * cm->mi_cols + x] = last_segment_ids ? | 121 current_segment_ids[mi_offset + y * cm->mi_cols + x] = last_segment_ids ? |
| 122 last_segment_ids[mi_offset + y * cm->mi_cols + x] : 0; | 122 last_segment_ids[mi_offset + y * cm->mi_cols + x] : 0; |
| 123 } | 123 } |
| 124 | 124 |
| 125 static int read_intra_segment_id(VP9_COMMON *const cm, MACROBLOCKD *const xd, | 125 static int read_intra_segment_id(VP9_COMMON *const cm, BLOCK_SIZE bsize, |
| 126 int mi_row, int mi_col, | 126 int mi_row, int mi_col, |
| 127 vp9_reader *r) { | 127 vp9_reader *r) { |
| 128 struct segmentation *const seg = &cm->seg; | 128 struct segmentation *const seg = &cm->seg; |
| 129 const BLOCK_SIZE bsize = xd->mi[0].src_mi->mbmi.sb_type; | |
| 130 int segment_id; | 129 int segment_id; |
| 131 | 130 |
| 132 if (!seg->enabled) | 131 if (!seg->enabled) |
| 133 return 0; // Default for disabled segmentation | 132 return 0; // Default for disabled segmentation |
| 134 | 133 |
| 135 if (!seg->update_map) { | 134 if (!seg->update_map) { |
| 136 copy_segment_id(cm, cm->last_frame_seg_map, cm->current_frame_seg_map, | 135 copy_segment_id(cm, cm->last_frame_seg_map, cm->current_frame_seg_map, |
| 137 bsize, mi_row, mi_col); | 136 bsize, mi_row, mi_col); |
| 138 return 0; | 137 return 0; |
| 139 } | 138 } |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 MACROBLOCKD *const xd, | 191 MACROBLOCKD *const xd, |
| 193 FRAME_COUNTS *counts, | 192 FRAME_COUNTS *counts, |
| 194 int mi_row, int mi_col, vp9_reader *r) { | 193 int mi_row, int mi_col, vp9_reader *r) { |
| 195 MODE_INFO *const mi = xd->mi[0].src_mi; | 194 MODE_INFO *const mi = xd->mi[0].src_mi; |
| 196 MB_MODE_INFO *const mbmi = &mi->mbmi; | 195 MB_MODE_INFO *const mbmi = &mi->mbmi; |
| 197 const MODE_INFO *above_mi = xd->mi[-cm->mi_stride].src_mi; | 196 const MODE_INFO *above_mi = xd->mi[-cm->mi_stride].src_mi; |
| 198 const MODE_INFO *left_mi = xd->left_available ? xd->mi[-1].src_mi : NULL; | 197 const MODE_INFO *left_mi = xd->left_available ? xd->mi[-1].src_mi : NULL; |
| 199 const BLOCK_SIZE bsize = mbmi->sb_type; | 198 const BLOCK_SIZE bsize = mbmi->sb_type; |
| 200 int i; | 199 int i; |
| 201 | 200 |
| 202 mbmi->segment_id = read_intra_segment_id(cm, xd, mi_row, mi_col, r); | 201 mbmi->segment_id = read_intra_segment_id(cm, bsize, mi_row, mi_col, r); |
| 203 mbmi->skip = read_skip(cm, xd, counts, mbmi->segment_id, r); | 202 mbmi->skip = read_skip(cm, xd, counts, mbmi->segment_id, r); |
| 204 mbmi->tx_size = read_tx_size(cm, xd, counts, 1, r); | 203 mbmi->tx_size = read_tx_size(cm, xd, counts, 1, r); |
| 205 mbmi->ref_frame[0] = INTRA_FRAME; | 204 mbmi->ref_frame[0] = INTRA_FRAME; |
| 206 mbmi->ref_frame[1] = NONE; | 205 mbmi->ref_frame[1] = NONE; |
| 207 | 206 |
| 208 switch (bsize) { | 207 switch (bsize) { |
| 209 case BLOCK_4X4: | 208 case BLOCK_4X4: |
| 210 for (i = 0; i < 4; ++i) | 209 for (i = 0; i < 4; ++i) |
| 211 mi->bmi[i].as_mode = | 210 mi->bmi[i].as_mode = |
| 212 read_intra_mode(r, get_y_mode_probs(mi, above_mi, left_mi, i)); | 211 read_intra_mode(r, get_y_mode_probs(mi, above_mi, left_mi, i)); |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 606 MV_REF *const frame_mv = frame_mvs + h * cm->mi_cols; | 605 MV_REF *const frame_mv = frame_mvs + h * cm->mi_cols; |
| 607 for (w = 0; w < x_mis; ++w) { | 606 for (w = 0; w < x_mis; ++w) { |
| 608 MV_REF *const mv = frame_mv + w; | 607 MV_REF *const mv = frame_mv + w; |
| 609 mv->ref_frame[0] = mi->src_mi->mbmi.ref_frame[0]; | 608 mv->ref_frame[0] = mi->src_mi->mbmi.ref_frame[0]; |
| 610 mv->ref_frame[1] = mi->src_mi->mbmi.ref_frame[1]; | 609 mv->ref_frame[1] = mi->src_mi->mbmi.ref_frame[1]; |
| 611 mv->mv[0].as_int = mi->src_mi->mbmi.mv[0].as_int; | 610 mv->mv[0].as_int = mi->src_mi->mbmi.mv[0].as_int; |
| 612 mv->mv[1].as_int = mi->src_mi->mbmi.mv[1].as_int; | 611 mv->mv[1].as_int = mi->src_mi->mbmi.mv[1].as_int; |
| 613 } | 612 } |
| 614 } | 613 } |
| 615 } | 614 } |
| OLD | NEW |