[x265] [PATCH] asm: pixel_avg_64x(64,48,16)

dnyaneshwar at multicorewareinc.com dnyaneshwar at multicorewareinc.com
Tue Nov 12 06:34:24 CET 2013


# HG changeset patch
# User Dnyaneshwar Gorade <dnyaneshwar at multicorewareinc.com>
# Date 1384234422 -19800
#      Tue Nov 12 11:03:42 2013 +0530
# Node ID 6f9fed5e65e39a362904090b6de449a4854b147a
# Parent  3a959b3acee23d60e96d2261a6c10207c1b7347c
asm: pixel_avg_64x(64,48,16)

diff -r 3a959b3acee2 -r 6f9fed5e65e3 source/common/x86/asm-primitives.cpp
--- a/source/common/x86/asm-primitives.cpp	Tue Nov 12 10:25:21 2013 +0530
+++ b/source/common/x86/asm-primitives.cpp	Tue Nov 12 11:03:42 2013 +0530
@@ -118,6 +118,9 @@
     p.sa8d_inter[LUMA_16x64] = cmp < 16, 64, 16, 16, x265_pixel_sa8d_16x16_ ## cpu >
 
 #define PIXEL_AVG(cpu) \
+    p.pixelavg_pp[LUMA_64x64] = x265_pixel_avg_64x64_ ## cpu; \
+    p.pixelavg_pp[LUMA_64x48] = x265_pixel_avg_64x48_ ## cpu; \
+    p.pixelavg_pp[LUMA_64x16] = x265_pixel_avg_64x16_ ## cpu; \
     p.pixelavg_pp[LUMA_32x64] = x265_pixel_avg_32x64_ ## cpu; \
     p.pixelavg_pp[LUMA_32x32] = x265_pixel_avg_32x32_ ## cpu; \
     p.pixelavg_pp[LUMA_32x24] = x265_pixel_avg_32x24_ ## cpu; \
diff -r 3a959b3acee2 -r 6f9fed5e65e3 source/common/x86/mc-a.asm
--- a/source/common/x86/mc-a.asm	Tue Nov 12 10:25:21 2013 +0530
+++ b/source/common/x86/mc-a.asm	Tue Nov 12 11:03:42 2013 +0530
@@ -237,6 +237,7 @@
 AVG_WEIGHT 8
 AVG_WEIGHT 16
 AVG_WEIGHT 32
+AVG_WEIGHT 64
 %if HIGH_BIT_DEPTH
 INIT_XMM sse2
 AVG_WEIGHT 4,  8
@@ -247,6 +248,7 @@
 AVG_WEIGHT 8,  7
 AVG_WEIGHT 16, 7
 AVG_WEIGHT 32, 7
+AVG_WEIGHT 64, 7
 %define BIWEIGHT BIWEIGHT_SSSE3
 %define BIWEIGHT_START BIWEIGHT_START_SSSE3
 INIT_MMX ssse3
@@ -255,6 +257,7 @@
 AVG_WEIGHT 8,  7
 AVG_WEIGHT 16, 7
 AVG_WEIGHT 32, 7
+AVG_WEIGHT 64, 7
 
 INIT_YMM avx2
 cglobal pixel_avg_weight_w16
@@ -732,7 +735,17 @@
 AVGH 32, 16
 AVGH 32, 8
 
+AVG_FUNC 64, movq, movq
+AVGH 64, 64
+AVGH 64, 48
+AVGH 64, 16
+
 INIT_XMM sse2
+AVG_FUNC 64, movdqu, movdqa
+AVGH 64, 64
+AVGH 64, 48
+AVGH 64, 16
+
 AVG_FUNC 32, movdqu, movdqa
 AVGH 32, 64
 AVGH 32, 32
@@ -751,6 +764,10 @@
 AVGH  8,  8
 AVGH  8,  4
 INIT_XMM ssse3
+AVGH 64, 64
+AVGH 64, 48
+AVGH 64, 16
+
 AVGH 32, 64
 AVGH 32, 32
 AVGH 32, 24
@@ -773,6 +790,11 @@
 AVGH  4,  2
 INIT_XMM avx2
 ; TODO: active AVX2 after debug
+;AVG_FUNC 64, movdqu, movdqa
+;AVGH 64, 64
+;AVGH 64, 48
+;AVGH 64, 16
+
 ;AVG_FUNC 32, movdqu, movdqa
 ;AVGH 32, 64
 ;AVGH 32, 32
diff -r 3a959b3acee2 -r 6f9fed5e65e3 source/common/x86/pixel.h
--- a/source/common/x86/pixel.h	Tue Nov 12 10:25:21 2013 +0530
+++ b/source/common/x86/pixel.h	Tue Nov 12 11:03:42 2013 +0530
@@ -238,6 +238,9 @@
     void func ## _mmx2 args; \
     void func ## _sse2 args; \
     void func ## _ssse3 args;
+DECL_SUF(x265_pixel_avg_64x64, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))
+DECL_SUF(x265_pixel_avg_64x48, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))
+DECL_SUF(x265_pixel_avg_64x16, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))
 DECL_SUF(x265_pixel_avg_32x64, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))
 DECL_SUF(x265_pixel_avg_32x32, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))
 DECL_SUF(x265_pixel_avg_32x24, (pixel *, intptr_t, pixel *, intptr_t, pixel *, intptr_t, int))


More information about the x265-devel mailing list