OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2014 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2014 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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 struct macroblockd_plane planes[MAX_MB_PLANE], | 158 struct macroblockd_plane planes[MAX_MB_PLANE], |
159 int start, int stop, int y_only, | 159 int start, int stop, int y_only, |
160 VPxWorker *workers, int nworkers, | 160 VPxWorker *workers, int nworkers, |
161 VP9LfSync *lf_sync) { | 161 VP9LfSync *lf_sync) { |
162 const VPxWorkerInterface *const winterface = vpx_get_worker_interface(); | 162 const VPxWorkerInterface *const winterface = vpx_get_worker_interface(); |
163 // Number of superblock rows and cols | 163 // Number of superblock rows and cols |
164 const int sb_rows = mi_cols_aligned_to_sb(cm->mi_rows) >> MI_BLOCK_SIZE_LOG2; | 164 const int sb_rows = mi_cols_aligned_to_sb(cm->mi_rows) >> MI_BLOCK_SIZE_LOG2; |
165 // Decoder may allocate more threads than number of tiles based on user's | 165 // Decoder may allocate more threads than number of tiles based on user's |
166 // input. | 166 // input. |
167 const int tile_cols = 1 << cm->log2_tile_cols; | 167 const int tile_cols = 1 << cm->log2_tile_cols; |
168 const int num_workers = MIN(nworkers, tile_cols); | 168 const int num_workers = VPXMIN(nworkers, tile_cols); |
169 int i; | 169 int i; |
170 | 170 |
171 if (!lf_sync->sync_range || sb_rows != lf_sync->rows || | 171 if (!lf_sync->sync_range || sb_rows != lf_sync->rows || |
172 num_workers > lf_sync->num_workers) { | 172 num_workers > lf_sync->num_workers) { |
173 vp9_loop_filter_dealloc(lf_sync); | 173 vp9_loop_filter_dealloc(lf_sync); |
174 vp9_loop_filter_alloc(lf_sync, cm, sb_rows, cm->width, num_workers); | 174 vp9_loop_filter_alloc(lf_sync, cm, sb_rows, cm->width, num_workers); |
175 } | 175 } |
176 | 176 |
177 // Initialize cur_sb_col to -1 for all SB rows. | 177 // Initialize cur_sb_col to -1 for all SB rows. |
178 memset(lf_sync->cur_sb_col, -1, sizeof(*lf_sync->cur_sb_col) * sb_rows); | 178 memset(lf_sync->cur_sb_col, -1, sizeof(*lf_sync->cur_sb_col) * sb_rows); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 VP9LfSync *lf_sync) { | 222 VP9LfSync *lf_sync) { |
223 int start_mi_row, end_mi_row, mi_rows_to_filter; | 223 int start_mi_row, end_mi_row, mi_rows_to_filter; |
224 | 224 |
225 if (!frame_filter_level) return; | 225 if (!frame_filter_level) return; |
226 | 226 |
227 start_mi_row = 0; | 227 start_mi_row = 0; |
228 mi_rows_to_filter = cm->mi_rows; | 228 mi_rows_to_filter = cm->mi_rows; |
229 if (partial_frame && cm->mi_rows > 8) { | 229 if (partial_frame && cm->mi_rows > 8) { |
230 start_mi_row = cm->mi_rows >> 1; | 230 start_mi_row = cm->mi_rows >> 1; |
231 start_mi_row &= 0xfffffff8; | 231 start_mi_row &= 0xfffffff8; |
232 mi_rows_to_filter = MAX(cm->mi_rows / 8, 8); | 232 mi_rows_to_filter = VPXMAX(cm->mi_rows / 8, 8); |
233 } | 233 } |
234 end_mi_row = start_mi_row + mi_rows_to_filter; | 234 end_mi_row = start_mi_row + mi_rows_to_filter; |
235 vp9_loop_filter_frame_init(cm, frame_filter_level); | 235 vp9_loop_filter_frame_init(cm, frame_filter_level); |
236 | 236 |
237 loop_filter_rows_mt(frame, cm, planes, start_mi_row, end_mi_row, | 237 loop_filter_rows_mt(frame, cm, planes, start_mi_row, end_mi_row, |
238 y_only, workers, num_workers, lf_sync); | 238 y_only, workers, num_workers, lf_sync); |
239 } | 239 } |
240 | 240 |
241 // Set up nsync by width. | 241 // Set up nsync by width. |
242 static INLINE int get_sync_range(int width) { | 242 static INLINE int get_sync_range(int width) { |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 } | 427 } |
428 | 428 |
429 for (i = 0; i < MV_OFFSET_BITS; i++) | 429 for (i = 0; i < MV_OFFSET_BITS; i++) |
430 for (j = 0; j < 2; j++) | 430 for (j = 0; j < 2; j++) |
431 comps->bits[i][j] += comps_t->bits[i][j]; | 431 comps->bits[i][j] += comps_t->bits[i][j]; |
432 | 432 |
433 for (i = 0; i < MV_FP_SIZE; i++) | 433 for (i = 0; i < MV_FP_SIZE; i++) |
434 comps->fp[i] += comps_t->fp[i]; | 434 comps->fp[i] += comps_t->fp[i]; |
435 } | 435 } |
436 } | 436 } |
OLD | NEW |