| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. | 2 * Copyright 2011 The LibYuv 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 |
| (...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 652 sum += src_ptr[x]; | 652 sum += src_ptr[x]; |
| 653 } | 653 } |
| 654 return sum; | 654 return sum; |
| 655 } | 655 } |
| 656 | 656 |
| 657 static void ScaleAddCols2_C(int dst_width, int boxheight, int x, int dx, | 657 static void ScaleAddCols2_C(int dst_width, int boxheight, int x, int dx, |
| 658 const uint16* src_ptr, uint8* dst_ptr) { | 658 const uint16* src_ptr, uint8* dst_ptr) { |
| 659 int i; | 659 int i; |
| 660 int scaletbl[2]; | 660 int scaletbl[2]; |
| 661 int minboxwidth = dx >> 16; | 661 int minboxwidth = dx >> 16; |
| 662 int* scaleptr = scaletbl - minboxwidth; | |
| 663 int boxwidth; | 662 int boxwidth; |
| 664 scaletbl[0] = 65536 / (MIN1(minboxwidth) * boxheight); | 663 scaletbl[0] = 65536 / (MIN1(minboxwidth) * boxheight); |
| 665 scaletbl[1] = 65536 / (MIN1(minboxwidth + 1) * boxheight); | 664 scaletbl[1] = 65536 / (MIN1(minboxwidth + 1) * boxheight); |
| 666 for (i = 0; i < dst_width; ++i) { | 665 for (i = 0; i < dst_width; ++i) { |
| 667 int ix = x >> 16; | 666 int ix = x >> 16; |
| 668 x += dx; | 667 x += dx; |
| 669 boxwidth = MIN1((x >> 16) - ix); | 668 boxwidth = MIN1((x >> 16) - ix); |
| 670 *dst_ptr++ = SumPixels(boxwidth, src_ptr + ix) * scaleptr[boxwidth] >> 16; | 669 *dst_ptr++ = SumPixels(boxwidth, src_ptr + ix) * |
| 670 scaletbl[boxwidth - minboxwidth] >> 16; |
| 671 } | 671 } |
| 672 } | 672 } |
| 673 | 673 |
| 674 static void ScaleAddCols2_16_C(int dst_width, int boxheight, int x, int dx, | 674 static void ScaleAddCols2_16_C(int dst_width, int boxheight, int x, int dx, |
| 675 const uint32* src_ptr, uint16* dst_ptr) { | 675 const uint32* src_ptr, uint16* dst_ptr) { |
| 676 int i; | 676 int i; |
| 677 int scaletbl[2]; | 677 int scaletbl[2]; |
| 678 int minboxwidth = dx >> 16; | 678 int minboxwidth = dx >> 16; |
| 679 int* scaleptr = scaletbl - minboxwidth; | |
| 680 int boxwidth; | 679 int boxwidth; |
| 681 scaletbl[0] = 65536 / (MIN1(minboxwidth) * boxheight); | 680 scaletbl[0] = 65536 / (MIN1(minboxwidth) * boxheight); |
| 682 scaletbl[1] = 65536 / (MIN1(minboxwidth + 1) * boxheight); | 681 scaletbl[1] = 65536 / (MIN1(minboxwidth + 1) * boxheight); |
| 683 for (i = 0; i < dst_width; ++i) { | 682 for (i = 0; i < dst_width; ++i) { |
| 684 int ix = x >> 16; | 683 int ix = x >> 16; |
| 685 x += dx; | 684 x += dx; |
| 686 boxwidth = MIN1((x >> 16) - ix); | 685 boxwidth = MIN1((x >> 16) - ix); |
| 687 *dst_ptr++ = | 686 *dst_ptr++ = SumPixels_16(boxwidth, src_ptr + ix) * |
| 688 SumPixels_16(boxwidth, src_ptr + ix) * scaleptr[boxwidth] >> 16; | 687 scaletbl[boxwidth - minboxwidth] >> 16; |
| 689 } | 688 } |
| 690 } | 689 } |
| 691 | 690 |
| 692 static void ScaleAddCols0_C(int dst_width, int boxheight, int x, int, | 691 static void ScaleAddCols0_C(int dst_width, int boxheight, int x, int, |
| 693 const uint16* src_ptr, uint8* dst_ptr) { | 692 const uint16* src_ptr, uint8* dst_ptr) { |
| 694 int scaleval = 65536 / boxheight; | 693 int scaleval = 65536 / boxheight; |
| 695 int i; | 694 int i; |
| 696 src_ptr += (x >> 16); | 695 src_ptr += (x >> 16); |
| 697 for (i = 0; i < dst_width; ++i) { | 696 for (i = 0; i < dst_width; ++i) { |
| 698 *dst_ptr++ = src_ptr[i] * scaleval >> 16; | 697 *dst_ptr++ = src_ptr[i] * scaleval >> 16; |
| (...skipping 965 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1664 dst_u, dst_halfwidth, | 1663 dst_u, dst_halfwidth, |
| 1665 dst_v, dst_halfwidth, | 1664 dst_v, dst_halfwidth, |
| 1666 dst_width, aheight, | 1665 dst_width, aheight, |
| 1667 interpolate ? kFilterBox : kFilterNone); | 1666 interpolate ? kFilterBox : kFilterNone); |
| 1668 } | 1667 } |
| 1669 | 1668 |
| 1670 #ifdef __cplusplus | 1669 #ifdef __cplusplus |
| 1671 } // extern "C" | 1670 } // extern "C" |
| 1672 } // namespace libyuv | 1671 } // namespace libyuv |
| 1673 #endif | 1672 #endif |
| OLD | NEW |