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

📄 interpolate_sse2.asm

📁 T264是中国在JM系列和X264的基础上寻找的新的H264编程途径
💻 ASM
📖 第 1 页 / 共 2 页
字号:
    pop edi
    pop esi
    pop ebx

    ret

;======================================================
;
; void 
; T264_pia_u_4x8_mmx(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_4x8_mmx
T264_pia_u_4x8_mmx    
    push ebx
    push esi
    push edi
   
    mov esi, [esp + 4 + 12]     ; p1 
    mov ebx, [esp + 8 + 12]		; p2
	mov	eax, [esp + 12 + 12]    ; 
	mov	edx, [esp + 16 + 12]    ; 
	mov	edi, [esp + 20 + 12]    ; 
	mov	ecx, [esp + 24 + 12]    ; 

	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx

	EMMS

    pop edi
    pop esi
    pop ebx

    ret

;======================================================
;
; void 
; T264_pia_u_8x4_sse(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_8x4_sse
T264_pia_u_8x4_sse    
    push ebx
    push esi
    push edi
   
    mov esi, [esp + 4 + 12]     ; p1 
    mov ebx, [esp + 8 + 12]		; p2
	mov	eax, [esp + 12 + 12]    ; 
	mov	edx, [esp + 16 + 12]    ; 
	mov	edi, [esp + 20 + 12]    ; 
	mov	ecx, [esp + 24 + 12]    ; 

	pia8b_sse	esi , ebx , eax , edx , edi , ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx

    pop edi
    pop esi
    pop ebx

    ret

;======================================================
;
; void 
; T264_pia_u_8x8_sse(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_8x8_sse
T264_pia_u_8x8_sse    
    push ebx
    push esi
    push edi
   
    mov esi, [esp + 4 + 12]     ; p1 
    mov ebx, [esp + 8 + 12]		; p2
	mov	eax, [esp + 12 + 12]    ; 
	mov	edx, [esp + 16 + 12]    ; 
	mov	edi, [esp + 20 + 12]    ; 
	mov	ecx, [esp + 24 + 12]    ; 

	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx

    pop edi
    pop esi
    pop ebx

    ret

;======================================================
;
; void 
; T264_pia_u_8x16_sse(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_8x16_sse
T264_pia_u_8x16_sse    
    push ebx
    push esi
    push edi
   
    mov esi, [esp + 4 + 12]     ; p1 
    mov ebx, [esp + 8 + 12]		; p2
	mov	eax, [esp + 12 + 12]    ; 
	mov	edx, [esp + 16 + 12]    ; 
	mov	edi, [esp + 20 + 12]    ; 
	mov	ecx, [esp + 24 + 12]    ; 

	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx

    pop edi
    pop esi
    pop ebx

    ret

;======================================================
;
; void 
; T264_pia_u_16x8_sse(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_16x8_sse
T264_pia_u_16x8_sse    
    push ebx
    push esi
    push edi
   
    mov esi, [esp + 4 + 12]     ; p1 
    mov ebx, [esp + 8 + 12]		; p2
	mov	eax, [esp + 12 + 12]    ; 
	mov	edx, [esp + 16 + 12]    ; 
	mov	edi, [esp + 20 + 12]    ; 
	mov	ecx, [esp + 24 + 12]    ; 

	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx

    pop edi
    pop esi
    pop ebx

    ret

;======================================================
;
; void 
; T264_pia_u_16x16_sse(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_16x16_sse
T264_pia_u_16x16_sse    
    push ebx
    push esi
    push edi
   
    mov esi, [esp + 4 + 12]     ; p1 
    mov ebx, [esp + 8 + 12]		; p2
	mov	eax, [esp + 12 + 12]    ; 
	mov	edx, [esp + 16 + 12]    ; 
	mov	edi, [esp + 20 + 12]    ; 
	mov	ecx, [esp + 24 + 12]    ; 

	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx

    pop edi
    pop esi
    pop ebx

    ret
    
;======================================================
;
; void 
; T264_pia_u_16x16_sse2(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_16x16_sse2
T264_pia_u_16x16_sse2

    push ebx
    push esi
    push edi
    
    mov eax, [esp + 4 + 12] ; p1
    mov ecx, [esp + 8 + 12] ; p2
    mov ebx, [esp + 12+ 12] ; p1_stride
    mov edx, [esp + 16+ 12] ; p2_stride
    mov esi, [esp + 20+ 12] ; dst
    mov edi, [esp + 24+ 12] ; dst_stride
    
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    
    pop edi
    pop esi
    pop ebx
    
    ret    
    
;======================================================
;
; void 
; T264_pia_u_16x8_sse2(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_16x8_sse2
T264_pia_u_16x8_sse2

    push ebx
    push esi
    push edi
    
    mov eax, [esp + 4 + 12] ; p1
    mov ecx, [esp + 8 + 12] ; p2
    mov ebx, [esp + 12+ 12] ; p1_stride
    mov edx, [esp + 16+ 12] ; p2_stride
    mov esi, [esp + 20+ 12] ; dst
    mov edi, [esp + 24+ 12] ; dst_stride
    
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    
    pop edi
    pop esi
    pop ebx
    
    ret    

⌨️ 快捷键说明

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