[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