Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(464)

Side by Side Diff: source/libvpx/vp9/common/vp9_reconinter.c

Issue 1124333011: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: only update to last nights LKGR Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/libvpx/vp9/common/vp9_pred_common.c ('k') | source/libvpx/vp9/common/vp9_reconintra.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 assert(ss_idx <= 3 && ss_idx >= 0); 165 assert(ss_idx <= 3 && ss_idx >= 0);
166 } 166 }
167 return res; 167 return res;
168 } 168 }
169 169
170 void build_inter_predictors(MACROBLOCKD *xd, int plane, int block, 170 void build_inter_predictors(MACROBLOCKD *xd, int plane, int block,
171 int bw, int bh, 171 int bw, int bh,
172 int x, int y, int w, int h, 172 int x, int y, int w, int h,
173 int mi_x, int mi_y) { 173 int mi_x, int mi_y) {
174 struct macroblockd_plane *const pd = &xd->plane[plane]; 174 struct macroblockd_plane *const pd = &xd->plane[plane];
175 const MODE_INFO *mi = xd->mi[0].src_mi; 175 const MODE_INFO *mi = xd->mi[0];
176 const int is_compound = has_second_ref(&mi->mbmi); 176 const int is_compound = has_second_ref(&mi->mbmi);
177 const InterpKernel *kernel = vp9_get_interp_kernel(mi->mbmi.interp_filter); 177 const InterpKernel *kernel = vp9_get_interp_kernel(mi->mbmi.interp_filter);
178 int ref; 178 int ref;
179 179
180 for (ref = 0; ref < 1 + is_compound; ++ref) { 180 for (ref = 0; ref < 1 + is_compound; ++ref) {
181 const struct scale_factors *const sf = &xd->block_refs[ref]->sf; 181 const struct scale_factors *const sf = &xd->block_refs[ref]->sf;
182 struct buf_2d *const pre_buf = &pd->pre[ref]; 182 struct buf_2d *const pre_buf = &pd->pre[ref];
183 struct buf_2d *const dst_buf = &pd->dst; 183 struct buf_2d *const dst_buf = &pd->dst;
184 uint8_t *const dst = dst_buf->buf + dst_buf->stride * y + x; 184 uint8_t *const dst = dst_buf->buf + dst_buf->stride * y + x;
185 const MV mv = mi->mbmi.sb_type < BLOCK_8X8 185 const MV mv = mi->mbmi.sb_type < BLOCK_8X8
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 const int mi_x = mi_col * MI_SIZE; 239 const int mi_x = mi_col * MI_SIZE;
240 const int mi_y = mi_row * MI_SIZE; 240 const int mi_y = mi_row * MI_SIZE;
241 for (plane = plane_from; plane <= plane_to; ++plane) { 241 for (plane = plane_from; plane <= plane_to; ++plane) {
242 const BLOCK_SIZE plane_bsize = get_plane_block_size(bsize, 242 const BLOCK_SIZE plane_bsize = get_plane_block_size(bsize,
243 &xd->plane[plane]); 243 &xd->plane[plane]);
244 const int num_4x4_w = num_4x4_blocks_wide_lookup[plane_bsize]; 244 const int num_4x4_w = num_4x4_blocks_wide_lookup[plane_bsize];
245 const int num_4x4_h = num_4x4_blocks_high_lookup[plane_bsize]; 245 const int num_4x4_h = num_4x4_blocks_high_lookup[plane_bsize];
246 const int bw = 4 * num_4x4_w; 246 const int bw = 4 * num_4x4_w;
247 const int bh = 4 * num_4x4_h; 247 const int bh = 4 * num_4x4_h;
248 248
249 if (xd->mi[0].src_mi->mbmi.sb_type < BLOCK_8X8) { 249 if (xd->mi[0]->mbmi.sb_type < BLOCK_8X8) {
250 int i = 0, x, y; 250 int i = 0, x, y;
251 assert(bsize == BLOCK_8X8); 251 assert(bsize == BLOCK_8X8);
252 for (y = 0; y < num_4x4_h; ++y) 252 for (y = 0; y < num_4x4_h; ++y)
253 for (x = 0; x < num_4x4_w; ++x) 253 for (x = 0; x < num_4x4_w; ++x)
254 build_inter_predictors(xd, plane, i++, bw, bh, 254 build_inter_predictors(xd, plane, i++, bw, bh,
255 4 * x, 4 * y, 4, 4, mi_x, mi_y); 255 4 * x, 4 * y, 4, 4, mi_x, mi_y);
256 } else { 256 } else {
257 build_inter_predictors(xd, plane, 0, bw, bh, 257 build_inter_predictors(xd, plane, 0, bw, bh,
258 0, 0, bw, bh, mi_x, mi_y); 258 0, 0, bw, bh, mi_x, mi_y);
259 } 259 }
(...skipping 18 matching lines...) Expand all
278 278
279 void vp9_build_inter_predictors_sb(MACROBLOCKD *xd, int mi_row, int mi_col, 279 void vp9_build_inter_predictors_sb(MACROBLOCKD *xd, int mi_row, int mi_col,
280 BLOCK_SIZE bsize) { 280 BLOCK_SIZE bsize) {
281 build_inter_predictors_for_planes(xd, bsize, mi_row, mi_col, 0, 281 build_inter_predictors_for_planes(xd, bsize, mi_row, mi_col, 0,
282 MAX_MB_PLANE - 1); 282 MAX_MB_PLANE - 1);
283 } 283 }
284 284
285 void vp9_setup_dst_planes(struct macroblockd_plane planes[MAX_MB_PLANE], 285 void vp9_setup_dst_planes(struct macroblockd_plane planes[MAX_MB_PLANE],
286 const YV12_BUFFER_CONFIG *src, 286 const YV12_BUFFER_CONFIG *src,
287 int mi_row, int mi_col) { 287 int mi_row, int mi_col) {
288 uint8_t *const buffers[4] = {src->y_buffer, src->u_buffer, src->v_buffer, 288 uint8_t *const buffers[MAX_MB_PLANE] = { src->y_buffer, src->u_buffer,
289 src->alpha_buffer}; 289 src->v_buffer};
290 const int strides[4] = {src->y_stride, src->uv_stride, src->uv_stride, 290 const int strides[MAX_MB_PLANE] = { src->y_stride, src->uv_stride,
291 src->alpha_stride}; 291 src->uv_stride};
292 int i; 292 int i;
293 293
294 for (i = 0; i < MAX_MB_PLANE; ++i) { 294 for (i = 0; i < MAX_MB_PLANE; ++i) {
295 struct macroblockd_plane *const pd = &planes[i]; 295 struct macroblockd_plane *const pd = &planes[i];
296 setup_pred_plane(&pd->dst, buffers[i], strides[i], mi_row, mi_col, NULL, 296 setup_pred_plane(&pd->dst, buffers[i], strides[i], mi_row, mi_col, NULL,
297 pd->subsampling_x, pd->subsampling_y); 297 pd->subsampling_x, pd->subsampling_y);
298 } 298 }
299 } 299 }
300 300
301 void vp9_setup_pre_planes(MACROBLOCKD *xd, int idx, 301 void vp9_setup_pre_planes(MACROBLOCKD *xd, int idx,
302 const YV12_BUFFER_CONFIG *src, 302 const YV12_BUFFER_CONFIG *src,
303 int mi_row, int mi_col, 303 int mi_row, int mi_col,
304 const struct scale_factors *sf) { 304 const struct scale_factors *sf) {
305 if (src != NULL) { 305 if (src != NULL) {
306 int i; 306 int i;
307 uint8_t *const buffers[4] = {src->y_buffer, src->u_buffer, src->v_buffer, 307 uint8_t *const buffers[MAX_MB_PLANE] = { src->y_buffer, src->u_buffer,
308 src->alpha_buffer}; 308 src->v_buffer};
309 const int strides[4] = {src->y_stride, src->uv_stride, src->uv_stride, 309 const int strides[MAX_MB_PLANE] = { src->y_stride, src->uv_stride,
310 src->alpha_stride}; 310 src->uv_stride};
311
312 for (i = 0; i < MAX_MB_PLANE; ++i) { 311 for (i = 0; i < MAX_MB_PLANE; ++i) {
313 struct macroblockd_plane *const pd = &xd->plane[i]; 312 struct macroblockd_plane *const pd = &xd->plane[i];
314 setup_pred_plane(&pd->pre[idx], buffers[i], strides[i], mi_row, mi_col, 313 setup_pred_plane(&pd->pre[idx], buffers[i], strides[i], mi_row, mi_col,
315 sf, pd->subsampling_x, pd->subsampling_y); 314 sf, pd->subsampling_x, pd->subsampling_y);
316 } 315 }
317 } 316 }
318 } 317 }
OLDNEW
« no previous file with comments | « source/libvpx/vp9/common/vp9_pred_common.c ('k') | source/libvpx/vp9/common/vp9_reconintra.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698