| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2015 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2015 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 <assert.h> |
| 11 #include "./vpx_dsp_rtcd.h" | 12 #include "./vpx_dsp_rtcd.h" |
| 12 #include "vpx_dsp/mips/vpx_convolve_msa.h" | 13 #include "vpx_dsp/mips/vpx_convolve_msa.h" |
| 13 | 14 |
| 14 static void common_hv_8ht_8vt_and_aver_dst_4w_msa(const uint8_t *src, | 15 static void common_hv_8ht_8vt_and_aver_dst_4w_msa(const uint8_t *src, |
| 15 int32_t src_stride, | 16 int32_t src_stride, |
| 16 uint8_t *dst, | 17 uint8_t *dst, |
| 17 int32_t dst_stride, | 18 int32_t dst_stride, |
| 18 int8_t *filter_horiz, | 19 int8_t *filter_horiz, |
| 19 int8_t *filter_vert, | 20 int8_t *filter_vert, |
| 20 int32_t height) { | 21 int32_t height) { |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 hz_out2 = HORIZ_2TAP_FILT_UH(src2, src3, mask, filt_hz, FILTER_BITS); | 268 hz_out2 = HORIZ_2TAP_FILT_UH(src2, src3, mask, filt_hz, FILTER_BITS); |
| 268 hz_out4 = HORIZ_2TAP_FILT_UH(src4, src4, mask, filt_hz, FILTER_BITS); | 269 hz_out4 = HORIZ_2TAP_FILT_UH(src4, src4, mask, filt_hz, FILTER_BITS); |
| 269 hz_out1 = (v8u16)__msa_sldi_b((v16i8)hz_out2, (v16i8)hz_out0, 8); | 270 hz_out1 = (v8u16)__msa_sldi_b((v16i8)hz_out2, (v16i8)hz_out0, 8); |
| 270 hz_out3 = (v8u16)__msa_pckod_d((v2i64)hz_out4, (v2i64)hz_out2); | 271 hz_out3 = (v8u16)__msa_pckod_d((v2i64)hz_out4, (v2i64)hz_out2); |
| 271 ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1); | 272 ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1); |
| 272 | 273 |
| 273 LD_UB4(dst, dst_stride, dst0, dst1, dst2, dst3); | 274 LD_UB4(dst, dst_stride, dst0, dst1, dst2, dst3); |
| 274 ILVR_W2_UB(dst1, dst0, dst3, dst2, dst0, dst2); | 275 ILVR_W2_UB(dst1, dst0, dst3, dst2, dst0, dst2); |
| 275 DOTP_UB2_UH(vec0, vec1, filt_vt, filt_vt, tmp0, tmp1); | 276 DOTP_UB2_UH(vec0, vec1, filt_vt, filt_vt, tmp0, tmp1); |
| 276 SRARI_H2_UH(tmp0, tmp1, FILTER_BITS); | 277 SRARI_H2_UH(tmp0, tmp1, FILTER_BITS); |
| 277 SAT_UH2_UH(tmp0, tmp1, 7); | |
| 278 PCKEV_B2_UB(tmp0, tmp0, tmp1, tmp1, res0, res1); | 278 PCKEV_B2_UB(tmp0, tmp0, tmp1, tmp1, res0, res1); |
| 279 AVER_UB2_UB(res0, dst0, res1, dst2, res0, res1); | 279 AVER_UB2_UB(res0, dst0, res1, dst2, res0, res1); |
| 280 ST4x4_UB(res0, res1, 0, 1, 0, 1, dst, dst_stride); | 280 ST4x4_UB(res0, res1, 0, 1, 0, 1, dst, dst_stride); |
| 281 } | 281 } |
| 282 | 282 |
| 283 static void common_hv_2ht_2vt_and_aver_dst_4x8_msa(const uint8_t *src, | 283 static void common_hv_2ht_2vt_and_aver_dst_4x8_msa(const uint8_t *src, |
| 284 int32_t src_stride, | 284 int32_t src_stride, |
| 285 uint8_t *dst, | 285 uint8_t *dst, |
| 286 int32_t dst_stride, | 286 int32_t dst_stride, |
| 287 int8_t *filter_horiz, | 287 int8_t *filter_horiz, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 316 hz_out7 = (v8u16)__msa_pckod_d((v2i64)hz_out8, (v2i64)hz_out6); | 316 hz_out7 = (v8u16)__msa_pckod_d((v2i64)hz_out8, (v2i64)hz_out6); |
| 317 | 317 |
| 318 LD_UB8(dst, dst_stride, dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7); | 318 LD_UB8(dst, dst_stride, dst0, dst1, dst2, dst3, dst4, dst5, dst6, dst7); |
| 319 ILVR_W4_UB(dst1, dst0, dst3, dst2, dst5, dst4, dst7, dst6, dst0, dst2, | 319 ILVR_W4_UB(dst1, dst0, dst3, dst2, dst5, dst4, dst7, dst6, dst0, dst2, |
| 320 dst4, dst6); | 320 dst4, dst6); |
| 321 ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1); | 321 ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1); |
| 322 ILVEV_B2_UB(hz_out4, hz_out5, hz_out6, hz_out7, vec2, vec3); | 322 ILVEV_B2_UB(hz_out4, hz_out5, hz_out6, hz_out7, vec2, vec3); |
| 323 DOTP_UB4_UH(vec0, vec1, vec2, vec3, filt_vt, filt_vt, filt_vt, filt_vt, | 323 DOTP_UB4_UH(vec0, vec1, vec2, vec3, filt_vt, filt_vt, filt_vt, filt_vt, |
| 324 tmp0, tmp1, tmp2, tmp3); | 324 tmp0, tmp1, tmp2, tmp3); |
| 325 SRARI_H4_UH(tmp0, tmp1, tmp2, tmp3, FILTER_BITS); | 325 SRARI_H4_UH(tmp0, tmp1, tmp2, tmp3, FILTER_BITS); |
| 326 SAT_UH4_UH(tmp0, tmp1, tmp2, tmp3, 7); | |
| 327 PCKEV_B4_UB(tmp0, tmp0, tmp1, tmp1, tmp2, tmp2, tmp3, tmp3, res0, res1, | 326 PCKEV_B4_UB(tmp0, tmp0, tmp1, tmp1, tmp2, tmp2, tmp3, tmp3, res0, res1, |
| 328 res2, res3); | 327 res2, res3); |
| 329 AVER_UB4_UB(res0, dst0, res1, dst2, res2, dst4, res3, dst6, res0, res1, | 328 AVER_UB4_UB(res0, dst0, res1, dst2, res2, dst4, res3, dst6, res0, res1, |
| 330 res2, res3); | 329 res2, res3); |
| 331 ST4x4_UB(res0, res1, 0, 1, 0, 1, dst, dst_stride); | 330 ST4x4_UB(res0, res1, 0, 1, 0, 1, dst, dst_stride); |
| 332 dst += (4 * dst_stride); | 331 dst += (4 * dst_stride); |
| 333 ST4x4_UB(res2, res3, 0, 1, 0, 1, dst, dst_stride); | 332 ST4x4_UB(res2, res3, 0, 1, 0, 1, dst, dst_stride); |
| 334 } | 333 } |
| 335 | 334 |
| 336 static void common_hv_2ht_2vt_and_aver_dst_4w_msa(const uint8_t *src, | 335 static void common_hv_2ht_2vt_and_aver_dst_4w_msa(const uint8_t *src, |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 | 383 |
| 385 hz_out1 = HORIZ_2TAP_FILT_UH(src3, src3, mask, filt_hz, FILTER_BITS); | 384 hz_out1 = HORIZ_2TAP_FILT_UH(src3, src3, mask, filt_hz, FILTER_BITS); |
| 386 vec2 = (v16u8)__msa_ilvev_b((v16i8)hz_out1, (v16i8)hz_out0); | 385 vec2 = (v16u8)__msa_ilvev_b((v16i8)hz_out1, (v16i8)hz_out0); |
| 387 tmp2 = __msa_dotp_u_h(vec2, filt_vt); | 386 tmp2 = __msa_dotp_u_h(vec2, filt_vt); |
| 388 | 387 |
| 389 hz_out0 = HORIZ_2TAP_FILT_UH(src4, src4, mask, filt_hz, FILTER_BITS); | 388 hz_out0 = HORIZ_2TAP_FILT_UH(src4, src4, mask, filt_hz, FILTER_BITS); |
| 390 vec3 = (v16u8)__msa_ilvev_b((v16i8)hz_out0, (v16i8)hz_out1); | 389 vec3 = (v16u8)__msa_ilvev_b((v16i8)hz_out0, (v16i8)hz_out1); |
| 391 tmp3 = __msa_dotp_u_h(vec3, filt_vt); | 390 tmp3 = __msa_dotp_u_h(vec3, filt_vt); |
| 392 | 391 |
| 393 SRARI_H4_UH(tmp0, tmp1, tmp2, tmp3, FILTER_BITS); | 392 SRARI_H4_UH(tmp0, tmp1, tmp2, tmp3, FILTER_BITS); |
| 394 SAT_UH4_UH(tmp0, tmp1, tmp2, tmp3, 7); | |
| 395 PCKEV_AVG_ST8x4_UB(tmp0, dst0, tmp1, dst1, tmp2, dst2, tmp3, dst3, | 393 PCKEV_AVG_ST8x4_UB(tmp0, dst0, tmp1, dst1, tmp2, dst2, tmp3, dst3, |
| 396 dst, dst_stride); | 394 dst, dst_stride); |
| 397 } | 395 } |
| 398 | 396 |
| 399 static void common_hv_2ht_2vt_and_aver_dst_8x8mult_msa(const uint8_t *src, | 397 static void common_hv_2ht_2vt_and_aver_dst_8x8mult_msa(const uint8_t *src, |
| 400 int32_t src_stride, | 398 int32_t src_stride, |
| 401 uint8_t *dst, | 399 uint8_t *dst, |
| 402 int32_t dst_stride, | 400 int32_t dst_stride, |
| 403 int8_t *filter_horiz, | 401 int8_t *filter_horiz, |
| 404 int8_t *filter_vert, | 402 int8_t *filter_vert, |
| (...skipping 24 matching lines...) Expand all Loading... |
| 429 | 427 |
| 430 hz_out1 = HORIZ_2TAP_FILT_UH(src1, src1, mask, filt_hz, FILTER_BITS); | 428 hz_out1 = HORIZ_2TAP_FILT_UH(src1, src1, mask, filt_hz, FILTER_BITS); |
| 431 vec0 = (v16u8)__msa_ilvev_b((v16i8)hz_out1, (v16i8)hz_out0); | 429 vec0 = (v16u8)__msa_ilvev_b((v16i8)hz_out1, (v16i8)hz_out0); |
| 432 tmp0 = __msa_dotp_u_h(vec0, filt_vt); | 430 tmp0 = __msa_dotp_u_h(vec0, filt_vt); |
| 433 | 431 |
| 434 hz_out0 = HORIZ_2TAP_FILT_UH(src2, src2, mask, filt_hz, FILTER_BITS); | 432 hz_out0 = HORIZ_2TAP_FILT_UH(src2, src2, mask, filt_hz, FILTER_BITS); |
| 435 vec0 = (v16u8)__msa_ilvev_b((v16i8)hz_out0, (v16i8)hz_out1); | 433 vec0 = (v16u8)__msa_ilvev_b((v16i8)hz_out0, (v16i8)hz_out1); |
| 436 tmp1 = __msa_dotp_u_h(vec0, filt_vt); | 434 tmp1 = __msa_dotp_u_h(vec0, filt_vt); |
| 437 | 435 |
| 438 SRARI_H2_UH(tmp0, tmp1, FILTER_BITS); | 436 SRARI_H2_UH(tmp0, tmp1, FILTER_BITS); |
| 439 SAT_UH2_UH(tmp0, tmp1, 7); | |
| 440 | 437 |
| 441 hz_out1 = HORIZ_2TAP_FILT_UH(src3, src3, mask, filt_hz, FILTER_BITS); | 438 hz_out1 = HORIZ_2TAP_FILT_UH(src3, src3, mask, filt_hz, FILTER_BITS); |
| 442 vec0 = (v16u8)__msa_ilvev_b((v16i8)hz_out1, (v16i8)hz_out0); | 439 vec0 = (v16u8)__msa_ilvev_b((v16i8)hz_out1, (v16i8)hz_out0); |
| 443 tmp2 = __msa_dotp_u_h(vec0, filt_vt); | 440 tmp2 = __msa_dotp_u_h(vec0, filt_vt); |
| 444 | 441 |
| 445 hz_out0 = HORIZ_2TAP_FILT_UH(src4, src4, mask, filt_hz, FILTER_BITS); | 442 hz_out0 = HORIZ_2TAP_FILT_UH(src4, src4, mask, filt_hz, FILTER_BITS); |
| 446 vec0 = (v16u8)__msa_ilvev_b((v16i8)hz_out0, (v16i8)hz_out1); | 443 vec0 = (v16u8)__msa_ilvev_b((v16i8)hz_out0, (v16i8)hz_out1); |
| 447 tmp3 = __msa_dotp_u_h(vec0, filt_vt); | 444 tmp3 = __msa_dotp_u_h(vec0, filt_vt); |
| 448 | 445 |
| 449 SRARI_H2_UH(tmp2, tmp3, FILTER_BITS); | 446 SRARI_H2_UH(tmp2, tmp3, FILTER_BITS); |
| 450 SAT_UH2_UH(tmp2, tmp3, 7); | |
| 451 LD_UB4(dst, dst_stride, dst0, dst1, dst2, dst3); | 447 LD_UB4(dst, dst_stride, dst0, dst1, dst2, dst3); |
| 452 PCKEV_AVG_ST8x4_UB(tmp0, dst0, tmp1, dst1, tmp2, dst2, tmp3, dst3, | 448 PCKEV_AVG_ST8x4_UB(tmp0, dst0, tmp1, dst1, tmp2, dst2, tmp3, dst3, |
| 453 dst, dst_stride); | 449 dst, dst_stride); |
| 454 dst += (4 * dst_stride); | 450 dst += (4 * dst_stride); |
| 455 } | 451 } |
| 456 } | 452 } |
| 457 | 453 |
| 458 static void common_hv_2ht_2vt_and_aver_dst_8w_msa(const uint8_t *src, | 454 static void common_hv_2ht_2vt_and_aver_dst_8w_msa(const uint8_t *src, |
| 459 int32_t src_stride, | 455 int32_t src_stride, |
| 460 uint8_t *dst, | 456 uint8_t *dst, |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 LD_SB4(src, src_stride, src0, src2, src4, src6); | 500 LD_SB4(src, src_stride, src0, src2, src4, src6); |
| 505 LD_SB4(src + 8, src_stride, src1, src3, src5, src7); | 501 LD_SB4(src + 8, src_stride, src1, src3, src5, src7); |
| 506 src += (4 * src_stride); | 502 src += (4 * src_stride); |
| 507 LD_UB4(dst, dst_stride, dst0, dst1, dst2, dst3); | 503 LD_UB4(dst, dst_stride, dst0, dst1, dst2, dst3); |
| 508 | 504 |
| 509 hz_out1 = HORIZ_2TAP_FILT_UH(src0, src0, mask, filt_hz, FILTER_BITS); | 505 hz_out1 = HORIZ_2TAP_FILT_UH(src0, src0, mask, filt_hz, FILTER_BITS); |
| 510 hz_out3 = HORIZ_2TAP_FILT_UH(src1, src1, mask, filt_hz, FILTER_BITS); | 506 hz_out3 = HORIZ_2TAP_FILT_UH(src1, src1, mask, filt_hz, FILTER_BITS); |
| 511 ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1); | 507 ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1); |
| 512 DOTP_UB2_UH(vec0, vec1, filt_vt, filt_vt, tmp0, tmp1); | 508 DOTP_UB2_UH(vec0, vec1, filt_vt, filt_vt, tmp0, tmp1); |
| 513 SRARI_H2_UH(tmp0, tmp1, FILTER_BITS); | 509 SRARI_H2_UH(tmp0, tmp1, FILTER_BITS); |
| 514 SAT_UH2_UH(tmp0, tmp1, 7); | |
| 515 PCKEV_AVG_ST_UB(tmp1, tmp0, dst0, dst); | 510 PCKEV_AVG_ST_UB(tmp1, tmp0, dst0, dst); |
| 516 dst += dst_stride; | 511 dst += dst_stride; |
| 517 | 512 |
| 518 hz_out0 = HORIZ_2TAP_FILT_UH(src2, src2, mask, filt_hz, FILTER_BITS); | 513 hz_out0 = HORIZ_2TAP_FILT_UH(src2, src2, mask, filt_hz, FILTER_BITS); |
| 519 hz_out2 = HORIZ_2TAP_FILT_UH(src3, src3, mask, filt_hz, FILTER_BITS); | 514 hz_out2 = HORIZ_2TAP_FILT_UH(src3, src3, mask, filt_hz, FILTER_BITS); |
| 520 ILVEV_B2_UB(hz_out1, hz_out0, hz_out3, hz_out2, vec0, vec1); | 515 ILVEV_B2_UB(hz_out1, hz_out0, hz_out3, hz_out2, vec0, vec1); |
| 521 DOTP_UB2_UH(vec0, vec1, filt_vt, filt_vt, tmp0, tmp1); | 516 DOTP_UB2_UH(vec0, vec1, filt_vt, filt_vt, tmp0, tmp1); |
| 522 SRARI_H2_UH(tmp0, tmp1, FILTER_BITS); | 517 SRARI_H2_UH(tmp0, tmp1, FILTER_BITS); |
| 523 SAT_UH2_UH(tmp0, tmp1, 7); | |
| 524 PCKEV_AVG_ST_UB(tmp1, tmp0, dst1, dst); | 518 PCKEV_AVG_ST_UB(tmp1, tmp0, dst1, dst); |
| 525 dst += dst_stride; | 519 dst += dst_stride; |
| 526 | 520 |
| 527 hz_out1 = HORIZ_2TAP_FILT_UH(src4, src4, mask, filt_hz, FILTER_BITS); | 521 hz_out1 = HORIZ_2TAP_FILT_UH(src4, src4, mask, filt_hz, FILTER_BITS); |
| 528 hz_out3 = HORIZ_2TAP_FILT_UH(src5, src5, mask, filt_hz, FILTER_BITS); | 522 hz_out3 = HORIZ_2TAP_FILT_UH(src5, src5, mask, filt_hz, FILTER_BITS); |
| 529 ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1); | 523 ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1); |
| 530 DOTP_UB2_UH(vec0, vec1, filt_vt, filt_vt, tmp0, tmp1); | 524 DOTP_UB2_UH(vec0, vec1, filt_vt, filt_vt, tmp0, tmp1); |
| 531 SRARI_H2_UH(tmp0, tmp1, FILTER_BITS); | 525 SRARI_H2_UH(tmp0, tmp1, FILTER_BITS); |
| 532 SAT_UH2_UH(tmp0, tmp1, 7); | |
| 533 PCKEV_AVG_ST_UB(tmp1, tmp0, dst2, dst); | 526 PCKEV_AVG_ST_UB(tmp1, tmp0, dst2, dst); |
| 534 dst += dst_stride; | 527 dst += dst_stride; |
| 535 | 528 |
| 536 hz_out0 = HORIZ_2TAP_FILT_UH(src6, src6, mask, filt_hz, FILTER_BITS); | 529 hz_out0 = HORIZ_2TAP_FILT_UH(src6, src6, mask, filt_hz, FILTER_BITS); |
| 537 hz_out2 = HORIZ_2TAP_FILT_UH(src7, src7, mask, filt_hz, FILTER_BITS); | 530 hz_out2 = HORIZ_2TAP_FILT_UH(src7, src7, mask, filt_hz, FILTER_BITS); |
| 538 ILVEV_B2_UB(hz_out1, hz_out0, hz_out3, hz_out2, vec0, vec1); | 531 ILVEV_B2_UB(hz_out1, hz_out0, hz_out3, hz_out2, vec0, vec1); |
| 539 DOTP_UB2_UH(vec0, vec1, filt_vt, filt_vt, tmp0, tmp1); | 532 DOTP_UB2_UH(vec0, vec1, filt_vt, filt_vt, tmp0, tmp1); |
| 540 SRARI_H2_UH(tmp0, tmp1, FILTER_BITS); | 533 SRARI_H2_UH(tmp0, tmp1, FILTER_BITS); |
| 541 SAT_UH2_UH(tmp0, tmp1, 7); | |
| 542 PCKEV_AVG_ST_UB(tmp1, tmp0, dst3, dst); | 534 PCKEV_AVG_ST_UB(tmp1, tmp0, dst3, dst); |
| 543 dst += dst_stride; | 535 dst += dst_stride; |
| 544 } | 536 } |
| 545 } | 537 } |
| 546 | 538 |
| 547 static void common_hv_2ht_2vt_and_aver_dst_32w_msa(const uint8_t *src, | 539 static void common_hv_2ht_2vt_and_aver_dst_32w_msa(const uint8_t *src, |
| 548 int32_t src_stride, | 540 int32_t src_stride, |
| 549 uint8_t *dst, | 541 uint8_t *dst, |
| 550 int32_t dst_stride, | 542 int32_t dst_stride, |
| 551 int8_t *filter_horiz, | 543 int8_t *filter_horiz, |
| (...skipping 24 matching lines...) Expand all Loading... |
| 576 } | 568 } |
| 577 } | 569 } |
| 578 | 570 |
| 579 void vpx_convolve8_avg_msa(const uint8_t *src, ptrdiff_t src_stride, | 571 void vpx_convolve8_avg_msa(const uint8_t *src, ptrdiff_t src_stride, |
| 580 uint8_t *dst, ptrdiff_t dst_stride, | 572 uint8_t *dst, ptrdiff_t dst_stride, |
| 581 const int16_t *filter_x, int x_step_q4, | 573 const int16_t *filter_x, int x_step_q4, |
| 582 const int16_t *filter_y, int y_step_q4, | 574 const int16_t *filter_y, int y_step_q4, |
| 583 int w, int h) { | 575 int w, int h) { |
| 584 int8_t cnt, filt_hor[8], filt_ver[8]; | 576 int8_t cnt, filt_hor[8], filt_ver[8]; |
| 585 | 577 |
| 586 if (16 != x_step_q4 || 16 != y_step_q4) { | 578 assert(x_step_q4 == 16); |
| 587 vpx_convolve8_avg_c(src, src_stride, dst, dst_stride, | 579 assert(y_step_q4 == 16); |
| 588 filter_x, x_step_q4, filter_y, y_step_q4, | 580 assert(((const int32_t *)filter_x)[1] != 0x800000); |
| 589 w, h); | 581 assert(((const int32_t *)filter_y)[1] != 0x800000); |
| 590 return; | |
| 591 } | |
| 592 | |
| 593 if (((const int32_t *)filter_x)[1] == 0x800000 && | |
| 594 ((const int32_t *)filter_y)[1] == 0x800000) { | |
| 595 vpx_convolve_avg(src, src_stride, dst, dst_stride, | |
| 596 filter_x, x_step_q4, filter_y, y_step_q4, | |
| 597 w, h); | |
| 598 return; | |
| 599 } | |
| 600 | 582 |
| 601 for (cnt = 0; cnt < 8; ++cnt) { | 583 for (cnt = 0; cnt < 8; ++cnt) { |
| 602 filt_hor[cnt] = filter_x[cnt]; | 584 filt_hor[cnt] = filter_x[cnt]; |
| 603 filt_ver[cnt] = filter_y[cnt]; | 585 filt_ver[cnt] = filter_y[cnt]; |
| 604 } | 586 } |
| 605 | 587 |
| 606 if (((const int32_t *)filter_x)[0] == 0 && | 588 if (((const int32_t *)filter_x)[0] == 0 && |
| 607 ((const int32_t *)filter_y)[0] == 0) { | 589 ((const int32_t *)filter_y)[0] == 0) { |
| 608 switch (w) { | 590 switch (w) { |
| 609 case 4: | 591 case 4: |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 670 filt_hor, filt_ver, h); | 652 filt_hor, filt_ver, h); |
| 671 break; | 653 break; |
| 672 default: | 654 default: |
| 673 vpx_convolve8_avg_c(src, src_stride, dst, dst_stride, | 655 vpx_convolve8_avg_c(src, src_stride, dst, dst_stride, |
| 674 filter_x, x_step_q4, filter_y, y_step_q4, | 656 filter_x, x_step_q4, filter_y, y_step_q4, |
| 675 w, h); | 657 w, h); |
| 676 break; | 658 break; |
| 677 } | 659 } |
| 678 } | 660 } |
| 679 } | 661 } |
| OLD | NEW |