1474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org/* 2474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 3474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * 4474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * Use of this source code is governed by a BSD-style license 5474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * that can be found in the LICENSE file in the root of the source 6474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * tree. An additional intellectual property rights grant can be found 7474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * in the file PATENTS. All contributing project authors may 8474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * be found in the AUTHORS file in the root of the source tree. 9474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org */ 10474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 11474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 12167514562bbce1eb0566271d6cb41d90d2b5ffa0hclam@chromium.org#include "vpx_config.h" 136fefe538d859300e7febe78271828198c10f1b52fgalligan@chromium.org#include "vp8_rtcd.h" 14474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#include "vpx_mem/vpx_mem.h" 155c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org#include "blockd.h" 165c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org 175c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.orgvoid vp8_build_intra_predictors_mby_s_c(MACROBLOCKD *x, 185c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org unsigned char * yabove_row, 195c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org unsigned char * yleft, 205c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org int left_stride, 215c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org unsigned char * ypred_ptr, 225c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org int y_stride) 23474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org{ 24474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org unsigned char yleft_col[16]; 25474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org unsigned char ytop_left = yabove_row[-1]; 26474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int r, c, i; 27474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 28474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (i = 0; i < 16; i++) 29474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 305c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org yleft_col[i] = yleft[i* left_stride]; 31474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 32474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 33474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org /* for Y */ 34474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org switch (x->mode_info_context->mbmi.mode) 35474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 36474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case DC_PRED: 37474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 38474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int expected_dc; 39474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int shift; 40474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int average = 0; 41474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 42474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 43474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if (x->up_available || x->left_available) 44474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 45474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if (x->up_available) 46474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 47474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (i = 0; i < 16; i++) 48474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 49474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org average += yabove_row[i]; 50474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 51474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 52474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 53474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if (x->left_available) 54474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 55474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 56474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (i = 0; i < 16; i++) 57474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 58474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org average += yleft_col[i]; 59474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 60474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 61474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 62474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 63474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 64474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 65474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org shift = 3 + x->up_available + x->left_available; 66474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org expected_dc = (average + (1 << (shift - 1))) >> shift; 67474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 68474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org else 69474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 70474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org expected_dc = 128; 71474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 72474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 73474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org /*vpx_memset(ypred_ptr, expected_dc, 256);*/ 74474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (r = 0; r < 16; r++) 75474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 76474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org vpx_memset(ypred_ptr, expected_dc, 16); 775c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org ypred_ptr += y_stride; 78474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 79474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 80474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org break; 81474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case V_PRED: 82474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 83474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 84474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (r = 0; r < 16; r++) 85474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 86474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 87474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org ((int *)ypred_ptr)[0] = ((int *)yabove_row)[0]; 88474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org ((int *)ypred_ptr)[1] = ((int *)yabove_row)[1]; 89474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org ((int *)ypred_ptr)[2] = ((int *)yabove_row)[2]; 90474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org ((int *)ypred_ptr)[3] = ((int *)yabove_row)[3]; 915c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org ypred_ptr += y_stride; 92474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 93474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 94474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org break; 95474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case H_PRED: 96474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 97474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 98474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (r = 0; r < 16; r++) 99474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 100474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 101474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org vpx_memset(ypred_ptr, yleft_col[r], 16); 1025c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org ypred_ptr += y_stride; 103474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 104474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 105474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 106474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org break; 107474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case TM_PRED: 108474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 109474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 110474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (r = 0; r < 16; r++) 111474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 112474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (c = 0; c < 16; c++) 113474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 114474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int pred = yleft_col[r] + yabove_row[ c] - ytop_left; 115474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 116474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if (pred < 0) 117474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org pred = 0; 118474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 119474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if (pred > 255) 120474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org pred = 255; 121474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 122474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org ypred_ptr[c] = pred; 123474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 124474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 1255c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org ypred_ptr += y_stride; 126474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 127474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 128474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 129474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org break; 130474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case B_PRED: 131474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case NEARESTMV: 132474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case NEARMV: 133474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case ZEROMV: 134474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case NEWMV: 135474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case SPLITMV: 136474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case MB_MODE_COUNT: 137474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org break; 138474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 139474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org} 140474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 1415c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.orgvoid vp8_build_intra_predictors_mbuv_s_c(MACROBLOCKD *x, 1425c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org unsigned char * uabove_row, 1435c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org unsigned char * vabove_row, 1445c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org unsigned char * uleft, 1455c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org unsigned char * vleft, 1465c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org int left_stride, 1475c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org unsigned char * upred_ptr, 1485c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org unsigned char * vpred_ptr, 1495c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org int pred_stride) 150474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org{ 1515c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org unsigned char uleft_col[8]; 152474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org unsigned char utop_left = uabove_row[-1]; 1535c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org unsigned char vleft_col[8]; 154474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org unsigned char vtop_left = vabove_row[-1]; 155474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 156474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int i, j; 157474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 158474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (i = 0; i < 8; i++) 159474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 1605c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org uleft_col[i] = uleft [i* left_stride]; 1615c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org vleft_col[i] = vleft [i* left_stride]; 162474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 163474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 164474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org switch (x->mode_info_context->mbmi.uv_mode) 165474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 166474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case DC_PRED: 167474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 168474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int expected_udc; 169474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int expected_vdc; 170474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int shift; 171474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int Uaverage = 0; 172474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int Vaverage = 0; 173474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 174474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if (x->up_available) 175474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 176474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (i = 0; i < 8; i++) 177474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 178474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org Uaverage += uabove_row[i]; 179474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org Vaverage += vabove_row[i]; 180474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 181474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 182474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 183474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if (x->left_available) 184474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 185474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (i = 0; i < 8; i++) 186474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 187474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org Uaverage += uleft_col[i]; 188474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org Vaverage += vleft_col[i]; 189474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 190474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 191474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 192474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if (!x->up_available && !x->left_available) 193474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 194474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org expected_udc = 128; 195474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org expected_vdc = 128; 196474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 197474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org else 198474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 199474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org shift = 2 + x->up_available + x->left_available; 200474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org expected_udc = (Uaverage + (1 << (shift - 1))) >> shift; 201474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org expected_vdc = (Vaverage + (1 << (shift - 1))) >> shift; 202474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 203474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 204474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 205474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org /*vpx_memset(upred_ptr,expected_udc,64);*/ 206474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org /*vpx_memset(vpred_ptr,expected_vdc,64);*/ 207474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (i = 0; i < 8; i++) 208474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 209474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org vpx_memset(upred_ptr, expected_udc, 8); 210474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org vpx_memset(vpred_ptr, expected_vdc, 8); 2115c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org upred_ptr += pred_stride; 2125c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org vpred_ptr += pred_stride; 213474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 214474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 215474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org break; 216474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case V_PRED: 217474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 218474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (i = 0; i < 8; i++) 219474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 220474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org vpx_memcpy(upred_ptr, uabove_row, 8); 221474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org vpx_memcpy(vpred_ptr, vabove_row, 8); 2225c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org upred_ptr += pred_stride; 2235c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org vpred_ptr += pred_stride; 224474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 225474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 226474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 227474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org break; 228474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case H_PRED: 229474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 230474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (i = 0; i < 8; i++) 231474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 232474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org vpx_memset(upred_ptr, uleft_col[i], 8); 233474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org vpx_memset(vpred_ptr, vleft_col[i], 8); 2345c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org upred_ptr += pred_stride; 2355c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org vpred_ptr += pred_stride; 236474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 237474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 238474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 239474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org break; 240474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case TM_PRED: 241474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 242474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (i = 0; i < 8; i++) 243474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 244474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org for (j = 0; j < 8; j++) 245474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org { 246474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int predu = uleft_col[i] + uabove_row[j] - utop_left; 247474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org int predv = vleft_col[i] + vabove_row[j] - vtop_left; 248474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 249474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if (predu < 0) 250474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org predu = 0; 251474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 252474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if (predu > 255) 253474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org predu = 255; 254474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 255474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if (predv < 0) 256474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org predv = 0; 257474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 258474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org if (predv > 255) 259474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org predv = 255; 260474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 261474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org upred_ptr[j] = predu; 262474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org vpred_ptr[j] = predv; 263474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 264474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 2655c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org upred_ptr += pred_stride; 2665c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org vpred_ptr += pred_stride; 267474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 268474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 269474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 270474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org break; 271474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case B_PRED: 272474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case NEARESTMV: 273474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case NEARMV: 274474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case ZEROMV: 275474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case NEWMV: 276474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case SPLITMV: 277474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org case MB_MODE_COUNT: 278474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org break; 279474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org } 280474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org} 281