亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? interpolate_sse2.asm

?? H264EncPlayer,H264協議解碼與播放代碼
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;/*****************************************************************************
; *
; *  T264 AVC CODEC
; *
; *  Copyright(C) 2004-2005 llcc <lcgate1@yahoo.com.cn>
; *               2004-2005 visionany <visionany@yahoo.com.cn>
; *		2005.1.13	CloudWu	Add function T264_pia_u_wxh_mmx/sse
; *
; *  This program is free software ; you can redistribute it and/or modify
; *  it under the terms of the GNU General Public License as published by
; *  the Free Software Foundation ; either version 2 of the License, or
; *  (at your option) any later version.
; *
; *  This program is distributed in the hope that it will be useful,
; *  but WITHOUT ANY WARRANTY ; without even the implied warranty of
; *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
; *  GNU General Public License for more details.
; *
; *  You should have received a copy of the GNU General Public License
; *  along with this program ; if not, write to the Free Software
; *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
; *
; ****************************************************************************/

bits 32

; ideal from xvid
; modify by Thomascatlee@163.com
; for GCC
%macro cglobal 1
	%ifdef NOPREFIX
		global %1
	%else
		global _%1
		%define %1 _%1
	%endif
%endmacro

section .rodata data align=16

align 16
    sse2_20 times 8 dw 20
    sse2_5n times 8 dw -5
    sse2_16 times 8 dw 16

section .text

;======================================================
;
; void
; interpolate_halfpel_h_sse2(uint8_t* src, int32_t src_stride, uint8_t* dst, int32_t dst_stride, int32_t width, int32_t height)
;
;======================================================
align 16

cglobal interpolate_halfpel_h_sse2
interpolate_halfpel_h_sse2
    
    push ebx
    push esi
    push edi
    push ebp
    
    mov esi, [esp + 16 + 4]     ; src
    mov eax, [esp + 16 + 8]     ; src_stride
    mov edi, [esp + 16 + 12]    ; dst
    mov ebx, [esp + 16 + 16]    ; dst_stride
    mov ebp, [esp + 16 + 20]    ; width
    
    pxor xmm7, xmm7
    xor edx, edx

.looprow

    xor ecx, ecx

.loopcol

    movq xmm4, [esi + ecx - 2]    ; src - 2
    movq xmm5, [esi + ecx - 1]    ; src - 1
    movq xmm0, [esi + ecx + 0]    ; src
    movq xmm1, [esi + ecx + 1]    ; src + 1
    movq xmm2, [esi + ecx + 2]    ; src + 2
    movq xmm3, [esi + ecx + 3]    ; src + 3
    
    punpcklbw xmm5, xmm7          ; src - 1
    punpcklbw xmm4, xmm7          ; src - 2
    punpcklbw xmm0, xmm7          ; src
    punpcklbw xmm1, xmm7          ; src + 1
    punpcklbw xmm2, xmm7          ; src + 2
    punpcklbw xmm3, xmm7          ; src + 3

    paddw  xmm4, [sse2_16]        ; (src - 2) + 16

    paddw  xmm5, xmm2             ; (src - 1) + (src + 2)
    paddw  xmm0, xmm1             ; (src + 0) + (src + 1)
    
    pmullw xmm5, [sse2_5n]        ; ((src - 1) + (src + 2)) * -5
    pmullw xmm0, [sse2_20]        ; ((src + 0) + (src + 1)) * 20

    paddw  xmm4, xmm3             ; (src - 2) + (src + 3)
    paddw  xmm4, xmm5             ;                       - 5 * (src - 1)
    paddw  xmm0, xmm4             ; all
    
    psraw  xmm0, 5
    
    ; pack
    packuswb xmm0, xmm0
    movq [edi + ecx], xmm0
    
    add ecx, 8
    cmp ecx, ebp
    jl .loopcol
    inc edx
    add esi, eax
    add edi, ebx
    cmp edx, [esp + 16 + 24]    ; height
    jl .looprow
    
    pop ebp
    pop edi
    pop esi
    pop ebx
    
    ret

