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

Side by Side Diff: include/libyuv/row.h

Issue 2529983002: Add MSA optimized ARGB Multiply/Add/Subtract row functions (Closed)
Patch Set: Corrected patchset files Created 4 years 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 | « no previous file | source/planar_functions.cc » ('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 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 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 #define HAS_I422TOARGBROW_MSA 383 #define HAS_I422TOARGBROW_MSA
384 #define HAS_I422TORGBAROW_MSA 384 #define HAS_I422TORGBAROW_MSA
385 #define HAS_I422ALPHATOARGBROW_MSA 385 #define HAS_I422ALPHATOARGBROW_MSA
386 #define HAS_I422TORGB24ROW_MSA 386 #define HAS_I422TORGB24ROW_MSA
387 #define HAS_ARGBTORGB24ROW_MSA 387 #define HAS_ARGBTORGB24ROW_MSA
388 #define HAS_ARGBTORAWROW_MSA 388 #define HAS_ARGBTORAWROW_MSA
389 #define HAS_ARGBTORGB565ROW_MSA 389 #define HAS_ARGBTORGB565ROW_MSA
390 #define HAS_ARGBTOARGB1555ROW_MSA 390 #define HAS_ARGBTOARGB1555ROW_MSA
391 #define HAS_ARGBTOARGB4444ROW_MSA 391 #define HAS_ARGBTOARGB4444ROW_MSA
392 #define HAS_ARGBTOUV444ROW_MSA 392 #define HAS_ARGBTOUV444ROW_MSA
393 #define HAS_ARGBMULTIPLYROW_MSA
394 #define HAS_ARGBADDROW_MSA
395 #define HAS_ARGBSUBTRACTROW_MSA
393 #endif 396 #endif
394 397
395 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) 398 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__)
396 #if defined(VISUALC_HAS_AVX2) 399 #if defined(VISUALC_HAS_AVX2)
397 #define SIMD_ALIGNED(var) __declspec(align(32)) var 400 #define SIMD_ALIGNED(var) __declspec(align(32)) var
398 #else 401 #else
399 #define SIMD_ALIGNED(var) __declspec(align(16)) var 402 #define SIMD_ALIGNED(var) __declspec(align(16)) var
400 #endif 403 #endif
401 typedef __declspec(align(16)) int16 vec16[8]; 404 typedef __declspec(align(16)) int16 vec16[8];
402 typedef __declspec(align(16)) int32 vec32[4]; 405 typedef __declspec(align(16)) int32 vec32[4];
(...skipping 1399 matching lines...) Expand 10 before | Expand all | Expand 10 after
1802 uint8* dst_argb, 1805 uint8* dst_argb,
1803 int width); 1806 int width);
1804 void ARGBMultiplyRow_NEON(const uint8* src_argb, 1807 void ARGBMultiplyRow_NEON(const uint8* src_argb,
1805 const uint8* src_argb1, 1808 const uint8* src_argb1,
1806 uint8* dst_argb, 1809 uint8* dst_argb,
1807 int width); 1810 int width);
1808 void ARGBMultiplyRow_Any_NEON(const uint8* src_argb, 1811 void ARGBMultiplyRow_Any_NEON(const uint8* src_argb,
1809 const uint8* src_argb1, 1812 const uint8* src_argb1,
1810 uint8* dst_argb, 1813 uint8* dst_argb,
1811 int width); 1814 int width);
1815 void ARGBMultiplyRow_MSA(const uint8* src_argb,
1816 const uint8* src_argb1,
1817 uint8* dst_argb,
1818 int width);
1819 void ARGBMultiplyRow_Any_MSA(const uint8* src_argb,
1820 const uint8* src_argb1,
1821 uint8* dst_argb,
1822 int width);
1812 1823
1813 // ARGB add images. 1824 // ARGB add images.
1814 void ARGBAddRow_C(const uint8* src_argb, 1825 void ARGBAddRow_C(const uint8* src_argb,
1815 const uint8* src_argb1, 1826 const uint8* src_argb1,
1816 uint8* dst_argb, 1827 uint8* dst_argb,
1817 int width); 1828 int width);
1818 void ARGBAddRow_SSE2(const uint8* src_argb, 1829 void ARGBAddRow_SSE2(const uint8* src_argb,
1819 const uint8* src_argb1, 1830 const uint8* src_argb1,
1820 uint8* dst_argb, 1831 uint8* dst_argb,
1821 int width); 1832 int width);
(...skipping 10 matching lines...) Expand all
1832 uint8* dst_argb, 1843 uint8* dst_argb,
1833 int width); 1844 int width);
1834 void ARGBAddRow_NEON(const uint8* src_argb, 1845 void ARGBAddRow_NEON(const uint8* src_argb,
1835 const uint8* src_argb1, 1846 const uint8* src_argb1,
1836 uint8* dst_argb, 1847 uint8* dst_argb,
1837 int width); 1848 int width);
1838 void ARGBAddRow_Any_NEON(const uint8* src_argb, 1849 void ARGBAddRow_Any_NEON(const uint8* src_argb,
1839 const uint8* src_argb1, 1850 const uint8* src_argb1,
1840 uint8* dst_argb, 1851 uint8* dst_argb,
1841 int width); 1852 int width);
1853 void ARGBAddRow_MSA(const uint8* src_argb,
1854 const uint8* src_argb1,
1855 uint8* dst_argb,
1856 int width);
1857 void ARGBAddRow_Any_MSA(const uint8* src_argb,
1858 const uint8* src_argb1,
1859 uint8* dst_argb,
1860 int width);
1842 1861
1843 // ARGB subtract images. Same API as Blend, but these require 1862 // ARGB subtract images. Same API as Blend, but these require
1844 // pointer and width alignment for SSE2. 1863 // pointer and width alignment for SSE2.
1845 void ARGBSubtractRow_C(const uint8* src_argb, 1864 void ARGBSubtractRow_C(const uint8* src_argb,
1846 const uint8* src_argb1, 1865 const uint8* src_argb1,
1847 uint8* dst_argb, 1866 uint8* dst_argb,
1848 int width); 1867 int width);
1849 void ARGBSubtractRow_SSE2(const uint8* src_argb, 1868 void ARGBSubtractRow_SSE2(const uint8* src_argb,
1850 const uint8* src_argb1, 1869 const uint8* src_argb1,
1851 uint8* dst_argb, 1870 uint8* dst_argb,
(...skipping 11 matching lines...) Expand all
1863 uint8* dst_argb, 1882 uint8* dst_argb,
1864 int width); 1883 int width);
1865 void ARGBSubtractRow_NEON(const uint8* src_argb, 1884 void ARGBSubtractRow_NEON(const uint8* src_argb,
1866 const uint8* src_argb1, 1885 const uint8* src_argb1,
1867 uint8* dst_argb, 1886 uint8* dst_argb,
1868 int width); 1887 int width);
1869 void ARGBSubtractRow_Any_NEON(const uint8* src_argb, 1888 void ARGBSubtractRow_Any_NEON(const uint8* src_argb,
1870 const uint8* src_argb1, 1889 const uint8* src_argb1,
1871 uint8* dst_argb, 1890 uint8* dst_argb,
1872 int width); 1891 int width);
1892 void ARGBSubtractRow_MSA(const uint8* src_argb,
1893 const uint8* src_argb1,
1894 uint8* dst_argb,
1895 int width);
1896 void ARGBSubtractRow_Any_MSA(const uint8* src_argb,
1897 const uint8* src_argb1,
1898 uint8* dst_argb,
1899 int width);
1873 1900
1874 void ARGBToRGB24Row_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width); 1901 void ARGBToRGB24Row_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width);
1875 void ARGBToRAWRow_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width); 1902 void ARGBToRAWRow_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width);
1876 void ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int width); 1903 void ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int width);
1877 void ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb, 1904 void ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb,
1878 uint8* dst_rgb, 1905 uint8* dst_rgb,
1879 int width); 1906 int width);
1880 void ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb, 1907 void ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb,
1881 uint8* dst_rgb, 1908 uint8* dst_rgb,
1882 int width); 1909 int width);
(...skipping 749 matching lines...) Expand 10 before | Expand all | Expand 10 after
2632 int width, 2659 int width,
2633 const uint8* luma, 2660 const uint8* luma,
2634 uint32 lumacoeff); 2661 uint32 lumacoeff);
2635 2662
2636 #ifdef __cplusplus 2663 #ifdef __cplusplus
2637 } // extern "C" 2664 } // extern "C"
2638 } // namespace libyuv 2665 } // namespace libyuv
2639 #endif 2666 #endif
2640 2667
2641 #endif // INCLUDE_LIBYUV_ROW_H_ 2668 #endif // INCLUDE_LIBYUV_ROW_H_
OLDNEW
« no previous file with comments | « no previous file | source/planar_functions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698