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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? deblock-a.asm

?? 從服務(wù)器上下外的 x264編碼器最新的源碼
?? ASM
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
;*****************************************************************************;* deblock-a.asm: h264 encoder library;*****************************************************************************;* Copyright (C) 2005-2008 x264 project;*;* Authors: Loren Merritt <lorenm@u.washington.edu>;*;* 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., 51 Franklin Street, Fifth Floor, Boston, MA  02111, USA.;*****************************************************************************%include "x86inc.asm"SECTION_RODATApb_00: times 16 db 0x00pb_01: times 16 db 0x01pb_03: times 16 db 0x03pb_a1: times 16 db 0xa1SECTION .text; expands to [base],...,[base+7*stride]%define PASS8ROWS(base, base3, stride, stride3) \    [base], [base+stride], [base+stride*2], [base3], \    [base3+stride], [base3+stride*2], [base3+stride3], [base3+stride*4]; in: 8 rows of 4 bytes in %1..%8; out: 4 rows of 8 bytes in m0..m3%macro TRANSPOSE4x8_LOAD 8    movd       m0, %1    movd       m2, %2    movd       m1, %3    movd       m3, %4    punpcklbw  m0, m2    punpcklbw  m1, m3    movq       m2, m0    punpcklwd  m0, m1    punpckhwd  m2, m1    movd       m4, %5    movd       m6, %6    movd       m5, %7    movd       m7, %8    punpcklbw  m4, m6    punpcklbw  m5, m7    movq       m6, m4    punpcklwd  m4, m5    punpckhwd  m6, m5    movq       m1, m0    movq       m3, m2    punpckldq  m0, m4    punpckhdq  m1, m4    punpckldq  m2, m6    punpckhdq  m3, m6%endmacro; in: 4 rows of 8 bytes in m0..m3; out: 8 rows of 4 bytes in %1..%8%macro TRANSPOSE8x4_STORE 8    movq       m4, m0    movq       m5, m1    movq       m6, m2    punpckhdq  m4, m4    punpckhdq  m5, m5    punpckhdq  m6, m6    punpcklbw  m0, m1    punpcklbw  m2, m3    movq       m1, m0    punpcklwd  m0, m2    punpckhwd  m1, m2    movd       %1, m0    punpckhdq  m0, m0    movd       %2, m0    movd       %3, m1    punpckhdq  m1, m1    movd       %4, m1    punpckhdq  m3, m3    punpcklbw  m4, m5    punpcklbw  m6, m3    movq       m5, m4    punpcklwd  m4, m6    punpckhwd  m5, m6    movd       %5, m4    punpckhdq  m4, m4    movd       %6, m4    movd       %7, m5    punpckhdq  m5, m5    movd       %8, m5%endmacro%macro SBUTTERFLY 4    movq       %4, %2    punpckl%1  %2, %3    punpckh%1  %4, %3%endmacro; in: 8 rows of 8 (only the middle 6 pels are used) in %1..%8; out: 6 rows of 8 in [%9+0*16] .. [%9+5*16]%macro TRANSPOSE6x8_MEM 9    movq  m0, %1    movq  m1, %2    movq  m2, %3    movq  m3, %4    movq  m4, %5    movq  m5, %6    movq  m6, %7    SBUTTERFLY bw, m0, m1, m7    SBUTTERFLY bw, m2, m3, m1    SBUTTERFLY bw, m4, m5, m3    movq  [%9+0x10], m1    SBUTTERFLY bw, m6, %8, m5    SBUTTERFLY wd, m0, m2, m1    SBUTTERFLY wd, m4, m6, m2    punpckhdq m0, m4    movq  [%9+0x00], m0    SBUTTERFLY wd, m7, [%9+0x10], m6    SBUTTERFLY wd, m3, m5, m4    SBUTTERFLY dq, m7, m3, m0    SBUTTERFLY dq, m1, m2, m5    punpckldq m6, m4    movq  [%9+0x10], m1    movq  [%9+0x20], m5    movq  [%9+0x30], m7    movq  [%9+0x40], m0    movq  [%9+0x50], m6%endmacro; in: 8 rows of 8 in %1..%8; out: 8 rows of 8 in %9..%16%macro TRANSPOSE8x8_MEM 16    movq  m0, %1    movq  m1, %2    movq  m2, %3    movq  m3, %4    movq  m4, %5    movq  m5, %6    movq  m6, %7    SBUTTERFLY bw, m0, m1, m7    SBUTTERFLY bw, m2, m3, m1    SBUTTERFLY bw, m4, m5, m3    SBUTTERFLY bw, m6, %8, m5    movq  %9,  m3    SBUTTERFLY wd, m0, m2, m3    SBUTTERFLY wd, m4, m6, m2    SBUTTERFLY wd, m7, m1, m6    movq  %11, m2    movq  m2,  %9    SBUTTERFLY wd, m2, m5, m1    SBUTTERFLY dq, m0, m4, m5    SBUTTERFLY dq, m7, m2, m4    movq  %9,  m0    movq  %10, m5    movq  %13, m7    movq  %14, m4    SBUTTERFLY dq, m3, %11, m0    SBUTTERFLY dq, m6, m1, m5    movq  %11, m3    movq  %12, m0    movq  %15, m6    movq  %16, m5%endmacro; out: %4 = |%1-%2|>%3; clobbers: %5%macro DIFF_GT 5    mova    %5, %2    mova    %4, %1    psubusb %5, %1    psubusb %4, %2    por     %4, %5    psubusb %4, %3%endmacro; out: %4 = |%1-%2|>%3; clobbers: %5%macro DIFF_GT2 5    mova    %5, %2    mova    %4, %1    psubusb %5, %1    psubusb %4, %2    psubusb %5, %3    psubusb %4, %3    pcmpeqb %4, %5%endmacro%macro SPLATW 1%ifidn m0, xmm0    pshuflw  %1, %1, 0    punpcklqdq %1, %1%else    pshufw   %1, %1, 0%endif%endmacro; in: m0=p1 m1=p0 m2=q0 m3=q1 %1=alpha-1 %2=beta-1; out: m5=beta-1, m7=mask, %3=alpha-1; clobbers: m4,m6%macro LOAD_MASK 2-3    movd     m4, %1    movd     m5, %2    SPLATW   m4    SPLATW   m5    packuswb m4, m4  ; 16x alpha-1    packuswb m5, m5  ; 16x beta-1%if %0>2    mova     %3, m4%endif    DIFF_GT  m1, m2, m4, m7, m6 ; |p0-q0| > alpha-1    DIFF_GT  m0, m1, m5, m4, m6 ; |p1-p0| > beta-1    por      m7, m4    DIFF_GT  m3, m2, m5, m4, m6 ; |q1-q0| > beta-1    por      m7, m4    pxor     m6, m6    pcmpeqb  m7, m6%endmacro; in: m0=p1 m1=p0 m2=q0 m3=q1 m7=(tc&mask); out: m1=p0' m2=q0'; clobbers: m0,3-6%macro DEBLOCK_P0_Q0 0    mova    m5, m1    pxor    m5, m2           ; p0^q0    pand    m5, [pb_01 GLOBAL] ; (p0^q0)&1    pcmpeqb m4, m4    pxor    m3, m4    pavgb   m3, m0           ; (p1 - q1 + 256)>>1    pavgb   m3, [pb_03 GLOBAL] ; (((p1 - q1 + 256)>>1)+4)>>1 = 64+2+(p1-q1)>>2    pxor    m4, m1    pavgb   m4, m2           ; (q0 - p0 + 256)>>1    pavgb   m3, m5    paddusb m3, m4           ; d+128+33    mova    m6, [pb_a1 GLOBAL]    psubusb m6, m3    psubusb m3, [pb_a1 GLOBAL]    pminub  m6, m7    pminub  m3, m7    psubusb m1, m6    psubusb m2, m3    paddusb m1, m3    paddusb m2, m6%endmacro; in: m1=p0 m2=q0;     %1=p1 %2=q2 %3=[q2] %4=[q1] %5=tc0 %6=tmp; out: [q1] = clip( (q2+((p0+q0+1)>>1))>>1, q1-tc0, q1+tc0 ); clobbers: q2, tmp, tc0%macro LUMA_Q1 6    mova    %6, m1    pavgb   %6, m2    pavgb   %2, %6             ; avg(p2,avg(p0,q0))    pxor    %6, %3    pand    %6, [pb_01 GLOBAL] ; (p2^avg(p0,q0))&1    psubusb %2, %6             ; (p2+((p0+q0+1)>>1))>>1    mova    %6, %1    psubusb %6, %5    paddusb %5, %1    pmaxub  %2, %6    pminub  %2, %5    mova    %4, %2%endmacro%ifdef ARCH_X86_64;-----------------------------------------------------------------------------; void x264_deblock_v_luma_sse2( uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0 );-----------------------------------------------------------------------------INIT_XMMcglobal x264_deblock_v_luma_sse2, 5,5,10    movd    m8, [r4] ; tc0    lea     r4, [r1*3]    dec     r2d        ; alpha-1    neg     r4    dec     r3d        ; beta-1    add     r4, r0     ; pix-3*stride    mova    m0, [r4+r1]   ; p1    mova    m1, [r4+2*r1] ; p0    mova    m2, [r0]      ; q0    mova    m3, [r0+r1]   ; q1    LOAD_MASK r2d, r3d    punpcklbw m8, m8    punpcklbw m8, m8 ; tc = 4x tc0[3], 4x tc0[2], 4x tc0[1], 4x tc0[0]    pcmpeqb m9, m9    pcmpeqb m9, m8    pandn   m9, m7    pand    m8, m9    movdqa  m3, [r4] ; p2    DIFF_GT2 m1, m3, m5, m6, m7 ; |p2-p0| > beta-1    pand    m6, m9    mova    m7, m8    psubb   m7, m6    pand    m6, m8    LUMA_Q1 m0, m3, [r4], [r4+r1], m6, m4    movdqa  m4, [r0+2*r1] ; q2    DIFF_GT2 m2, m4, m5, m6, m3 ; |q2-q0| > beta-1    pand    m6, m9    pand    m8, m6    psubb   m7, m6    mova    m3, [r0+r1]    LUMA_Q1 m3, m4, [r0+2*r1], [r0+r1], m8, m6    DEBLOCK_P0_Q0    mova    [r4+2*r1], m1    mova    [r0], m2    RET;-----------------------------------------------------------------------------; void x264_deblock_h_luma_sse2( uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0 );-----------------------------------------------------------------------------INIT_MMXcglobal x264_deblock_h_luma_sse2, 5,7    movsxd r10, r1d    lea    r11, [r10+r10*2]    lea    r6,  [r0-4]    lea    r5,  [r0-4+r11]%ifdef WIN64    sub    rsp, 0x98    %define pix_tmp rsp+0x30%else    sub    rsp, 0x68    %define pix_tmp rsp%endif    ; transpose 6x16 -> tmp space    TRANSPOSE6x8_MEM  PASS8ROWS(r6, r5, r10, r11), pix_tmp    lea    r6, [r6+r10*8]    lea    r5, [r5+r10*8]    TRANSPOSE6x8_MEM  PASS8ROWS(r6, r5, r10, r11), pix_tmp+8    ; vertical filter    ; alpha, beta, tc0 are still in r2d, r3d, r4    ; don't backup r6, r5, r10, r11 because x264_deblock_v_luma_sse2 doesn't use them    lea    r0, [pix_tmp+0x30]    mov    r1d, 0x10%ifdef WIN64    mov    [rsp+0x20], r4%endif    call   x264_deblock_v_luma_sse2    ; transpose 16x4 -> original space  (only the middle 4 rows were changed by the filter)    add    r6, 2    add    r5, 2    movq   m0, [pix_tmp+0x18]    movq   m1, [pix_tmp+0x28]    movq   m2, [pix_tmp+0x38]    movq   m3, [pix_tmp+0x48]    TRANSPOSE8x4_STORE  PASS8ROWS(r6, r5, r10, r11)    shl    r10, 3    sub    r6,  r10    sub    r5,  r10    shr    r10, 3    movq   m0, [pix_tmp+0x10]    movq   m1, [pix_tmp+0x20]    movq   m2, [pix_tmp+0x30]    movq   m3, [pix_tmp+0x40]    TRANSPOSE8x4_STORE  PASS8ROWS(r6, r5, r10, r11)%ifdef WIN64    add    rsp, 0x98%else    add    rsp, 0x68%endif    RET%else%macro DEBLOCK_LUMA 3;-----------------------------------------------------------------------------; void x264_deblock_v8_luma_mmxext( uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0 );-----------------------------------------------------------------------------cglobal x264_deblock_%2_luma_%1, 5,5    lea     r4, [r1*3]    dec     r2     ; alpha-1    neg     r4    dec     r3     ; beta-1    add     r4, r0 ; pix-3*stride    %assign pad 2*%3+12-(stack_offset&15)    SUB     esp, pad    mova    m0, [r4+r1]   ; p1    mova    m1, [r4+2*r1] ; p0    mova    m2, [r0]      ; q0    mova    m3, [r0+r1]   ; q1    LOAD_MASK r2, r3    mov     r3, r4mp    movd    m4, [r3] ; tc0    punpcklbw m4, m4    punpcklbw m4, m4 ; tc = 4x tc0[3], 4x tc0[2], 4x tc0[1], 4x tc0[0]    mova   [esp+%3], m4 ; tc    pcmpeqb m3, m3    pcmpgtb m4, m3    pand    m4, m7    mova   [esp], m4 ; mask    mova    m3, [r4] ; p2    DIFF_GT2 m1, m3, m5, m6, m7 ; |p2-p0| > beta-1    pand    m6, m4    pand    m4, [esp+%3] ; tc    mova    m7, m4    psubb   m7, m6    pand    m6, m4    LUMA_Q1 m0, m3, [r4], [r4+r1], m6, m4    mova    m4, [r0+2*r1] ; q2    DIFF_GT2 m2, m4, m5, m6, m3 ; |q2-q0| > beta-1    mova    m5, [esp] ; mask    pand    m6, m5    mova    m5, [esp+%3] ; tc    pand    m5, m6    psubb   m7, m6    mova    m3, [r0+r1]    LUMA_Q1 m3, m4, [r0+2*r1], [r0+r1], m5, m6    DEBLOCK_P0_Q0    mova    [r4+2*r1], m1    mova    [r0], m2    ADD     esp, pad    RET;-----------------------------------------------------------------------------; void x264_deblock_h_luma_mmxext( uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0 );-----------------------------------------------------------------------------INIT_MMXcglobal x264_deblock_h_luma_%1, 0,5    mov    r0, r0mp

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久99精品免费观看不卡| 欧美一区二区三区四区五区| 欧美大胆人体bbbb| 亚洲美女免费视频| 国产福利91精品| 日韩午夜av电影| 亚洲在线成人精品| 99久久精品情趣| 国产亚洲短视频| 久久精品国产精品亚洲精品| 欧美亚州韩日在线看免费版国语版| 国产欧美日韩激情| 激情深爱一区二区| 91精品国产一区二区| 亚洲综合色区另类av| av中文一区二区三区| 国产欧美日韩亚州综合| 国产在线精品免费av| 欧美一卡二卡三卡| 日韩精品亚洲专区| 91麻豆精品国产自产在线观看一区 | 久久99精品国产.久久久久久| 在线欧美日韩精品| 亚洲日本欧美天堂| 不卡一卡二卡三乱码免费网站| 久久婷婷成人综合色| 精品在线免费视频| 日韩三级中文字幕| 免费精品视频最新在线| 欧美剧情电影在线观看完整版免费励志电影| 1区2区3区国产精品| 成人免费高清视频| 一区二区中文字幕在线| 成人涩涩免费视频| 亚洲欧洲韩国日本视频| 91在线精品秘密一区二区| 国产精品久久久久久久久免费桃花| 高清av一区二区| 国产精品人成在线观看免费| 国产99精品在线观看| 国产精品色哟哟网站| 99国产精品一区| 日韩一区日韩二区| 99re在线精品| 一区二区三区高清| 欧美三级蜜桃2在线观看| 亚洲国产另类av| 7777精品伊人久久久大香线蕉最新版| 亚洲aⅴ怡春院| 欧美一级久久久久久久大片| 免费高清不卡av| 久久久久高清精品| av午夜一区麻豆| 一区二区在线看| 在线不卡免费欧美| 精品无人码麻豆乱码1区2区| 久久久久国色av免费看影院| 丁香激情综合国产| 亚洲欧美综合色| 欧美综合欧美视频| 欧美96一区二区免费视频| 久久久久久久免费视频了| 成人爱爱电影网址| 一区二区三区日韩精品| 日韩视频免费观看高清完整版 | 亚洲色图制服丝袜| 欧美日韩在线播| 老司机免费视频一区二区三区| 国产日韩欧美综合在线| 一本色道久久综合狠狠躁的推荐| 亚洲国产精品一区二区久久| 日韩欧美色综合| 成人黄色小视频| 亚洲最大色网站| 精品国产一区a| 91老师片黄在线观看| 视频一区二区欧美| 国产人伦精品一区二区| 色婷婷精品大在线视频| 久久精品国产**网站演员| 中文字幕一区二| 91精品国产麻豆| 成人黄色国产精品网站大全在线免费观看 | 欧美日韩五月天| 国产精品中文字幕日韩精品 | 亚洲一区中文在线| 欧美变态tickling挠脚心| 成人毛片视频在线观看| 午夜精品福利久久久| 国产色爱av资源综合区| 欧美色倩网站大全免费| 国产精品91一区二区| 亚洲国产精品人人做人人爽| 国产亚洲综合性久久久影院| 91福利资源站| 国产精品一区二区久久不卡| 亚洲国产一区二区三区青草影视| 久久一留热品黄| 欧美亚洲一区二区三区四区| 国产一区二区精品在线观看| 亚洲超碰精品一区二区| 欧美国产日本韩| 538在线一区二区精品国产| www.亚洲精品| 久久国内精品自在自线400部| 国产精品色哟哟| 精品国产亚洲一区二区三区在线观看 | 一区av在线播放| 国产亚洲精久久久久久| 欧美一区二区视频网站| 色诱亚洲精品久久久久久| 国产精品中文字幕日韩精品| 日韩不卡一二三区| 亚洲精品一二三区| 国产日韩视频一区二区三区| 欧美一区二区日韩| 欧美最猛性xxxxx直播| jlzzjlzz亚洲日本少妇| 极品少妇一区二区| 图片区小说区国产精品视频| 亚洲精品久久嫩草网站秘色| 国产性做久久久久久| 欧美大片国产精品| 欧美日韩国产一区| 91麻豆123| 97国产精品videossex| 国产98色在线|日韩| 国产中文一区二区三区| 青娱乐精品在线视频| 亚洲一区二区综合| 亚洲乱码国产乱码精品精可以看 | 欧美成人三级在线| 在线不卡欧美精品一区二区三区| 在线观看免费视频综合| 99久久久精品| 91在线丨porny丨国产| 成人精品免费看| 高清免费成人av| 国产精品77777竹菊影视小说| 精品一区二区在线观看| 免费在线成人网| 视频一区在线播放| 丝袜美腿亚洲色图| 三级不卡在线观看| 午夜精品久久久久影视| 午夜欧美在线一二页| 亚洲大片免费看| 午夜在线电影亚洲一区| 午夜欧美2019年伦理| 婷婷开心激情综合| 日韩中文字幕麻豆| 日本女人一区二区三区| 奇米色777欧美一区二区| 男女男精品视频网| 另类专区欧美蜜桃臀第一页| 麻豆精品一区二区av白丝在线| 日本三级亚洲精品| 久久国产剧场电影| 激情文学综合丁香| 丰满少妇在线播放bd日韩电影| 成人毛片在线观看| 色综合中文字幕| 欧美性色黄大片| 欧美妇女性影城| 精品久久久三级丝袜| 国产喂奶挤奶一区二区三区| 国产色综合一区| 亚洲欧美另类小说| 亚洲国产精品一区二区www| 日韩精品国产欧美| 久久精品99国产精品日本| 国产精品一级二级三级| 成人免费高清视频| 色婷婷综合久色| 91精品国产综合久久婷婷香蕉 | 91精品视频网| 精品国产一区二区在线观看| 国产欧美精品一区| 亚洲色图制服诱惑| 视频一区二区三区中文字幕| 久草这里只有精品视频| 成人精品gif动图一区| 在线观看国产一区二区| 日韩一区二区在线看| 久久久久国产精品厨房| 亚洲人精品午夜| 青青草精品视频| 国产精品538一区二区在线| 99精品国产99久久久久久白柏 | 风流少妇一区二区| 在线影视一区二区三区| 日韩精品一区在线观看| 国产欧美精品区一区二区三区| 一区二区三区四区在线免费观看 | 亚洲国产精品影院| 国产一区二区三区免费观看| 91在线视频网址| 日韩免费看的电影| 国产精品国产a级| 日韩av一级片|