;======================================================
;
; void
; interpolate_halfpel_v_sse2(uint8_t* src, int32_t src_stride, uint8_t* dst, int32_t dst_stride, int32_t width, int32_t height)
;
;======================================================

align 16

cglobal interpolate_halfpel_v_sse2
interpolate_halfpel_v_sse2
    
    push ebx
    push esi
    push edi
    push ebp
    
    mov esi, [esp + 16 + 4]     ; src
    mov eax, [esp + 16 + 8]     ; src_stride
    mov edi, [esp + 16 + 12]    ; dst
    mov ebp, [esp + 16 + 20]    ; width
    
    pxor xmm7, xmm7
    xor edx, edx

.looprow

    xor ebx, ebx

.loopcol
    
    lea  ecx, [esi + ebx]
    movq xmm0, [ecx]    ; src
    sub  ecx, eax
    movq xmm4, [ecx]    ; src - stride
    sub  ecx, eax
    movq xmm5, [ecx]    ; src - 2 * stride
    lea  ecx, [esi + eax]
    add  ecx, ebx
    movq xmm1, [ecx]    ; src + stride
    add  ecx, eax
    movq xmm2, [ecx]    ; src + 2 * stride
    add  ecx, eax
    movq xmm3, [ecx]    ; src + 3 * stride

    punpcklbw xmm0, xmm7          ; src
    punpcklbw xmm4, xmm7          ; src - 1
    punpcklbw xmm5, xmm7          ; src - 2
    punpcklbw xmm1, xmm7          ; src + 1
    punpcklbw xmm2, xmm7          ; src + 2
    punpcklbw xmm3, xmm7          ; src + 3

    paddw  xmm5, [sse2_16]        ; (src - 2) + 16

    paddw  xmm4, xmm2             ; (src - 1) + (src + 2)
    paddw  xmm0, xmm1             ; (src + 0) + (src + 1)
    
    pmullw xmm4, [sse2_5n]        ; ((src - 1) + (src + 2)) * -5
    pmullw xmm0, [sse2_20]        ; ((src + 0) + (src + 1)) * 20

    paddw  xmm5, xmm3             ; (src - 2) + (src + 3)
    paddw  xmm5, xmm4             ;                       - 5 * (src - 1)
    paddw  xmm0, xmm5             ; all
    
    psraw  xmm0, 5
    
    ; pack
    packuswb xmm0, xmm0
    movq [edi + ebx], xmm0
    
    add ebx, 8
    cmp ebx, ebp
    jl .loopcol
    inc edx
    add esi, eax
    add edi, [esp + 16 + 16]
    cmp edx, [esp + 16 + 24]    ; height
    jl .looprow
    
    pop ebp
    pop edi
    pop esi
    pop ebx
    
    ret

;======================================================
;
; void
; interpolate_halfpel_hv_sse2(uint8_t* src, int32_t src_stride, uint8_t* dst, int32_t dst_stride, int32_t width, int32_t height)
;
;======================================================

align 16

cglobal interpolate_halfpel_hv_sse2
interpolate_halfpel_hv_sse2
    
    ret
    

;=======================PIA=================================
%macro new_pia16b_sse2 0
    movdqu  xmm0, [eax] ; p1
    movdqu  xmm1, [eax + ebx] ;
    lea eax, [eax+2*ebx]
    
    movdqu  xmm5, [ecx] ; p2
    movdqu  xmm6, [ecx + edx];
    lea ecx, [ecx+2*edx]

    pavgb	xmm0, xmm5
    pavgb   xmm1, xmm6
    
    movdqa  [esi], xmm0
    movdqa  [esi + edi], xmm1
    
    lea esi, [esi+2*edi]
%endmacro

; %1 = src1, %2 = src2, %3 = src1_stride, %4 = src2_stride, %5 = dst, %6 = dst stride
%macro pia16b_sse 6
    movq	mm0, [%1]
    movq	mm1, [%2]
    pavgb	mm0,mm1
	movq	[%5],mm0

    movq	mm0, [%1 + 8]
    movq	mm1, [%2 + 8]
    pavgb	mm0,mm1
	movq	[%5 + 8],mm0

	add		%1,%3
	add		%2,%4
	add		%5,%6    
