⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idct_llm.cpp

📁 这是一组DCT和iDCT的代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        psubd           mm6, mm5                                ;p1(19,31)

        psrad           mm4, 9                                  ;p1(19,29)
        paddd           mm6, const_0x2xx8               ;p1(19,32)

        psrad           mm6, 9                                  ;p1(19,33)

        packssdw        mm4, mm6                                ;p1(19,34)
        movq            [esi + 8*8], mm4                ;p1(19,35)

//************************************************************  

        add             edi, 8
        add             ebx, 8
        add             esi, 8
  
//************************************************************  
        /* Pass 1. */
    
        movq            mm0, [ebx + 8*4]        ;p1(1,0)
        pmullw          mm0, [edi + 8*4]        ;p1(1,1)
        
    movq                mm1, [ebx + 8*12]       ;p1(2,0)
        pmullw          mm1, [edi + 8*12]       ;p1(2,1)

        movq            mm6, [ebx + 8*0]        ;p1(5,0)
        pmullw          mm6, [edi + 8*0]        ;p1(5,1)

        movq            mm2, mm0                                ;p1(3,0)
        movq            mm7, [ebx + 8*8]        ;p1(6,0)

        punpcklwd       mm0, mm1                                ;p1(3,1)
        pmullw          mm7, [edi + 8*8]        ;p1(6,1)

        movq            mm4, mm0                                ;p1(3,2)
        punpckhwd       mm2, mm1                                ;p1(3,4)

        pmaddwd         mm0, fix_054n184_054    ;p1(3,3)
        movq            mm5, mm2                                ;p1(3,5)

        pmaddwd         mm2, fix_054n184_054    ;p1(3,6)
        pxor            mm1, mm1        ;p1(7,0)
    
        pmaddwd         mm4, fix_054_054p076            ;p1(4,0)
        punpcklwd   mm1, mm6    ;p1(7,1)

        pmaddwd         mm5, fix_054_054p076            ;p1(4,1)
        psrad           mm1, 3          ;p1(7,2)

        pxor            mm3, mm3        ;p1(7,3)

        punpcklwd       mm3, mm7        ;p1(7,4)
        
        psrad           mm3, 3          ;p1(7,5)
        
        paddd           mm1, mm3        ;p1(7,6)
        
        movq            mm3, mm1        ;p1(7,7)        

        paddd           mm1, mm4        ;p1(7,8)
        
        psubd           mm3, mm4        ;p1(7,9)

        movq            [esi + 8*16], mm1       ;p1(7,10)
        pxor            mm4, mm4        ;p1(7,12)

        movq            [esi + 8*22], mm3       ;p1(7,11)
        punpckhwd       mm4, mm6        ;p1(7,13)

        psrad           mm4, 3          ;p1(7,14)
        pxor            mm1, mm1        ;p1(7,15)
        
        punpckhwd       mm1, mm7        ;p1(7,16)
        
        psrad           mm1, 3          ;p1(7,17)
        
        paddd           mm4, mm1        ;p1(7,18)
        
        movq            mm3, mm4        ;p1(7,19)       
        pxor            mm1, mm1        ;p1(8,0)

        paddd           mm3, mm5        ;p1(7,20)
        punpcklwd       mm1, mm6        ;p1(8,1)

        psubd           mm4, mm5        ;p1(7,21)
        psrad           mm1, 3          ;p1(8,2)

        movq            [esi + 8*17], mm3       ;p1(7,22)
        pxor            mm5, mm5        ;p1(8,3)
        
        movq            [esi + 8*23], mm4       ;p1(7,23)
        punpcklwd       mm5, mm7        ;p1(8,4)

        psrad           mm5, 3          ;p1(8,5)
        pxor            mm4, mm4        ;p1(8,12)

        psubd           mm1, mm5        ;p1(8,6)        
        punpckhwd       mm4, mm6        ;p1(8,13)

        movq            mm3, mm1        ;p1(8,7)
        psrad           mm4, 3          ;p1(8,14)

        paddd           mm1, mm0        ;p1(8,8)
        pxor            mm5, mm5        ;p1(8,15)

        psubd           mm3, mm0        ;p1(8,9)
        movq            mm0, [ebx + 8*14]       ;p1(9,0)

        punpckhwd       mm5, mm7        ;p1(8,16)
        pmullw          mm0, [edi + 8*14]       ;p1(9,1)

        movq            [esi + 8*18], mm1       ;p1(8,10)
        psrad           mm5, 3          ;p1(8,17)

        movq            [esi + 8*20], mm3       ;p1(8,11)
        psubd           mm4, mm5        ;p1(8,18)

        movq            mm3, mm4        ;p1(8,19)
        movq            mm1, [ebx + 8*6]        ;p1(10,0)

        paddd           mm3, mm2        ;p1(8,20)
        pmullw          mm1, [edi + 8*6]        ;p1(10,1)

        psubd           mm4, mm2        ;p1(8,21)
        movq            mm5, mm0                        ;p1(11,1)

        movq            [esi + 8*21], mm4       ;p1(8,23)

        movq            [esi + 8*19], mm3       ;p1(8,22)
        movq            mm4, mm0                        ;p1(11,0)

        punpcklwd       mm4, mm1                        ;p1(11,2)
        movq            mm2, [ebx + 8*10]       ;p1(12,0)

        punpckhwd       mm5, mm1                        ;p1(11,4)       
        pmullw          mm2, [edi + 8*10]       ;p1(12,1)

        movq            mm3, [ebx + 8*2]        ;p1(13,0)

        pmullw          mm3, [edi + 8*2]        ;p1(13,1)
        movq            mm6, mm2                        ;p1(14,0)

        pmaddwd         mm4, fix_117_117        ;p1(11,3)
        movq            mm7, mm2                        ;p1(14,1)
        
        pmaddwd         mm5, fix_117_117        ;p1(11,5)
        punpcklwd       mm6, mm3                        ;p1(14,2)

        pmaddwd         mm6, fix_117_117        ;p1(14,3)
        punpckhwd       mm7, mm3                        ;p1(14,4)
        
        pmaddwd         mm7, fix_117_117        ;p1(14,5)
        paddd           mm4, mm6                        ;p1(15,0)

        paddd           mm5, mm7                        ;p1(15,1)
        movq            [esi+8*24], mm4         ;p1(15,2)

        movq            [esi+8*25], mm5         ;p1(15,3)
        movq            mm6, mm0                                ;p1(16,0)

        movq            mm7, mm3                                ;p1(16,3)
        punpcklwd       mm6, mm2                                ;p1(16,1)
        
        punpcklwd       mm7, mm3                                ;p1(16,4)
        pmaddwd         mm6, fix_n039_n089              ;p1(16,2)

        pmaddwd         mm7, fix_150_n089n039   ;p1(16,5)
        movq            mm4, mm0                                ;p1(16,12)

        paddd           mm6, [esi+8*24]                 ;p1(16,6)
        punpckhwd       mm4, mm2                                ;p1(16,13)

        paddd           mm6, mm7                                ;p1(16,7)
        pmaddwd         mm4, fix_n039_n089              ;p1(16,14)

        movq            mm7, mm6                                ;p1(16,8)
        paddd           mm4, [esi+8*25]                 ;p1(16,18)

        movq            mm5, mm3                                ;p1(16,15)
        paddd           mm6, [esi + 8*16]               ;p1(16,9)

        punpckhwd       mm5, mm3                                ;p1(16,16)
        paddd           mm6, const_0x2xx8               ;p1(16,10)
        
        psrad           mm6, 9                                  ;p1(16,11)
        pmaddwd         mm5, fix_150_n089n039   ;p1(16,17)

        paddd           mm4, mm5                                ;p1(16,19)

        movq            mm5, mm4                                ;p1(16,20)

        paddd           mm4, [esi + 8*17]               ;p1(16,21)
        
        paddd           mm4, const_0x2xx8               ;p1(16,22)
        
        psrad           mm4, 9                                  ;p1(16,23)

        packssdw        mm6, mm4                                ;p1(16,24)
        
        movq            [esi + 8*0], mm6                ;p1(16,25)
                
        movq            mm4, [esi + 8*16]               ;p1(16,26)
        
        psubd           mm4, mm7                                ;p1(16,27)
        movq            mm6, [esi + 8*17]               ;p1(16,30)
        
        paddd           mm4, const_0x2xx8               ;p1(16,28)
        movq            mm7, mm1                                ;p1(17,3)

        psrad           mm4, 9                                  ;p1(16,29)
        psubd           mm6, mm5                                ;p1(16,31)

        paddd           mm6, const_0x2xx8               ;p1(16,32)
        punpcklwd       mm7, mm1                                ;p1(17,4)

        pmaddwd         mm7, fix_307n256_n196   ;p1(17,5)
        psrad           mm6, 9                                  ;p1(16,33)

        packssdw        mm4, mm6                                ;p1(16,34)
        movq            [esi + 8*14], mm4               ;p1(16,35)

        movq            mm6, mm0                                ;p1(17,0)
        movq            mm4, mm0                                ;p1(17,12)

        punpcklwd       mm6, mm2                                ;p1(17,1)
        punpckhwd       mm4, mm2                                ;p1(17,13)
        
        pmaddwd         mm6, fix_n256_n196              ;p1(17,2)
        movq            mm5, mm1                                ;p1(17,15)

        paddd           mm6, [esi+8*24]                 ;p1(17,6)
        punpckhwd       mm5, mm1                                ;p1(17,16)
        
        paddd           mm6, mm7                                ;p1(17,7)
        pmaddwd         mm4, fix_n256_n196              ;p1(17,14)

        movq            mm7, mm6                                ;p1(17,8)
        pmaddwd         mm5, fix_307n256_n196   ;p1(17,17)
        
        paddd           mm6, [esi + 8*18]               ;p1(17,9)
        
        paddd           mm6, const_0x2xx8               ;p1(17,10)
        
        psrad           mm6, 9                                  ;p1(17,11)
        paddd           mm4, [esi+8*25]                 ;p1(17,18)

        paddd           mm4, mm5                                ;p1(17,19)

        movq            mm5, mm4                                ;p1(17,20)
        
        paddd           mm4, [esi + 8*19]               ;p1(17,21)
        
        paddd           mm4, const_0x2xx8               ;p1(17,22)
        
        psrad           mm4, 9                                  ;p1(17,23)

        packssdw        mm6, mm4                                ;p1(17,24)
        
        movq            [esi + 8*2], mm6                ;p1(17,25)
        
        movq            mm4, [esi + 8*18]               ;p1(17,26)

        movq            mm6, [esi + 8*19]               ;p1(17,30)
        psubd           mm4, mm7                                ;p1(17,27)
        
        paddd           mm4, const_0x2xx8               ;p1(17,28)
        psubd           mm6, mm5                                ;p1(17,31)

        psrad           mm4, 9                                  ;p1(17,29)
        paddd           mm6, const_0x2xx8               ;p1(17,32)

        psrad           mm6, 9                                  ;p1(17,33)
        movq            mm7, mm2                                ;p1(18,3)

        packssdw        mm4, mm6                                ;p1(17,34)
        movq            [esi + 8*12], mm4               ;p1(17,35)

        movq            mm6, mm1                                ;p1(18,0)
        punpcklwd       mm7, mm2                                ;p1(18,4)

        punpcklwd       mm6, mm3                                ;p1(18,1)
        pmaddwd         mm7, fix_205_n256n039   ;p1(18,5)

        pmaddwd         mm6, fix_n039_n256              ;p1(18,2)
        movq            mm4, mm1                                ;p1(18,12)

        paddd           mm6, [esi+8*24]                 ;p1(18,6)
        punpckhwd       mm4, mm3                                ;p1(18,13)

        paddd           mm6, mm7                                ;p1(18,7)
        pmaddwd         mm4, fix_n039_n256              ;p1(18,14)

        movq            mm7, mm6                                ;p1(18,8)
        movq            mm5, mm2                                ;p1(18,15)

        paddd           mm6, [esi + 8*20]               ;p1(18,9)
        punpckhwd       mm5, mm2                                ;p1(18,16)
        
        paddd           mm6, const_0x2xx8               ;p1(18,10)
        
        psrad           mm6, 9                                  ;p1(18,11)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -