[x265] [PATCH Review Only] asm: chroma_hpp[4x4] for colorspace i420 in avx2 improve 217c->192c

chen chenm003 at 163.com
Wed Dec 10 23:02:32 CET 2014


its right, just a little improve advice in below

At 2014-12-10 18:59:21,aasaipriya at multicorewareinc.com wrote:
># HG changeset patch
># User Aasaipriya Chandran aasaipriya at multicorewareinc.com>
># Date 1418209141 -19800
>#      Wed Dec 10 16:29:01 2014 +0530
># Node ID 0afb5685cab0ea8a12164d64684d599d5cfe3678
># Parent  29489f2fc2c7edfeb56bb0f6421d19f14d25491a
>asm: chroma_hpp[4x4] for colorspace i420 in avx2 improve 217c->192c
>
diff -r 29489f2fc2c7 -r 0afb5685cab0 source/common/x86/ipfilter8.asm
>--- a/source/common/x86/ipfilter8.asm	Tue Dec 09 12:54:40 2014 -0600
>+++ b/source/common/x86/ipfilter8.asm	Wed Dec 10 16:29:01 2014 +0530
>@@ -179,6 +179,8 @@
> 
> const interp4_shuf, times 2 db 0, 1, 8, 9, 4, 5, 12, 13, 2, 3, 10, 11, 6, 7, 14, 15
> 
>+interp4_hpp_shuf:  times 2  db 0, 1, 2, 3, 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6

we can reuse tab_Tm with vpbroadcast
>+
> SECTION .text
> 
> cextern pb_128
>@@ -1403,6 +1405,51 @@
>     jnz               .loop
>     RET
> 
>+INIT_YMM avx2 
>+cglobal interp_4tap_horiz_pp_4x4, 4,6,6
>+    mov             r4d, r4m
>+
>+%ifdef PIC
>+    lea               r5,           [tab_ChromaCoeff]
>+    vpbroadcastd      m0,           [r5 + r4 * 4]
>+%else
>+    vpbroadcastd      m0,           [tab_ChromaCoeff + r4 * 4]
>+%endif
>+    vpbroadcastd      m2,           [pw_1]
>+
>+    ; register map
>+    ; m0 - interpolate coeff
>+    ; m1 - shuffle order table
>+    ; m2 - constant word 1
>+
>+    dec                r0
>+
>+    ; Row 0-1
>+    vbroadcasti128    m3,           [r0]                        ; [x x x x x A 9 8 7 6 5 4 3 2 1 0]
>+    vinserti128       m3,           m3,    [r0 + r1],     1
>+    pshufb            m3,           [interp4_hpp_shuf]
>+    pmaddubsw         m3,           m0
>+    pmaddwd           m3,           m2
>+
>+    ; Row 2-3
>+    lea               r0,           [r0 + r1 * 2]
>+    vbroadcasti128    m4,           [r0]                      ; [x x x x x A 9 8 7 6 5 4 3 2 1 0]
>+    vinserti128       m4,           m4,      [r0 + r1],     1
>+    pshufb            m4,           [interp4_hpp_shuf]
>+    pmaddubsw         m4,           m0
>+    pmaddwd           m4,           m2
>+
>+    packssdw          m3,           m4
>+    pmulhrsw          m3,           [pw_512]
>+    vextracti128      xm4,          m3,     1
>+    packuswb          xm3,          xm4
>+    lea               r0,           [r3 * 3]
>+    movd              [r2],         xm3
>+    pextrd            [r2+r3],      xm3,     2
>+    pextrd            [r2+r3*2],    xm3,     1
>+    pextrd            [r2+r0],      xm3,     3
>+    RET
>+
> ;--------------------------------------------------------------------------------------------------------------
> ; void interp_8tap_horiz_pp_%1x%2(pixel *src, intptr_t srcStride, pixel *dst, intptr_t dstStride, int coeffIdx)
> ;--------------------------------------------------------------------------------------------------------------
>_______________________________________________
>x265-devel mailing list
>x265-devel at videolan.org
>https://mailman.videolan.org/listinfo/x265-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20141211/b000c20d/attachment-0001.html>


More information about the x265-devel mailing list