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

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

Issue 1302353004: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: Created 5 years, 3 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_idct.h ('k') | source/libvpx/vp9/common/vp9_loopfilter.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
11 #include <math.h> 11 #include <math.h>
12 12
13 #include "./vp9_rtcd.h" 13 #include "./vp9_rtcd.h"
14 #include "./vpx_dsp_rtcd.h" 14 #include "./vpx_dsp_rtcd.h"
15 #include "vp9/common/vp9_blockd.h" 15 #include "vp9/common/vp9_blockd.h"
16 #include "vp9/common/vp9_idct.h" 16 #include "vp9/common/vp9_idct.h"
17 #include "vp9/common/vp9_systemdependent.h"
18 #include "vpx_dsp/inv_txfm.h" 17 #include "vpx_dsp/inv_txfm.h"
19 #include "vpx_ports/mem.h" 18 #include "vpx_ports/mem.h"
20 19
21 void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride, 20 void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride,
22 int tx_type) { 21 int tx_type) {
23 const transform_2d IHT_4[] = { 22 const transform_2d IHT_4[] = {
24 { idct4_c, idct4_c }, // DCT_DCT = 0 23 { idct4_c, idct4_c }, // DCT_DCT = 0
25 { iadst4_c, idct4_c }, // ADST_DCT = 1 24 { iadst4_c, idct4_c }, // ADST_DCT = 1
26 { idct4_c, iadst4_c }, // DCT_ADST = 2 25 { idct4_c, iadst4_c }, // DCT_ADST = 2
27 { iadst4_c, iadst4_c } // ADST_ADST = 3 26 { iadst4_c, iadst4_c } // ADST_ADST = 3
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 dest[j * stride + i] = clip_pixel_add(dest[j * stride + i], 115 dest[j * stride + i] = clip_pixel_add(dest[j * stride + i],
117 ROUND_POWER_OF_TWO(temp_out[j], 6)); 116 ROUND_POWER_OF_TWO(temp_out[j], 6));
118 } 117 }
119 } 118 }
120 } 119 }
121 120
122 // idct 121 // idct
123 void vp9_idct4x4_add(const tran_low_t *input, uint8_t *dest, int stride, 122 void vp9_idct4x4_add(const tran_low_t *input, uint8_t *dest, int stride,
124 int eob) { 123 int eob) {
125 if (eob > 1) 124 if (eob > 1)
126 vp9_idct4x4_16_add(input, dest, stride); 125 vpx_idct4x4_16_add(input, dest, stride);
127 else 126 else
128 vp9_idct4x4_1_add(input, dest, stride); 127 vpx_idct4x4_1_add(input, dest, stride);
129 } 128 }
130 129
131 130
132 void vp9_iwht4x4_add(const tran_low_t *input, uint8_t *dest, int stride, 131 void vp9_iwht4x4_add(const tran_low_t *input, uint8_t *dest, int stride,
133 int eob) { 132 int eob) {
134 if (eob > 1) 133 if (eob > 1)
135 vp9_iwht4x4_16_add(input, dest, stride); 134 vpx_iwht4x4_16_add(input, dest, stride);
136 else 135 else
137 vp9_iwht4x4_1_add(input, dest, stride); 136 vpx_iwht4x4_1_add(input, dest, stride);
138 } 137 }
139 138
140 void vp9_idct8x8_add(const tran_low_t *input, uint8_t *dest, int stride, 139 void vp9_idct8x8_add(const tran_low_t *input, uint8_t *dest, int stride,
141 int eob) { 140 int eob) {
142 // If dc is 1, then input[0] is the reconstructed value, do not need 141 // If dc is 1, then input[0] is the reconstructed value, do not need
143 // dequantization. Also, when dc is 1, dc is counted in eobs, namely eobs >=1. 142 // dequantization. Also, when dc is 1, dc is counted in eobs, namely eobs >=1.
144 143
145 // The calculation can be simplified if there are not many non-zero dct 144 // The calculation can be simplified if there are not many non-zero dct
146 // coefficients. Use eobs to decide what to do. 145 // coefficients. Use eobs to decide what to do.
147 // TODO(yunqingwang): "eobs = 1" case is also handled in vp9_short_idct8x8_c. 146 // TODO(yunqingwang): "eobs = 1" case is also handled in vp9_short_idct8x8_c.
148 // Combine that with code here. 147 // Combine that with code here.
149 if (eob == 1) 148 if (eob == 1)
150 // DC only DCT coefficient 149 // DC only DCT coefficient
151 vp9_idct8x8_1_add(input, dest, stride); 150 vpx_idct8x8_1_add(input, dest, stride);
152 else if (eob <= 12) 151 else if (eob <= 12)
153 vp9_idct8x8_12_add(input, dest, stride); 152 vpx_idct8x8_12_add(input, dest, stride);
154 else 153 else
155 vp9_idct8x8_64_add(input, dest, stride); 154 vpx_idct8x8_64_add(input, dest, stride);
156 } 155 }
157 156
158 void vp9_idct16x16_add(const tran_low_t *input, uint8_t *dest, int stride, 157 void vp9_idct16x16_add(const tran_low_t *input, uint8_t *dest, int stride,
159 int eob) { 158 int eob) {
160 /* The calculation can be simplified if there are not many non-zero dct 159 /* The calculation can be simplified if there are not many non-zero dct
161 * coefficients. Use eobs to separate different cases. */ 160 * coefficients. Use eobs to separate different cases. */
162 if (eob == 1) 161 if (eob == 1)
163 /* DC only DCT coefficient. */ 162 /* DC only DCT coefficient. */
164 vp9_idct16x16_1_add(input, dest, stride); 163 vpx_idct16x16_1_add(input, dest, stride);
165 else if (eob <= 10) 164 else if (eob <= 10)
166 vp9_idct16x16_10_add(input, dest, stride); 165 vpx_idct16x16_10_add(input, dest, stride);
167 else 166 else
168 vp9_idct16x16_256_add(input, dest, stride); 167 vpx_idct16x16_256_add(input, dest, stride);
169 } 168 }
170 169
171 void vp9_idct32x32_add(const tran_low_t *input, uint8_t *dest, int stride, 170 void vp9_idct32x32_add(const tran_low_t *input, uint8_t *dest, int stride,
172 int eob) { 171 int eob) {
173 if (eob == 1) 172 if (eob == 1)
174 vp9_idct32x32_1_add(input, dest, stride); 173 vpx_idct32x32_1_add(input, dest, stride);
175 else if (eob <= 34) 174 else if (eob <= 34)
176 // non-zero coeff only in upper-left 8x8 175 // non-zero coeff only in upper-left 8x8
177 vp9_idct32x32_34_add(input, dest, stride); 176 vpx_idct32x32_34_add(input, dest, stride);
178 else 177 else
179 vp9_idct32x32_1024_add(input, dest, stride); 178 vpx_idct32x32_1024_add(input, dest, stride);
180 } 179 }
181 180
182 // iht 181 // iht
183 void vp9_iht4x4_add(TX_TYPE tx_type, const tran_low_t *input, uint8_t *dest, 182 void vp9_iht4x4_add(TX_TYPE tx_type, const tran_low_t *input, uint8_t *dest,
184 int stride, int eob) { 183 int stride, int eob) {
185 if (tx_type == DCT_DCT) 184 if (tx_type == DCT_DCT)
186 vp9_idct4x4_add(input, dest, stride, eob); 185 vp9_idct4x4_add(input, dest, stride, eob);
187 else 186 else
188 vp9_iht4x4_16_add(input, dest, stride, tx_type); 187 vp9_iht4x4_16_add(input, dest, stride, tx_type);
189 } 188 }
(...skipping 13 matching lines...) Expand all
203 vp9_idct16x16_add(input, dest, stride, eob); 202 vp9_idct16x16_add(input, dest, stride, eob);
204 } else { 203 } else {
205 vp9_iht16x16_256_add(input, dest, stride, tx_type); 204 vp9_iht16x16_256_add(input, dest, stride, tx_type);
206 } 205 }
207 } 206 }
208 207
209 #if CONFIG_VP9_HIGHBITDEPTH 208 #if CONFIG_VP9_HIGHBITDEPTH
210 void vp9_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest8, 209 void vp9_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest8,
211 int stride, int tx_type, int bd) { 210 int stride, int tx_type, int bd) {
212 const highbd_transform_2d IHT_4[] = { 211 const highbd_transform_2d IHT_4[] = {
213 { vp9_highbd_idct4_c, vp9_highbd_idct4_c }, // DCT_DCT = 0 212 { vpx_highbd_idct4_c, vpx_highbd_idct4_c }, // DCT_DCT = 0
214 { highbd_iadst4_c, vp9_highbd_idct4_c }, // ADST_DCT = 1 213 { vpx_highbd_iadst4_c, vpx_highbd_idct4_c }, // ADST_DCT = 1
215 { vp9_highbd_idct4_c, highbd_iadst4_c }, // DCT_ADST = 2 214 { vpx_highbd_idct4_c, vpx_highbd_iadst4_c }, // DCT_ADST = 2
216 { highbd_iadst4_c, highbd_iadst4_c } // ADST_ADST = 3 215 { vpx_highbd_iadst4_c, vpx_highbd_iadst4_c } // ADST_ADST = 3
217 }; 216 };
218 uint16_t *dest = CONVERT_TO_SHORTPTR(dest8); 217 uint16_t *dest = CONVERT_TO_SHORTPTR(dest8);
219 218
220 int i, j; 219 int i, j;
221 tran_low_t out[4 * 4]; 220 tran_low_t out[4 * 4];
222 tran_low_t *outptr = out; 221 tran_low_t *outptr = out;
223 tran_low_t temp_in[4], temp_out[4]; 222 tran_low_t temp_in[4], temp_out[4];
224 223
225 // Inverse transform row vectors. 224 // Inverse transform row vectors.
226 for (i = 0; i < 4; ++i) { 225 for (i = 0; i < 4; ++i) {
227 IHT_4[tx_type].rows(input, outptr, bd); 226 IHT_4[tx_type].rows(input, outptr, bd);
228 input += 4; 227 input += 4;
229 outptr += 4; 228 outptr += 4;
230 } 229 }
231 230
232 // Inverse transform column vectors. 231 // Inverse transform column vectors.
233 for (i = 0; i < 4; ++i) { 232 for (i = 0; i < 4; ++i) {
234 for (j = 0; j < 4; ++j) 233 for (j = 0; j < 4; ++j)
235 temp_in[j] = out[j * 4 + i]; 234 temp_in[j] = out[j * 4 + i];
236 IHT_4[tx_type].cols(temp_in, temp_out, bd); 235 IHT_4[tx_type].cols(temp_in, temp_out, bd);
237 for (j = 0; j < 4; ++j) { 236 for (j = 0; j < 4; ++j) {
238 dest[j * stride + i] = highbd_clip_pixel_add( 237 dest[j * stride + i] = highbd_clip_pixel_add(
239 dest[j * stride + i], ROUND_POWER_OF_TWO(temp_out[j], 4), bd); 238 dest[j * stride + i], ROUND_POWER_OF_TWO(temp_out[j], 4), bd);
240 } 239 }
241 } 240 }
242 } 241 }
243 242
244 static const highbd_transform_2d HIGH_IHT_8[] = { 243 static const highbd_transform_2d HIGH_IHT_8[] = {
245 { vp9_highbd_idct8_c, vp9_highbd_idct8_c }, // DCT_DCT = 0 244 { vpx_highbd_idct8_c, vpx_highbd_idct8_c }, // DCT_DCT = 0
246 { highbd_iadst8_c, vp9_highbd_idct8_c }, // ADST_DCT = 1 245 { vpx_highbd_iadst8_c, vpx_highbd_idct8_c }, // ADST_DCT = 1
247 { vp9_highbd_idct8_c, highbd_iadst8_c }, // DCT_ADST = 2 246 { vpx_highbd_idct8_c, vpx_highbd_iadst8_c }, // DCT_ADST = 2
248 { highbd_iadst8_c, highbd_iadst8_c } // ADST_ADST = 3 247 { vpx_highbd_iadst8_c, vpx_highbd_iadst8_c } // ADST_ADST = 3
249 }; 248 };
250 249
251 void vp9_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest8, 250 void vp9_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest8,
252 int stride, int tx_type, int bd) { 251 int stride, int tx_type, int bd) {
253 int i, j; 252 int i, j;
254 tran_low_t out[8 * 8]; 253 tran_low_t out[8 * 8];
255 tran_low_t *outptr = out; 254 tran_low_t *outptr = out;
256 tran_low_t temp_in[8], temp_out[8]; 255 tran_low_t temp_in[8], temp_out[8];
257 const highbd_transform_2d ht = HIGH_IHT_8[tx_type]; 256 const highbd_transform_2d ht = HIGH_IHT_8[tx_type];
258 uint16_t *dest = CONVERT_TO_SHORTPTR(dest8); 257 uint16_t *dest = CONVERT_TO_SHORTPTR(dest8);
(...skipping 11 matching lines...) Expand all
270 temp_in[j] = out[j * 8 + i]; 269 temp_in[j] = out[j * 8 + i];
271 ht.cols(temp_in, temp_out, bd); 270 ht.cols(temp_in, temp_out, bd);
272 for (j = 0; j < 8; ++j) { 271 for (j = 0; j < 8; ++j) {
273 dest[j * stride + i] = highbd_clip_pixel_add( 272 dest[j * stride + i] = highbd_clip_pixel_add(
274 dest[j * stride + i], ROUND_POWER_OF_TWO(temp_out[j], 5), bd); 273 dest[j * stride + i], ROUND_POWER_OF_TWO(temp_out[j], 5), bd);
275 } 274 }
276 } 275 }
277 } 276 }
278 277
279 static const highbd_transform_2d HIGH_IHT_16[] = { 278 static const highbd_transform_2d HIGH_IHT_16[] = {
280 { vp9_highbd_idct16_c, vp9_highbd_idct16_c }, // DCT_DCT = 0 279 { vpx_highbd_idct16_c, vpx_highbd_idct16_c }, // DCT_DCT = 0
281 { highbd_iadst16_c, vp9_highbd_idct16_c }, // ADST_DCT = 1 280 { vpx_highbd_iadst16_c, vpx_highbd_idct16_c }, // ADST_DCT = 1
282 { vp9_highbd_idct16_c, highbd_iadst16_c }, // DCT_ADST = 2 281 { vpx_highbd_idct16_c, vpx_highbd_iadst16_c }, // DCT_ADST = 2
283 { highbd_iadst16_c, highbd_iadst16_c } // ADST_ADST = 3 282 { vpx_highbd_iadst16_c, vpx_highbd_iadst16_c } // ADST_ADST = 3
284 }; 283 };
285 284
286 void vp9_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *dest8, 285 void vp9_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *dest8,
287 int stride, int tx_type, int bd) { 286 int stride, int tx_type, int bd) {
288 int i, j; 287 int i, j;
289 tran_low_t out[16 * 16]; 288 tran_low_t out[16 * 16];
290 tran_low_t *outptr = out; 289 tran_low_t *outptr = out;
291 tran_low_t temp_in[16], temp_out[16]; 290 tran_low_t temp_in[16], temp_out[16];
292 const highbd_transform_2d ht = HIGH_IHT_16[tx_type]; 291 const highbd_transform_2d ht = HIGH_IHT_16[tx_type];
293 uint16_t *dest = CONVERT_TO_SHORTPTR(dest8); 292 uint16_t *dest = CONVERT_TO_SHORTPTR(dest8);
(...skipping 14 matching lines...) Expand all
308 dest[j * stride + i] = highbd_clip_pixel_add( 307 dest[j * stride + i] = highbd_clip_pixel_add(
309 dest[j * stride + i], ROUND_POWER_OF_TWO(temp_out[j], 6), bd); 308 dest[j * stride + i], ROUND_POWER_OF_TWO(temp_out[j], 6), bd);
310 } 309 }
311 } 310 }
312 } 311 }
313 312
314 // idct 313 // idct
315 void vp9_highbd_idct4x4_add(const tran_low_t *input, uint8_t *dest, int stride, 314 void vp9_highbd_idct4x4_add(const tran_low_t *input, uint8_t *dest, int stride,
316 int eob, int bd) { 315 int eob, int bd) {
317 if (eob > 1) 316 if (eob > 1)
318 vp9_highbd_idct4x4_16_add(input, dest, stride, bd); 317 vpx_highbd_idct4x4_16_add(input, dest, stride, bd);
319 else 318 else
320 vp9_highbd_idct4x4_1_add(input, dest, stride, bd); 319 vpx_highbd_idct4x4_1_add(input, dest, stride, bd);
321 } 320 }
322 321
323 322
324 void vp9_highbd_iwht4x4_add(const tran_low_t *input, uint8_t *dest, int stride, 323 void vp9_highbd_iwht4x4_add(const tran_low_t *input, uint8_t *dest, int stride,
325 int eob, int bd) { 324 int eob, int bd) {
326 if (eob > 1) 325 if (eob > 1)
327 vp9_highbd_iwht4x4_16_add(input, dest, stride, bd); 326 vpx_highbd_iwht4x4_16_add(input, dest, stride, bd);
328 else 327 else
329 vp9_highbd_iwht4x4_1_add(input, dest, stride, bd); 328 vpx_highbd_iwht4x4_1_add(input, dest, stride, bd);
330 } 329 }
331 330
332 void vp9_highbd_idct8x8_add(const tran_low_t *input, uint8_t *dest, int stride, 331 void vp9_highbd_idct8x8_add(const tran_low_t *input, uint8_t *dest, int stride,
333 int eob, int bd) { 332 int eob, int bd) {
334 // If dc is 1, then input[0] is the reconstructed value, do not need 333 // If dc is 1, then input[0] is the reconstructed value, do not need
335 // dequantization. Also, when dc is 1, dc is counted in eobs, namely eobs >=1. 334 // dequantization. Also, when dc is 1, dc is counted in eobs, namely eobs >=1.
336 335
337 // The calculation can be simplified if there are not many non-zero dct 336 // The calculation can be simplified if there are not many non-zero dct
338 // coefficients. Use eobs to decide what to do. 337 // coefficients. Use eobs to decide what to do.
339 // TODO(yunqingwang): "eobs = 1" case is also handled in vp9_short_idct8x8_c. 338 // TODO(yunqingwang): "eobs = 1" case is also handled in vp9_short_idct8x8_c.
340 // Combine that with code here. 339 // Combine that with code here.
341 // DC only DCT coefficient 340 // DC only DCT coefficient
342 if (eob == 1) { 341 if (eob == 1) {
343 vp9_highbd_idct8x8_1_add(input, dest, stride, bd); 342 vpx_highbd_idct8x8_1_add(input, dest, stride, bd);
344 } else if (eob <= 10) { 343 } else if (eob <= 10) {
345 vp9_highbd_idct8x8_10_add(input, dest, stride, bd); 344 vpx_highbd_idct8x8_10_add(input, dest, stride, bd);
346 } else { 345 } else {
347 vp9_highbd_idct8x8_64_add(input, dest, stride, bd); 346 vpx_highbd_idct8x8_64_add(input, dest, stride, bd);
348 } 347 }
349 } 348 }
350 349
351 void vp9_highbd_idct16x16_add(const tran_low_t *input, uint8_t *dest, 350 void vp9_highbd_idct16x16_add(const tran_low_t *input, uint8_t *dest,
352 int stride, int eob, int bd) { 351 int stride, int eob, int bd) {
353 // The calculation can be simplified if there are not many non-zero dct 352 // The calculation can be simplified if there are not many non-zero dct
354 // coefficients. Use eobs to separate different cases. 353 // coefficients. Use eobs to separate different cases.
355 // DC only DCT coefficient. 354 // DC only DCT coefficient.
356 if (eob == 1) { 355 if (eob == 1) {
357 vp9_highbd_idct16x16_1_add(input, dest, stride, bd); 356 vpx_highbd_idct16x16_1_add(input, dest, stride, bd);
358 } else if (eob <= 10) { 357 } else if (eob <= 10) {
359 vp9_highbd_idct16x16_10_add(input, dest, stride, bd); 358 vpx_highbd_idct16x16_10_add(input, dest, stride, bd);
360 } else { 359 } else {
361 vp9_highbd_idct16x16_256_add(input, dest, stride, bd); 360 vpx_highbd_idct16x16_256_add(input, dest, stride, bd);
362 } 361 }
363 } 362 }
364 363
365 void vp9_highbd_idct32x32_add(const tran_low_t *input, uint8_t *dest, 364 void vp9_highbd_idct32x32_add(const tran_low_t *input, uint8_t *dest,
366 int stride, int eob, int bd) { 365 int stride, int eob, int bd) {
367 // Non-zero coeff only in upper-left 8x8 366 // Non-zero coeff only in upper-left 8x8
368 if (eob == 1) { 367 if (eob == 1) {
369 vp9_highbd_idct32x32_1_add(input, dest, stride, bd); 368 vpx_highbd_idct32x32_1_add(input, dest, stride, bd);
370 } else if (eob <= 34) { 369 } else if (eob <= 34) {
371 vp9_highbd_idct32x32_34_add(input, dest, stride, bd); 370 vpx_highbd_idct32x32_34_add(input, dest, stride, bd);
372 } else { 371 } else {
373 vp9_highbd_idct32x32_1024_add(input, dest, stride, bd); 372 vpx_highbd_idct32x32_1024_add(input, dest, stride, bd);
374 } 373 }
375 } 374 }
376 375
377 // iht 376 // iht
378 void vp9_highbd_iht4x4_add(TX_TYPE tx_type, const tran_low_t *input, 377 void vp9_highbd_iht4x4_add(TX_TYPE tx_type, const tran_low_t *input,
379 uint8_t *dest, int stride, int eob, int bd) { 378 uint8_t *dest, int stride, int eob, int bd) {
380 if (tx_type == DCT_DCT) 379 if (tx_type == DCT_DCT)
381 vp9_highbd_idct4x4_add(input, dest, stride, eob, bd); 380 vp9_highbd_idct4x4_add(input, dest, stride, eob, bd);
382 else 381 else
383 vp9_highbd_iht4x4_16_add(input, dest, stride, tx_type, bd); 382 vp9_highbd_iht4x4_16_add(input, dest, stride, tx_type, bd);
(...skipping 10 matching lines...) Expand all
394 393
395 void vp9_highbd_iht16x16_add(TX_TYPE tx_type, const tran_low_t *input, 394 void vp9_highbd_iht16x16_add(TX_TYPE tx_type, const tran_low_t *input,
396 uint8_t *dest, int stride, int eob, int bd) { 395 uint8_t *dest, int stride, int eob, int bd) {
397 if (tx_type == DCT_DCT) { 396 if (tx_type == DCT_DCT) {
398 vp9_highbd_idct16x16_add(input, dest, stride, eob, bd); 397 vp9_highbd_idct16x16_add(input, dest, stride, eob, bd);
399 } else { 398 } else {
400 vp9_highbd_iht16x16_256_add(input, dest, stride, tx_type, bd); 399 vp9_highbd_iht16x16_256_add(input, dest, stride, tx_type, bd);
401 } 400 }
402 } 401 }
403 #endif // CONFIG_VP9_HIGHBITDEPTH 402 #endif // CONFIG_VP9_HIGHBITDEPTH
OLDNEW
« no previous file with comments | « source/libvpx/vp9/common/vp9_idct.h ('k') | source/libvpx/vp9/common/vp9_loopfilter.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698