%endmacro

; %1 = src1, %2 = src2, %3 = src1_stride, %4 = src2_stride, %5 = dst, %6 = dst stride
%macro pia8b_sse 6
    movq	mm0, [%1]
    movq	mm1, [%2]
    pavgb	mm0,mm1
	movq	[%5],mm0
	add		%1,%3
	add		%2,%4
	add		%5,%6    
%endmacro

; %1 = src1, %2 = src2, %3 = src1_stride, %4 = src2_stride, %5 = dst, %6 = dst stride
%macro pia4b_mmx 6
    movd	mm0, [%1]
    movd	mm1, [%2]
    pavgb	mm0,mm1
	movd	[%5],mm0
	add		%1,%3
	add		%2,%4
	add		%5,%6    
%endmacro

;======================================================
;
; void 
; T264_pia_u_4x4_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_4x4_mmx
T264_pia_u_4x4_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

	EMMS

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本乱人伦一区| 国产色产综合色产在线视频| 国产999精品久久久久久绿帽| 六月丁香婷婷久久| 日本亚洲一区二区| 久久99精品网久久| 国产一区二区三区在线观看免费视频| 久久99久久久欧美国产| 久久国产福利国产秒拍| 国产自产视频一区二区三区| 国产精品中文字幕日韩精品 | 色综合网色综合| 欧美岛国在线观看| 欧美视频日韩视频在线观看| 在线欧美日韩国产| 欧美日韩国产另类一区| 91麻豆精品91久久久久久清纯| 欧美一区2区视频在线观看| 欧美成人在线直播| 国产精品国产自产拍高清av王其| 亚洲欧美自拍偷拍色图| 亚洲一卡二卡三卡四卡| 免费成人小视频| 不卡视频在线观看| 777a∨成人精品桃花网| 国产日韩欧美综合一区| ...av二区三区久久精品| 亚洲久本草在线中文字幕| 精品中文av资源站在线观看| 一区二区在线观看视频| 国产精品久久久久国产精品日日| 1000部国产精品成人观看| 最新欧美精品一区二区三区| 日日噜噜夜夜狠狠视频欧美人 | 一区二区三区成人| 免费不卡在线观看| 99视频一区二区三区| 日韩欧美国产wwwww| 亚洲女同女同女同女同女同69| 青青草伊人久久| 色偷偷88欧美精品久久久| 精品福利在线导航| 亚洲国产精品精华液网站| 国产精品一区二区三区四区| 欧美三级在线播放| 国产午夜精品久久久久久免费视 | 美女尤物国产一区| 日韩电影免费在线观看网站| 韩国成人精品a∨在线观看| 欧美特级限制片免费在线观看| 日韩欧美123| 亚洲午夜精品网| 丁香亚洲综合激情啪啪综合| 7777女厕盗摄久久久| 一区二区三区欧美| 波多野结衣欧美| 国产日韩精品久久久| 奇米色777欧美一区二区| 欧美亚日韩国产aⅴ精品中极品| 欧美国产日产图区| 狠狠v欧美v日韩v亚洲ⅴ| 国内精品国产成人国产三级粉色| 日韩精品福利网| 91精品国产乱码| 亚洲免费av在线| 91丨九色丨蝌蚪丨老版| 国产肉丝袜一区二区| 黄页视频在线91| 日韩视频免费观看高清完整版| 亚洲高清免费视频| 欧美日韩一区中文字幕| 一区二区三区四区在线播放| 99久久综合精品| 亚洲人成人一区二区在线观看| 成人精品小蝌蚪| 国产日韩三级在线| 成人av电影在线| 国产精品久久久久久户外露出| 国产乱子伦视频一区二区三区| 精品成人一区二区| 处破女av一区二区| 亚洲人成人一区二区在线观看| 一本大道久久a久久精品综合| 18成人在线视频| 91理论电影在线观看| 依依成人综合视频| 欧美日韩国产色站一区二区三区| 午夜精品aaa| 精品国产一区久久| 丁香一区二区三区| 成人欧美一区二区三区1314| 欧美亚洲一区三区| 老色鬼精品视频在线观看播放| 日韩精品一区二区三区视频播放| 精东粉嫩av免费一区二区三区| 久久在线观看免费| 色网综合在线观看| 日韩av午夜在线观看| 久久久久9999亚洲精品| 99久久综合国产精品| 亚洲尤物在线视频观看| 亚洲综合成人网| 久久精品久久综合| 91丝袜国产在线播放| 亚洲美腿欧美偷拍| 欧美变态口味重另类| 日韩你懂的电影在线观看| 国产精品一二三四五| 亚洲久草在线视频| 久久影院视频免费| 日本高清不卡视频| 国产综合一区二区| 亚洲第一狼人社区| 国产精品久久久久久久久搜平片| 欧美婷婷六月丁香综合色| 看电视剧不卡顿的网站| 亚洲区小说区图片区qvod| 欧美一级免费观看| 一本久道中文字幕精品亚洲嫩| 老汉av免费一区二区三区| 亚洲精品日韩一| 日本一区二区三区四区在线视频| 欧美视频你懂的| 91免费精品国自产拍在线不卡| 狠狠色狠狠色综合日日91app| 一区二区高清免费观看影视大全 | 国产精品美女久久久久aⅴ国产馆| 91久久线看在观草草青青| 国产一区高清在线| 免费人成网站在线观看欧美高清| 亚洲天堂免费看| 久久久精品天堂| 欧美电视剧免费观看| 欧美日韩免费观看一区二区三区| 本田岬高潮一区二区三区| 国产黑丝在线一区二区三区| 蜜芽一区二区三区| 午夜视频在线观看一区二区三区 | 日本亚洲三级在线| 亚洲成人动漫精品| 亚洲韩国精品一区| 亚洲图片欧美综合| 亚洲图片欧美一区| 午夜天堂影视香蕉久久| 一区二区在线观看不卡| 亚洲美女在线国产| 亚洲日本成人在线观看| 中文字幕中文字幕一区| 国产情人综合久久777777| 国产三级欧美三级日产三级99 | 一区二区三区在线观看网站| 亚洲欧洲性图库| 亚洲欧洲国产日本综合| 日韩伦理电影网| 亚洲美女淫视频| 一区二区三区在线免费| 亚洲超碰97人人做人人爱| 亚洲亚洲精品在线观看| 一区二区三区在线观看网站| 亚洲高清在线精品| 蜜臀av性久久久久蜜臀aⅴ流畅 | 99视频在线精品| 色久综合一二码| 制服丝袜av成人在线看| 免费观看日韩av| 成人美女在线观看| 国产suv一区二区三区88区| 亚洲欧美另类小说| 亚洲免费av网站| 天涯成人国产亚洲精品一区av| 韩国三级在线一区| 国产寡妇亲子伦一区二区| 丁香激情综合国产| 欧美午夜精品一区二区蜜桃| 91.麻豆视频| 久久久精品tv| 亚洲在线成人精品| 国产综合久久久久久久久久久久| 风间由美一区二区av101| 色猫猫国产区一区二在线视频| 欧美精品免费视频| 日本一区二区三区视频视频| 亚洲综合自拍偷拍| 国产一区美女在线| 欧美亚洲一区二区在线观看| 精品久久人人做人人爰| 椎名由奈av一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 国产一区二区视频在线播放| 91尤物视频在线观看| 精品久久国产字幕高潮| 一区二区三区国产| 国产一区二区三区香蕉| 欧美三电影在线| 国产精品卡一卡二卡三| 麻豆成人免费电影| 色综合久久久久久久久久久| 欧美成人精精品一区二区频| 一区二区三区国产精华| 成人app软件下载大全免费|