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

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

?? fdct_mmx_ffmpeg.asm

?? xvid的視頻編解碼庫文件
?? ASM
字號:
;/****************************************************************************; *; *  XVID MPEG-4 VIDEO CODEC; *  - MMX and XMM forward discrete cosine transform -; *; *  Copyright(C) 2003 Edouard Gomez <ed.gomez@free.fr>; *; *  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; *; * $Id$; *; ***************************************************************************/;/****************************************************************************; *; *  Initial, but incomplete version provided by Intel at AppNote AP-922; *    http://developer.intel.com/vtune/cbts/strmsimd/922down.htm; *  Copyright (C) 1999 Intel Corporation; *; *  Completed and corrected in fdctmm32.c/fdctmm32.doc; *    http://members.tripod.com/~liaor/; *  Copyright (C) 2000 - Royce Shih-Wea Liao <liaor@iname.com>; *; *  Minimizing coefficients reordering changing the tables constants order; *    http://ffmpeg.sourceforge.net/; *  Copyright (C) 2001 Fabrice Bellard.; *; *  The version coded here is just a port to NASM syntax from the FFMPEG's; *  version. So all credits go to the previous authors for all their; *  respective work in order to have a nice/fast mmx fDCT.; ***************************************************************************/BITS 32;=============================================================================; Macros and other preprocessor constants;=============================================================================%macro cglobal 1	%ifdef PREFIX		global _%1		%define %1 _%1	%else		global %1	%endif%endmacro;;; Define this if you want an unrolled version of the code%define UNROLLED_LOOP%define BITS_FRW_ACC   3%define SHIFT_FRW_COL  BITS_FRW_ACC%define SHIFT_FRW_ROW  (BITS_FRW_ACC + 17)%define RND_FRW_ROW    (1 << (SHIFT_FRW_ROW-1))%define RND_FRW_COL    (1 << (SHIFT_FRW_COL-1));=============================================================================; Local Data (Read Only);=============================================================================%ifdef FORMAT_COFFSECTION .rodata data%elseSECTION .rodata data align=16%endifALIGN 8tab_frw_01234567:  dw  16384,   16384,   -8867,  -21407  dw  16384,   16384,   21407,    8867  dw  16384,  -16384,   21407,   -8867  dw -16384,   16384,    8867,  -21407  dw  22725,   19266,  -22725,  -12873  dw  12873,    4520,   19266,   -4520  dw  12873,  -22725,   19266,  -22725  dw   4520,   19266,    4520,  -12873  dw  22725,   22725,  -12299,  -29692  dw  22725,   22725,   29692,   12299  dw  22725,  -22725,   29692,  -12299  dw -22725,   22725,   12299,  -29692  dw  31521,   26722,  -31521,  -17855  dw  17855,    6270,   26722,   -6270  dw  17855,  -31521,   26722,  -31521  dw   6270,   26722,    6270,  -17855  dw  21407,   21407,  -11585,  -27969  dw  21407,   21407,   27969,   11585  dw  21407,  -21407,   27969,  -11585  dw -21407,   21407,   11585,  -27969  dw  29692,   25172,  -29692,  -16819  dw  16819,    5906,   25172,   -5906  dw  16819,  -29692,   25172,  -29692  dw   5906,   25172,    5906,  -16819  dw  19266,   19266,  -10426,  -25172  dw  19266,   19266,   25172,   10426  dw  19266,  -19266,   25172,  -10426  dw -19266,   19266,   10426,  -25172  dw  26722,   22654,  -26722,  -15137  dw  15137,    5315,   22654,   -5315  dw  15137,  -26722,   22654,  -26722  dw   5315,   22654,    5315,  -15137  dw  16384,   16384,   -8867,  -21407  dw  16384,   16384,   21407,    8867  dw  16384,  -16384,   21407,   -8867  dw -16384,   16384,    8867,  -21407  dw  22725,   19266,  -22725,  -12873  dw  12873,    4520,   19266,   -4520  dw  12873,  -22725,   19266,  -22725  dw   4520,   19266,    4520,  -12873  dw  19266,   19266,  -10426,  -25172  dw  19266,   19266,   25172,   10426  dw  19266,  -19266,   25172,  -10426  dw -19266,   19266,   10426,  -25172  dw  26722,   22654,  -26722,  -15137  dw  15137,    5315,   22654,   -5315  dw  15137,  -26722,   22654,  -26722  dw   5315,   22654,    5315,  -15137  dw  21407,   21407,  -11585,  -27969  dw  21407,   21407,   27969,   11585  dw  21407,  -21407,   27969,  -11585  dw -21407,   21407,   11585,  -27969  dw  29692,   25172,  -29692,  -16819  dw  16819,    5906,   25172,   -5906  dw  16819,  -29692,   25172,  -29692  dw   5906,   25172,    5906,  -16819,  dw  22725,   22725,  -12299,  -29692  dw  22725,   22725,   29692,   12299  dw  22725,  -22725,   29692,  -12299  dw -22725,   22725,   12299,  -29692  dw  31521,   26722,  -31521,  -17855  dw  17855,    6270,   26722,   -6270  dw  17855,  -31521,   26722,  -31521  dw   6270,   26722,    6270,  -17855ALIGN 8fdct_one_corr:  dw 1, 1, 1, 1ALIGN 8fdct_tg_all_16:  dw  13036,	13036,	13036,	13036  dw  27146,	27146,	27146,	27146  dw -21746, -21746, -21746, -21746ALIGN 8cos_4_16:  dw -19195, -19195, -19195, -19195ALIGN 8ocos_4_16:  dw 23170, 23170, 23170, 23170ALIGN 8fdct_r_row:  dd RND_FRW_ROW, RND_FRW_ROW;=============================================================================; Factorized parts of the code turned into macros for better understanding;=============================================================================	;; Macro for column DCT	;; FDCT_COLUMN_MMX(int16_t *out, const int16_t *in, int offset);	;;  - out, register name holding the out address	;;  - in, register name holding the in address	;;  - column number to process%macro FDCT_COLUMN_COMMON 3  movq mm0, [%2 + %3*2 + 1*16]  movq mm1, [%2 + %3*2 + 6*16]  movq mm2, mm0  movq mm3, [%2 + %3*2 + 2*16]  paddsw mm0, mm1  movq mm4, [%2 + %3*2 + 5*16]  psllw mm0, SHIFT_FRW_COL  movq mm5, [%2 + %3*2 + 0*16]  paddsw mm4, mm3  paddsw mm5, [%2 + %3*2 + 7*16]  psllw mm4, SHIFT_FRW_COL  movq mm6, mm0  psubsw mm2, mm1  movq mm1, [fdct_tg_all_16 + 4*2]  psubsw mm0, mm4  movq mm7, [%2 + %3*2 + 3*16]  pmulhw mm1, mm0  paddsw mm7, [%2 + %3*2 + 4*16]  psllw mm5, SHIFT_FRW_COL  paddsw mm6, mm4  psllw mm7, SHIFT_FRW_COL  movq mm4, mm5  psubsw mm5, mm7  paddsw mm1, mm5  paddsw mm4, mm7  por mm1, [fdct_one_corr]  psllw mm2, SHIFT_FRW_COL + 1  pmulhw mm5, [fdct_tg_all_16 + 4*2]  movq mm7, mm4  psubsw mm3, [%2 + %3*2 + 5*16]  psubsw mm4, mm6  movq [%1 + %3*2 + 2*16], mm1  paddsw mm7, mm6  movq mm1, [%2 + %3*2 + 3*16]  psllw mm3, SHIFT_FRW_COL + 1  psubsw mm1, [%2 + %3*2 + 4*16]  movq mm6, mm2  movq [%1 + %3*2 + 4*16], mm4  paddsw mm2, mm3  pmulhw mm2, [ocos_4_16]  psubsw mm6, mm3  pmulhw mm6, [ocos_4_16]  psubsw mm5, mm0  por mm5, [fdct_one_corr]  psllw mm1, SHIFT_FRW_COL  por mm2, [fdct_one_corr]  movq mm4, mm1  movq mm3, [%2 + %3*2 + 0*16]  paddsw mm1, mm6  psubsw mm3, [%2 + %3*2 + 7*16]  psubsw mm4, mm6  movq mm0, [fdct_tg_all_16 + 0*2]  psllw mm3, SHIFT_FRW_COL  movq mm6, [fdct_tg_all_16 + 8*2]  pmulhw mm0, mm1  movq [%1 + %3*2 + 0*16], mm7  pmulhw mm6, mm4  movq [%1 + %3*2 + 6*16], mm5  movq mm7, mm3  movq mm5, [fdct_tg_all_16 + 8*2]  psubsw mm7, mm2  paddsw mm3, mm2  pmulhw mm5, mm7  paddsw mm0, mm3  paddsw mm6, mm4  pmulhw mm3, [fdct_tg_all_16 + 0*2]  por mm0, [fdct_one_corr]  paddsw mm5, mm7  psubsw mm7, mm6  movq [%1 + %3*2 + 1*16], mm0  paddsw mm5, mm4  movq [%1 + %3*2 + 3*16], mm7  psubsw mm3, mm1  movq [%1 + %3*2 + 5*16], mm5  movq [%1 + %3*2 + 7*16], mm3%endmacro	;; Macro for row DCT using MMX punpcklw instructions	;; FDCT_ROW_MMX(int16_t *out, const int16_t *in, const int16_t *table);	;;  - out, register name holding the out address	;;  - in, register name holding the in address	;;  - table coefficients address (register or absolute)%macro FDCT_ROW_MMX 3  movd mm1, [%2 + 6*2]  punpcklwd mm1, [%2 + 4*2]  movq mm2, mm1  psrlq mm1, 0x20  movq mm0, [%2 + 0*2]  punpcklwd mm1, mm2  movq mm5, mm0  paddsw mm0, mm1  psubsw mm5, mm1  movq mm1, mm0  movq mm6, mm5  punpckldq mm3, mm5  punpckhdq mm6, mm3  movq mm3, [%3 + 0*2]  movq mm4, [%3 + 4*2]  punpckldq mm2, mm0  pmaddwd mm3, mm0  punpckhdq mm1, mm2  movq mm2, [%3 + 16*2]  pmaddwd mm4, mm1  pmaddwd mm0, [%3 + 8*2]  movq mm7, [%3 + 20*2]  pmaddwd mm2, mm5  paddd mm3, [fdct_r_row]  pmaddwd mm7, mm6  pmaddwd mm1, [%3 + 12*2]  paddd mm3, mm4  pmaddwd mm5, [%3 + 24*2]  pmaddwd mm6, [%3 + 28*2]  paddd mm2, mm7  paddd mm0, [fdct_r_row]  psrad mm3, SHIFT_FRW_ROW  paddd mm2, [fdct_r_row]  paddd mm0, mm1  paddd mm5, [fdct_r_row]  psrad mm2, SHIFT_FRW_ROW  paddd mm5, mm6  psrad mm0, SHIFT_FRW_ROW  psrad mm5, SHIFT_FRW_ROW  packssdw mm3, mm0  packssdw mm2, mm5  movq mm6, mm3  punpcklwd mm3, mm2  punpckhwd mm6, mm2  movq [%1 + 0*2], mm3  movq [%1 + 4*2], mm6%endmacro	;; Macro for column DCT using XMM instuction pshufw	;; FDCT_ROW_XMM(int16_t *out, const int16_t *in, const int16_t *table);	;;  - out, register name holding the out address	;;  - in, register name holding the in address	;;  - table coefficient address%macro FDCT_ROW_XMM 3	;; fdct_row_mmx2(const int16_t *in, int16_t *out, const int16_t *table)  pshufw mm5, [%2 + 4*2], 0x1B  movq mm0, [%2 + 0*2]  movq mm1, mm0  paddsw mm0, mm5  psubsw mm1, mm5  pshufw mm2, mm0, 0x4E  pshufw mm3, mm1, 0x4E  movq mm4, [%3 +  0*2]  movq mm6, [%3 +  4*2]  movq mm5, [%3 + 16*2]  movq mm7, [%3 + 20*2]  pmaddwd mm4, mm0  pmaddwd mm5, mm1  pmaddwd mm6, mm2  pmaddwd mm7, mm3  pmaddwd mm0, [%3 +  8*2]  pmaddwd mm2, [%3 + 12*2]  pmaddwd mm1, [%3 + 24*2]  pmaddwd mm3, [%3 + 28*2]  paddd mm4, mm6  paddd mm5, mm7  paddd mm0, mm2  paddd mm1, mm3  movq mm7, [fdct_r_row]  paddd mm4, mm7  paddd mm5, mm7  paddd mm0, mm7  paddd mm1, mm7  psrad mm4, SHIFT_FRW_ROW  psrad mm5, SHIFT_FRW_ROW  psrad mm0, SHIFT_FRW_ROW  psrad mm1, SHIFT_FRW_ROW  packssdw mm4, mm0  packssdw mm5, mm1  movq mm2, mm4  punpcklwd mm4, mm5  punpckhwd mm2, mm5  movq [%1 + 0*2], mm4  movq [%1 + 4*2], mm2%endmacro%macro MAKE_FDCT_FUNC 2ALIGN 16cglobal %1%1:	;; Move the destination/source address to the eax register  mov eax, [esp + 4]	;; Process the columns (4 at a time)  FDCT_COLUMN_COMMON eax, eax, 0 ; columns 0..3  FDCT_COLUMN_COMMON eax, eax, 4 ; columns 4..7%ifdef UNROLLED_LOOP	; Unrolled loop version%assign i 0%rep 8	;; Process the 'i'th row  %2 eax+2*i*8, eax+2*i*8, tab_frw_01234567+2*32*i	%assign i i+1%endrep%else  mov ecx, 8  mov edx, tab_frw_01234567ALIGN 8.loop  %2 eax, eax, edx  add eax, 2*8  add edx, 2*32  dec ecx  jne .loop%endif  ret%endmacro;=============================================================================; Code;=============================================================================SECTION .text;-----------------------------------------------------------------------------; void fdct_mmx_ffmpeg(int16_t block[64]);;-----------------------------------------------------------------------------MAKE_FDCT_FUNC fdct_mmx_ffmpeg, FDCT_ROW_MMX;-----------------------------------------------------------------------------; void fdct_xmm_ffmpeg(int16_t block[64]);;-----------------------------------------------------------------------------MAKE_FDCT_FUNC fdct_xmm_ffmpeg, FDCT_ROW_XMM

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品欧美日韩| 久久人人97超碰com| 成人在线一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区 | 国内偷窥港台综合视频在线播放| 一二三四区精品视频| 亚洲精品日韩一| 亚洲成人在线网站| 免费观看成人av| 激情综合色播激情啊| 国产传媒日韩欧美成人| 欧美日韩美女一区二区| 欧美四级电影网| 日韩午夜在线观看视频| 欧美精品一区二区三区久久久 | 久久国产精品免费| 日本女人一区二区三区| 久久国产人妖系列| 成人美女在线观看| 日本韩国精品在线| 日韩欧美亚洲一区二区| 欧美极品另类videosde| 亚洲精品中文字幕乱码三区| 图片区日韩欧美亚洲| 久久国产剧场电影| 91香蕉视频mp4| 欧美久久一区二区| 久久久久国产精品免费免费搜索| 国产精品美女久久久久aⅴ国产馆| 亚洲黄一区二区三区| 日本最新不卡在线| 成年人国产精品| 69av一区二区三区| 中文字幕中文字幕中文字幕亚洲无线| 亚洲最快最全在线视频| 久久99国产精品尤物| 色狠狠桃花综合| 国产人成亚洲第一网站在线播放 | 免费看欧美美女黄的网站| 国产成a人亚洲| 欧美精品在线观看播放| 欧美韩国日本不卡| 免费欧美高清视频| 色哟哟精品一区| 国产亚洲欧美日韩在线一区| 亚洲一级片在线观看| 国产精品资源站在线| 884aa四虎影成人精品一区| 中文字幕一区二区视频| 精品一区二区久久久| 欧美日韩中文字幕一区| 国产精品三级久久久久三级| 麻豆精品精品国产自在97香蕉| 91啪在线观看| 欧美国产日韩一二三区| 蜜臀av国产精品久久久久| 欧美伊人久久久久久久久影院| 国产亚洲一区二区三区四区| 日本不卡免费在线视频| 精品视频1区2区3区| 亚洲三级电影网站| 成人国产在线观看| 国产喷白浆一区二区三区| 精品系列免费在线观看| 日韩免费福利电影在线观看| 三级欧美在线一区| 欧美群妇大交群中文字幕| 亚洲啪啪综合av一区二区三区| 国产91精品一区二区麻豆网站| 日韩一本二本av| 日韩激情在线观看| 欧美一区二区免费观在线| 亚洲福利视频导航| 欧美日韩视频一区二区| 亚洲中国最大av网站| 欧美伊人精品成人久久综合97| 亚洲女与黑人做爰| 在线亚洲一区二区| 亚洲综合久久av| 欧美日韩二区三区| 美国三级日本三级久久99| 欧美一区午夜精品| 精品一区二区在线免费观看| 欧美电影免费观看高清完整版在线 | 成人污污视频在线观看| 亚洲欧洲性图库| 一本到一区二区三区| 亚洲一区二区不卡免费| 欧美一卡2卡三卡4卡5免费| 五月婷婷久久丁香| 精品毛片乱码1区2区3区| 国产在线国偷精品产拍免费yy| 日本一区二区三级电影在线观看 | 国产剧情一区二区| 国产香蕉久久精品综合网| 成人一区二区三区视频在线观看| 国产精品久久久久aaaa樱花| 在线中文字幕一区二区| 麻豆成人久久精品二区三区小说| 国产性天天综合网| 在线观看日韩国产| 寂寞少妇一区二区三区| 国产精品久久久久久久久免费樱桃 | 色激情天天射综合网| 美女视频网站久久| 国产精品免费视频一区| 欧美日韩一区二区三区四区五区 | 亚洲香肠在线观看| 欧美一区日本一区韩国一区| 国产激情视频一区二区三区欧美| 国内精品久久久久影院薰衣草 | 久久婷婷久久一区二区三区| 丁香亚洲综合激情啪啪综合| 亚洲国产日韩一级| 日本一区二区三区久久久久久久久不 | 亚洲视频免费在线| 欧美大片一区二区| 在线观看日韩一区| 国产激情一区二区三区桃花岛亚洲| 亚洲激情综合网| 日本一区二区免费在线观看视频| 欧美色老头old∨ideo| 成人开心网精品视频| 麻豆精品新av中文字幕| 夜夜嗨av一区二区三区四季av| 欧美精品一区二区高清在线观看| 在线观看三级视频欧美| 国产美女精品一区二区三区| 亚洲成精国产精品女| 国产精品免费丝袜| 久久久国产精品午夜一区ai换脸| 欧美乱妇15p| 色婷婷精品大在线视频| 成人激情动漫在线观看| 国产伦理精品不卡| 极品少妇xxxx精品少妇| 日韩成人伦理电影在线观看| 一区二区三区四区在线播放| 国产精品久久一级| 欧美国产精品v| 久久久欧美精品sm网站| 日韩女优制服丝袜电影| 69p69国产精品| 制服丝袜亚洲色图| 欧美精品三级日韩久久| 日本高清不卡在线观看| 99re成人精品视频| 99久久国产综合色|国产精品| 国产成人自拍在线| 国产成人无遮挡在线视频| 国产在线一区二区综合免费视频| 日本vs亚洲vs韩国一区三区| 日韩成人免费电影| 美女网站在线免费欧美精品| 美女视频黄免费的久久| 卡一卡二国产精品| 极品美女销魂一区二区三区| 国产一区在线观看视频| 国产一区不卡视频| 成人午夜视频网站| 972aa.com艺术欧美| 色www精品视频在线观看| 欧美综合天天夜夜久久| 欧美精品一级二级三级| 制服丝袜亚洲色图| 2020国产精品自拍| 中文字幕制服丝袜一区二区三区| 中文字幕欧美一| 一区二区三区四区不卡在线| 午夜伊人狠狠久久| 久久电影网站中文字幕| 国产精品18久久久久久vr | 亚洲色图都市小说| 亚洲综合丁香婷婷六月香| 欧美a级一区二区| 国产乱码字幕精品高清av| www.日韩精品| 欧美年轻男男videosbes| 欧美videossexotv100| 亚洲国产高清aⅴ视频| 亚洲成人手机在线| 国产在线视视频有精品| 色综合久久综合| 欧美一区日本一区韩国一区| 欧美激情一区二区三区| 亚洲国产精品一区二区www| 国产中文字幕一区| 在线观看视频一区二区欧美日韩| 欧美成人一区二区三区片免费| 国产精品无人区| 琪琪久久久久日韩精品| 成人午夜大片免费观看| 欧美精品久久久久久久久老牛影院| 久久久精品人体av艺术| 亚洲成av人片一区二区三区| 国产成人免费视频网站高清观看视频| 色素色在线综合| 国产午夜精品久久久久久久| 亚洲国产一区二区在线播放| 国产盗摄视频一区二区三区|