| 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 |
| 11 #include "vp9_rtcd.h" | 11 #include "vp9_rtcd.h" |
| 12 #include "vp9/common/vp9_blockd.h" | 12 #include "vp9/common/vp9_blockd.h" |
| 13 #if CONFIG_LOSSLESS | 13 #if CONFIG_LOSSLESS |
| 14 #include "vp9/decoder/vp9_dequantize.h" | 14 #include "vp9/decoder/vp9_dequantize.h" |
| 15 #endif | 15 #endif |
| 16 | 16 |
| 17 void vp9_dequant_dc_idct_add_y_block_c(short *q, const short *dq, | 17 void vp9_dequant_dc_idct_add_y_block_c(int16_t *q, const int16_t *dq, |
| 18 unsigned char *pre, | 18 uint8_t *pre, |
| 19 unsigned char *dst, | 19 uint8_t *dst, |
| 20 int stride, unsigned short *eobs, | 20 int stride, uint16_t *eobs, |
| 21 const short *dc) { | 21 const int16_t *dc) { |
| 22 int i, j; | 22 int i, j; |
| 23 | 23 |
| 24 for (i = 0; i < 4; i++) { | 24 for (i = 0; i < 4; i++) { |
| 25 for (j = 0; j < 4; j++) { | 25 for (j = 0; j < 4; j++) { |
| 26 if (*eobs++ > 1) | 26 if (*eobs++ > 1) |
| 27 vp9_dequant_dc_idct_add_c(q, dq, pre, dst, 16, stride, dc[0]); | 27 vp9_dequant_dc_idct_add_c(q, dq, pre, dst, 16, stride, dc[0]); |
| 28 else | 28 else |
| 29 vp9_dc_only_idct_add_c(dc[0], pre, dst, 16, stride); | 29 vp9_dc_only_idct_add_c(dc[0], pre, dst, 16, stride); |
| 30 | 30 |
| 31 q += 16; | 31 q += 16; |
| 32 pre += 4; | 32 pre += 4; |
| 33 dst += 4; | 33 dst += 4; |
| 34 dc++; | 34 dc++; |
| 35 } | 35 } |
| 36 | 36 |
| 37 pre += 64 - 16; | 37 pre += 64 - 16; |
| 38 dst += 4 * stride - 16; | 38 dst += 4 * stride - 16; |
| 39 } | 39 } |
| 40 } | 40 } |
| 41 | 41 |
| 42 #if CONFIG_SUPERBLOCKS | 42 void vp9_dequant_dc_idct_add_y_block_4x4_inplace_c(int16_t *q, |
| 43 void vp9_dequant_dc_idct_add_y_block_4x4_inplace_c(short *q, const short *dq, | 43 const int16_t *dq, |
| 44 unsigned char *dst, | 44 uint8_t *dst, |
| 45 int stride, | 45 int stride, |
| 46 unsigned short *eobs, | 46 uint16_t *eobs, |
| 47 const short *dc, | 47 const int16_t *dc, |
| 48 MACROBLOCKD *xd) { | 48 MACROBLOCKD *xd) { |
| 49 int i, j; | 49 int i, j; |
| 50 | 50 |
| 51 for (i = 0; i < 4; i++) { | 51 for (i = 0; i < 4; i++) { |
| 52 for (j = 0; j < 4; j++) { | 52 for (j = 0; j < 4; j++) { |
| 53 if (*eobs++ > 1) | 53 if (*eobs++ > 1) |
| 54 vp9_dequant_dc_idct_add_c(q, dq, dst, dst, stride, stride, dc[0]); | 54 vp9_dequant_dc_idct_add_c(q, dq, dst, dst, stride, stride, dc[0]); |
| 55 else | 55 else |
| 56 vp9_dc_only_idct_add_c(dc[0], dst, dst, stride, stride); | 56 vp9_dc_only_idct_add_c(dc[0], dst, dst, stride, stride); |
| 57 | 57 |
| 58 q += 16; | 58 q += 16; |
| 59 dst += 4; | 59 dst += 4; |
| 60 dc++; | 60 dc++; |
| 61 } | 61 } |
| 62 | 62 |
| 63 dst += 4 * stride - 16; | 63 dst += 4 * stride - 16; |
| 64 } | 64 } |
| 65 } | 65 } |
| 66 #endif | |
| 67 | 66 |
| 68 void vp9_dequant_idct_add_y_block_c(short *q, const short *dq, | 67 void vp9_dequant_idct_add_y_block_c(int16_t *q, const int16_t *dq, |
| 69 unsigned char *pre, | 68 uint8_t *pre, |
| 70 unsigned char *dst, | 69 uint8_t *dst, |
| 71 int stride, unsigned short *eobs) { | 70 int stride, uint16_t *eobs) { |
| 72 int i, j; | 71 int i, j; |
| 73 | 72 |
| 74 for (i = 0; i < 4; i++) { | 73 for (i = 0; i < 4; i++) { |
| 75 for (j = 0; j < 4; j++) { | 74 for (j = 0; j < 4; j++) { |
| 76 if (*eobs++ > 1) | 75 if (*eobs++ > 1) |
| 77 vp9_dequant_idct_add_c(q, dq, pre, dst, 16, stride); | 76 vp9_dequant_idct_add_c(q, dq, pre, dst, 16, stride); |
| 78 else { | 77 else { |
| 79 vp9_dc_only_idct_add_c(q[0]*dq[0], pre, dst, 16, stride); | 78 vp9_dc_only_idct_add_c(q[0]*dq[0], pre, dst, 16, stride); |
| 80 ((int *)q)[0] = 0; | 79 ((int *)q)[0] = 0; |
| 81 } | 80 } |
| 82 | 81 |
| 83 q += 16; | 82 q += 16; |
| 84 pre += 4; | 83 pre += 4; |
| 85 dst += 4; | 84 dst += 4; |
| 86 } | 85 } |
| 87 | 86 |
| 88 pre += 64 - 16; | 87 pre += 64 - 16; |
| 89 dst += 4 * stride - 16; | 88 dst += 4 * stride - 16; |
| 90 } | 89 } |
| 91 } | 90 } |
| 92 | 91 |
| 93 void vp9_dequant_idct_add_uv_block_c(short *q, const short *dq, | 92 void vp9_dequant_idct_add_uv_block_c(int16_t *q, const int16_t *dq, |
| 94 unsigned char *pre, unsigned char *dstu, | 93 uint8_t *pre, uint8_t *dstu, |
| 95 unsigned char *dstv, int stride, | 94 uint8_t *dstv, int stride, |
| 96 unsigned short *eobs) { | 95 uint16_t *eobs) { |
| 97 int i, j; | 96 int i, j; |
| 98 | 97 |
| 99 for (i = 0; i < 2; i++) { | 98 for (i = 0; i < 2; i++) { |
| 100 for (j = 0; j < 2; j++) { | 99 for (j = 0; j < 2; j++) { |
| 101 if (*eobs++ > 1) | 100 if (*eobs++ > 1) |
| 102 vp9_dequant_idct_add_c(q, dq, pre, dstu, 8, stride); | 101 vp9_dequant_idct_add_c(q, dq, pre, dstu, 8, stride); |
| 103 else { | 102 else { |
| 104 vp9_dc_only_idct_add_c(q[0]*dq[0], pre, dstu, 8, stride); | 103 vp9_dc_only_idct_add_c(q[0]*dq[0], pre, dstu, 8, stride); |
| 105 ((int *)q)[0] = 0; | 104 ((int *)q)[0] = 0; |
| 106 } | 105 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 126 q += 16; | 125 q += 16; |
| 127 pre += 4; | 126 pre += 4; |
| 128 dstv += 4; | 127 dstv += 4; |
| 129 } | 128 } |
| 130 | 129 |
| 131 pre += 32 - 8; | 130 pre += 32 - 8; |
| 132 dstv += 4 * stride - 8; | 131 dstv += 4 * stride - 8; |
| 133 } | 132 } |
| 134 } | 133 } |
| 135 | 134 |
| 136 #if CONFIG_SUPERBLOCKS | 135 void vp9_dequant_idct_add_uv_block_4x4_inplace_c(int16_t *q, const int16_t *dq, |
| 137 void vp9_dequant_idct_add_uv_block_4x4_inplace_c(short *q, const short *dq, | 136 uint8_t *dstu, |
| 138 unsigned char *dstu, | 137 uint8_t *dstv, |
| 139 unsigned char *dstv, | |
| 140 int stride, | 138 int stride, |
| 141 unsigned short *eobs, | 139 uint16_t *eobs, |
| 142 MACROBLOCKD *xd) { | 140 MACROBLOCKD *xd) { |
| 143 int i, j; | 141 int i, j; |
| 144 | 142 |
| 145 for (i = 0; i < 2; i++) { | 143 for (i = 0; i < 2; i++) { |
| 146 for (j = 0; j < 2; j++) { | 144 for (j = 0; j < 2; j++) { |
| 147 if (*eobs++ > 1) { | 145 if (*eobs++ > 1) { |
| 148 vp9_dequant_idct_add_c(q, dq, dstu, dstu, stride, stride); | 146 vp9_dequant_idct_add_c(q, dq, dstu, dstu, stride, stride); |
| 149 } else { | 147 } else { |
| 150 vp9_dc_only_idct_add_c(q[0]*dq[0], dstu, dstu, stride, stride); | 148 vp9_dc_only_idct_add_c(q[0]*dq[0], dstu, dstu, stride, stride); |
| 151 ((int *)q)[0] = 0; | 149 ((int *)q)[0] = 0; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 167 ((int *)q)[0] = 0; | 165 ((int *)q)[0] = 0; |
| 168 } | 166 } |
| 169 | 167 |
| 170 q += 16; | 168 q += 16; |
| 171 dstv += 4; | 169 dstv += 4; |
| 172 } | 170 } |
| 173 | 171 |
| 174 dstv += 4 * stride - 8; | 172 dstv += 4 * stride - 8; |
| 175 } | 173 } |
| 176 } | 174 } |
| 177 #endif | |
| 178 | 175 |
| 179 void vp9_dequant_dc_idct_add_y_block_8x8_c(short *q, const short *dq, | 176 void vp9_dequant_dc_idct_add_y_block_8x8_c(int16_t *q, const int16_t *dq, |
| 180 unsigned char *pre, | 177 uint8_t *pre, |
| 181 unsigned char *dst, | 178 uint8_t *dst, |
| 182 int stride, unsigned short *eobs, | 179 int stride, uint16_t *eobs, |
| 183 const short *dc, | 180 const int16_t *dc, |
| 184 MACROBLOCKD *xd) { | 181 MACROBLOCKD *xd) { |
| 185 q[0] = dc[0]; | 182 q[0] = dc[0]; |
| 186 vp9_dequant_idct_add_8x8_c(q, dq, pre, dst, 16, stride, 1, xd->eobs[0]); | 183 vp9_dequant_idct_add_8x8_c(q, dq, pre, dst, 16, stride, 1, xd->eobs[0]); |
| 187 | 184 |
| 188 q[64] = dc[1]; | 185 q[64] = dc[1]; |
| 189 vp9_dequant_idct_add_8x8_c(&q[64], dq, pre + 8, dst + 8, 16, stride, 1, | 186 vp9_dequant_idct_add_8x8_c(&q[64], dq, pre + 8, dst + 8, 16, stride, 1, |
| 190 xd->eobs[4]); | 187 xd->eobs[4]); |
| 191 | 188 |
| 192 q[128] = dc[4]; | 189 q[128] = dc[4]; |
| 193 vp9_dequant_idct_add_8x8_c(&q[128], dq, pre + 8 * 16, | 190 vp9_dequant_idct_add_8x8_c(&q[128], dq, pre + 8 * 16, |
| 194 dst + 8 * stride, 16, stride, 1, xd->eobs[8]); | 191 dst + 8 * stride, 16, stride, 1, xd->eobs[8]); |
| 195 | 192 |
| 196 q[192] = dc[8]; | 193 q[192] = dc[8]; |
| 197 vp9_dequant_idct_add_8x8_c(&q[192], dq, pre + 8 * 16 + 8, | 194 vp9_dequant_idct_add_8x8_c(&q[192], dq, pre + 8 * 16 + 8, |
| 198 dst + 8 * stride + 8, 16, stride, 1, | 195 dst + 8 * stride + 8, 16, stride, 1, |
| 199 xd->eobs[12]); | 196 xd->eobs[12]); |
| 200 } | 197 } |
| 201 | 198 |
| 202 #if CONFIG_SUPERBLOCKS | 199 void vp9_dequant_dc_idct_add_y_block_8x8_inplace_c(int16_t *q, |
| 203 void vp9_dequant_dc_idct_add_y_block_8x8_inplace_c(short *q, const short *dq, | 200 const int16_t *dq, |
| 204 unsigned char *dst, | 201 uint8_t *dst, |
| 205 int stride, | 202 int stride, |
| 206 unsigned short *eobs, | 203 uint16_t *eobs, |
| 207 const short *dc, | 204 const int16_t *dc, |
| 208 MACROBLOCKD *xd) { | 205 MACROBLOCKD *xd) { |
| 209 q[0] = dc[0]; | 206 q[0] = dc[0]; |
| 210 vp9_dequant_idct_add_8x8_c(q, dq, dst, dst, stride, stride, 1, xd->eobs[0]); | 207 vp9_dequant_idct_add_8x8_c(q, dq, dst, dst, stride, stride, 1, xd->eobs[0]); |
| 211 | 208 |
| 212 q[64] = dc[1]; | 209 q[64] = dc[1]; |
| 213 vp9_dequant_idct_add_8x8_c(&q[64], dq, dst + 8, | 210 vp9_dequant_idct_add_8x8_c(&q[64], dq, dst + 8, |
| 214 dst + 8, stride, stride, 1, xd->eobs[4]); | 211 dst + 8, stride, stride, 1, xd->eobs[4]); |
| 215 | 212 |
| 216 q[128] = dc[4]; | 213 q[128] = dc[4]; |
| 217 vp9_dequant_idct_add_8x8_c(&q[128], dq, dst + 8 * stride, | 214 vp9_dequant_idct_add_8x8_c(&q[128], dq, dst + 8 * stride, |
| 218 dst + 8 * stride, stride, stride, 1, | 215 dst + 8 * stride, stride, stride, 1, |
| 219 xd->eobs[8]); | 216 xd->eobs[8]); |
| 220 | 217 |
| 221 q[192] = dc[8]; | 218 q[192] = dc[8]; |
| 222 vp9_dequant_idct_add_8x8_c(&q[192], dq, dst + 8 * stride + 8, | 219 vp9_dequant_idct_add_8x8_c(&q[192], dq, dst + 8 * stride + 8, |
| 223 dst + 8 * stride + 8, stride, stride, 1, | 220 dst + 8 * stride + 8, stride, stride, 1, |
| 224 xd->eobs[12]); | 221 xd->eobs[12]); |
| 225 } | 222 } |
| 226 #endif | |
| 227 | 223 |
| 228 void vp9_dequant_idct_add_y_block_8x8_c(short *q, const short *dq, | 224 void vp9_dequant_idct_add_y_block_8x8_c(int16_t *q, const int16_t *dq, |
| 229 unsigned char *pre, | 225 uint8_t *pre, |
| 230 unsigned char *dst, | 226 uint8_t *dst, |
| 231 int stride, unsigned short *eobs, | 227 int stride, uint16_t *eobs, |
| 232 MACROBLOCKD *xd) { | 228 MACROBLOCKD *xd) { |
| 233 unsigned char *origdest = dst; | 229 uint8_t *origdest = dst; |
| 234 unsigned char *origpred = pre; | 230 uint8_t *origpred = pre; |
| 235 | 231 |
| 236 vp9_dequant_idct_add_8x8_c(q, dq, pre, dst, 16, stride, 0, xd->eobs[0]); | 232 vp9_dequant_idct_add_8x8_c(q, dq, pre, dst, 16, stride, 0, xd->eobs[0]); |
| 237 vp9_dequant_idct_add_8x8_c(&q[64], dq, origpred + 8, | 233 vp9_dequant_idct_add_8x8_c(&q[64], dq, origpred + 8, |
| 238 origdest + 8, 16, stride, 0, xd->eobs[4]); | 234 origdest + 8, 16, stride, 0, xd->eobs[4]); |
| 239 vp9_dequant_idct_add_8x8_c(&q[128], dq, origpred + 8 * 16, | 235 vp9_dequant_idct_add_8x8_c(&q[128], dq, origpred + 8 * 16, |
| 240 origdest + 8 * stride, 16, stride, 0, xd->eobs[8]); | 236 origdest + 8 * stride, 16, stride, 0, xd->eobs[8]); |
| 241 vp9_dequant_idct_add_8x8_c(&q[192], dq, origpred + 8 * 16 + 8, | 237 vp9_dequant_idct_add_8x8_c(&q[192], dq, origpred + 8 * 16 + 8, |
| 242 origdest + 8 * stride + 8, 16, stride, 0, | 238 origdest + 8 * stride + 8, 16, stride, 0, |
| 243 xd->eobs[12]); | 239 xd->eobs[12]); |
| 244 } | 240 } |
| 245 | 241 |
| 246 void vp9_dequant_idct_add_uv_block_8x8_c(short *q, const short *dq, | 242 void vp9_dequant_idct_add_uv_block_8x8_c(int16_t *q, const int16_t *dq, |
| 247 unsigned char *pre, | 243 uint8_t *pre, |
| 248 unsigned char *dstu, | 244 uint8_t *dstu, |
| 249 unsigned char *dstv, | 245 uint8_t *dstv, |
| 250 int stride, unsigned short *eobs, | 246 int stride, uint16_t *eobs, |
| 251 MACROBLOCKD *xd) { | 247 MACROBLOCKD *xd) { |
| 252 vp9_dequant_idct_add_8x8_c(q, dq, pre, dstu, 8, stride, 0, xd->eobs[16]); | 248 vp9_dequant_idct_add_8x8_c(q, dq, pre, dstu, 8, stride, 0, xd->eobs[16]); |
| 253 | 249 |
| 254 q += 64; | 250 q += 64; |
| 255 pre += 64; | 251 pre += 64; |
| 256 | 252 |
| 257 vp9_dequant_idct_add_8x8_c(q, dq, pre, dstv, 8, stride, 0, xd->eobs[20]); | 253 vp9_dequant_idct_add_8x8_c(q, dq, pre, dstv, 8, stride, 0, xd->eobs[20]); |
| 258 } | 254 } |
| 259 | 255 |
| 260 #if CONFIG_SUPERBLOCKS | 256 void vp9_dequant_idct_add_uv_block_8x8_inplace_c(int16_t *q, const int16_t *dq, |
| 261 void vp9_dequant_idct_add_uv_block_8x8_inplace_c(short *q, const short *dq, | 257 uint8_t *dstu, |
| 262 unsigned char *dstu, | 258 uint8_t *dstv, |
| 263 unsigned char *dstv, | |
| 264 int stride, | 259 int stride, |
| 265 unsigned short *eobs, | 260 uint16_t *eobs, |
| 266 MACROBLOCKD *xd) { | 261 MACROBLOCKD *xd) { |
| 267 vp9_dequant_idct_add_8x8_c(q, dq, dstu, dstu, stride, stride, 0, | 262 vp9_dequant_idct_add_8x8_c(q, dq, dstu, dstu, stride, stride, 0, |
| 268 xd->eobs[16]); | 263 xd->eobs[16]); |
| 269 | 264 |
| 270 q += 64; | 265 q += 64; |
| 271 vp9_dequant_idct_add_8x8_c(q, dq, dstv, dstv, stride, stride, 0, | 266 vp9_dequant_idct_add_8x8_c(q, dq, dstv, dstv, stride, stride, 0, |
| 272 xd->eobs[20]); | 267 xd->eobs[20]); |
| 273 } | 268 } |
| 274 #endif | |
| 275 | 269 |
| 276 #if CONFIG_LOSSLESS | 270 #if CONFIG_LOSSLESS |
| 277 void vp9_dequant_dc_idct_add_y_block_lossless_c(short *q, const short *dq, | 271 void vp9_dequant_dc_idct_add_y_block_lossless_c(int16_t *q, const int16_t *dq, |
| 278 unsigned char *pre, | 272 uint8_t *pre, |
| 279 unsigned char *dst, | 273 uint8_t *dst, |
| 280 int stride, | 274 int stride, |
| 281 unsigned short *eobs, | 275 uint16_t *eobs, |
| 282 const short *dc) { | 276 const int16_t *dc) { |
| 283 int i, j; | 277 int i, j; |
| 284 | 278 |
| 285 for (i = 0; i < 4; i++) { | 279 for (i = 0; i < 4; i++) { |
| 286 for (j = 0; j < 4; j++) { | 280 for (j = 0; j < 4; j++) { |
| 287 if (*eobs++ > 1) | 281 if (*eobs++ > 1) |
| 288 vp9_dequant_dc_idct_add_lossless_c(q, dq, pre, dst, 16, stride, dc[0]); | 282 vp9_dequant_dc_idct_add_lossless_c(q, dq, pre, dst, 16, stride, dc[0]); |
| 289 else | 283 else |
| 290 vp9_dc_only_inv_walsh_add_c(dc[0], pre, dst, 16, stride); | 284 vp9_dc_only_inv_walsh_add_c(dc[0], pre, dst, 16, stride); |
| 291 | 285 |
| 292 q += 16; | 286 q += 16; |
| 293 pre += 4; | 287 pre += 4; |
| 294 dst += 4; | 288 dst += 4; |
| 295 dc++; | 289 dc++; |
| 296 } | 290 } |
| 297 | 291 |
| 298 pre += 64 - 16; | 292 pre += 64 - 16; |
| 299 dst += 4 * stride - 16; | 293 dst += 4 * stride - 16; |
| 300 } | 294 } |
| 301 } | 295 } |
| 302 | 296 |
| 303 void vp9_dequant_idct_add_y_block_lossless_c(short *q, const short *dq, | 297 void vp9_dequant_idct_add_y_block_lossless_c(int16_t *q, const int16_t *dq, |
| 304 unsigned char *pre, | 298 uint8_t *pre, |
| 305 unsigned char *dst, | 299 uint8_t *dst, |
| 306 int stride, unsigned short *eobs) { | 300 int stride, uint16_t *eobs) { |
| 307 int i, j; | 301 int i, j; |
| 308 | 302 |
| 309 for (i = 0; i < 4; i++) { | 303 for (i = 0; i < 4; i++) { |
| 310 for (j = 0; j < 4; j++) { | 304 for (j = 0; j < 4; j++) { |
| 311 if (*eobs++ > 1) | 305 if (*eobs++ > 1) |
| 312 vp9_dequant_idct_add_lossless_c(q, dq, pre, dst, 16, stride); | 306 vp9_dequant_idct_add_lossless_c(q, dq, pre, dst, 16, stride); |
| 313 else { | 307 else { |
| 314 vp9_dc_only_inv_walsh_add_c(q[0]*dq[0], pre, dst, 16, stride); | 308 vp9_dc_only_inv_walsh_add_c(q[0]*dq[0], pre, dst, 16, stride); |
| 315 ((int *)q)[0] = 0; | 309 ((int *)q)[0] = 0; |
| 316 } | 310 } |
| 317 | 311 |
| 318 q += 16; | 312 q += 16; |
| 319 pre += 4; | 313 pre += 4; |
| 320 dst += 4; | 314 dst += 4; |
| 321 } | 315 } |
| 322 | 316 |
| 323 pre += 64 - 16; | 317 pre += 64 - 16; |
| 324 dst += 4 * stride - 16; | 318 dst += 4 * stride - 16; |
| 325 } | 319 } |
| 326 } | 320 } |
| 327 | 321 |
| 328 void vp9_dequant_idct_add_uv_block_lossless_c(short *q, const short *dq, | 322 void vp9_dequant_idct_add_uv_block_lossless_c(int16_t *q, const int16_t *dq, |
| 329 unsigned char *pre, | 323 uint8_t *pre, |
| 330 unsigned char *dstu, | 324 uint8_t *dstu, |
| 331 unsigned char *dstv, | 325 uint8_t *dstv, |
| 332 int stride, | 326 int stride, |
| 333 unsigned short *eobs) { | 327 uint16_t *eobs) { |
| 334 int i, j; | 328 int i, j; |
| 335 | 329 |
| 336 for (i = 0; i < 2; i++) { | 330 for (i = 0; i < 2; i++) { |
| 337 for (j = 0; j < 2; j++) { | 331 for (j = 0; j < 2; j++) { |
| 338 if (*eobs++ > 1) | 332 if (*eobs++ > 1) |
| 339 vp9_dequant_idct_add_lossless_c(q, dq, pre, dstu, 8, stride); | 333 vp9_dequant_idct_add_lossless_c(q, dq, pre, dstu, 8, stride); |
| 340 else { | 334 else { |
| 341 vp9_dc_only_inv_walsh_add_c(q[0]*dq[0], pre, dstu, 8, stride); | 335 vp9_dc_only_inv_walsh_add_c(q[0]*dq[0], pre, dstu, 8, stride); |
| 342 ((int *)q)[0] = 0; | 336 ((int *)q)[0] = 0; |
| 343 } | 337 } |
| (...skipping 20 matching lines...) Expand all Loading... |
| 364 pre += 4; | 358 pre += 4; |
| 365 dstv += 4; | 359 dstv += 4; |
| 366 } | 360 } |
| 367 | 361 |
| 368 pre += 32 - 8; | 362 pre += 32 - 8; |
| 369 dstv += 4 * stride - 8; | 363 dstv += 4 * stride - 8; |
| 370 } | 364 } |
| 371 } | 365 } |
| 372 #endif | 366 #endif |
| 373 | 367 |
| OLD | NEW |