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 <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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |