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

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

?? rgb_to_yv12_mmx.asm

?? xvid MPEG-4 編解碼源代碼
?? ASM
字號:
;/*****************************************************************************; *; *  XVID MPEG-4 VIDEO CODEC; *	 mmx yuv planar to yuyv/uyvy conversion ; *; *  Copyright(C) 2002 Peter Ross <pross@xvid.org>; *; *  This file is part of XviD, a free MPEG-4 video encoder/decoder; *; *  XviD 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; *; *  Under section 8 of the GNU General Public License, the copyright; *  holders of XVID explicitly forbid distribution in the following; *  countries:; *; *    - Japan; *    - United States of America; *; *  Linking XviD statically or dynamically with other modules is making a; *  combined work based on XviD.  Thus, the terms and conditions of the; *  GNU General Public License cover the whole combination.; *; *  As a special exception, the copyright holders of XviD give you; *  permission to link XviD with independent modules that communicate with; *  XviD solely through the VFW1.1 and DShow interfaces, regardless of the; *  license terms of these independent modules, and to copy and distribute; *  the resulting combined work under terms of your choice, provided that; *  every copy of the combined work is accompanied by a complete copy of; *  the source code of XviD (the version of XviD used to produce the; *  combined work), being distributed under the terms of the GNU General; *  Public License plus this exception.  An independent module is a module; *  which is not derived from or based on XviD.; *; *  Note that people who make modified versions of XviD are not obligated; *  to grant this special exception for their modified versions; it is; *  their choice whether to do so.  The GNU General Public License gives; *  permission to release a modified version without this exception; this; *  exception also makes it possible to release a modified version which; *  carries forward this exception.; *; * $Id: rgb_to_yv12_mmx.asm,v 1.3 2002/11/17 00:20:30 edgomez Exp $; *; ****************************************************************************/bits 32section .data%macro cglobal 1 	%ifdef PREFIX		global _%1 		%define %1 _%1	%else		global %1	%endif%endmacroalign 16;===========================================================================; yuv constants;===========================================================================%define Y_R		0.257%define Y_G		0.504%define Y_B		0.098%define Y_ADD	16%define U_R		0.148%define U_G		0.291%define U_B		0.439%define U_ADD	128%define V_R		0.439%define V_G		0.368%define V_B		0.071%define V_ADD	128;===========================================================================; multiplication matrices;===========================================================================; %define SCALEBITS 8y_mul	dw		25		; FIX(Y_B)		dw		129		; FIX(Y_G)		dw		66		; FIX(Y_R)		dw		0u_mul	dw		112		; FIX(U_B)		dw		-74		; FIX(U_G)		dw		-38		; FIX(U_R)		dw		0v_mul	dw		-18		; FIX(V_B)		dw		-94		; FIX(V_G)		dw		112		; FIX(V_R)		dw		0section .text;===========================================================================;;	void rgb24_to_yv12_mmx(uint8_t * const y_out,;						uint8_t * const u_out,;						uint8_t * const v_out,;						const uint8_t * const src,;						const uint32_t width,;						const uint32_t height,;						const uint32_t stride);; always flips;;===========================================================================align 16cglobal rgb24_to_yv12_mmxrgb24_to_yv12_mmx		push ebx		push ecx		push esi		push edi					push ebp			; STACK BASE = 20		; global consants		mov eax, [esp + 20 + 28]	; stride		mov ecx, [esp + 20 + 20]	; width		mov ebx, eax		sub ebx, ecx						shr ebx, 1					; ebx = (stride-width) / 2;		push ebx					; [esp + 20] = uv_dif							; STACK BASE = 24		add eax, eax		sub eax, ecx				; eax = 2*stride - width		push eax					; [esp + 16] = y_dif							; STACK BASE = 28		mov ebx, ecx				; 		shr ebx, 1					;		push ebx					; [esp + 12] = width/2							; STACK BASE = 32		mov edx, ecx		add ecx, edx		add ecx, edx				; ecx = 3*width   (use 4 for rgb32)		push ecx					; [esp + 8] = width3							; STACK BASE = 36		mov edx, ecx		add edx, ecx		add edx, ecx				; edx = 3*width3		push edx					; [esp + 4] = src_dif							; STACK BASE = 40		mov esi, [esp + 40 + 16]	; src		mov ebp, [esp + 40 + 24]	; eax = height		mov eax, ebp		sub eax, 2		mul ecx		add esi, eax				; src += (height-2) * width3		mov edi, [esp + 40 + 4]		; y_out		mov ecx, [esp + 40 + 8]		; u_out		mov edx, [esp + 40 + 12]	; v_out		movq mm7, [y_mul]				shr ebp, 1				; ebp = height / 2		push ebp				; [esp+0] = tmp								; STACK BASE = 44.yloop		mov ebp, [esp + 12]		; ebp = width /2 .xloop			; y_out			mov ebx, [esp + 8]			; ebx = width3			pxor mm4, mm4			pxor mm5, mm5			movd mm0, [esi]			; src[0...]			movd mm2, [esi+ebx]		; src[width3...]			punpcklbw mm0, mm4		; [  |b |g |r ]			punpcklbw mm2, mm5		; [  |b |g |r ]			movq mm6, mm0			; = [  |b4|g4|r4]			paddw mm6, mm2			; +[  |b4|g4|r4]			pmaddwd mm0, mm7		; *= Y_MUL			pmaddwd mm2, mm7		; *= Y_MUL			movq mm4, mm0			; [r]			movq mm5, mm2			; [r]			psrlq mm4, 32			; +[g]			psrlq mm5, 32			; +[g]			paddd mm0, mm4			; +[b]			paddd mm2, mm5			; +[b]			pxor mm4, mm4			pxor mm5, mm5			movd mm1, [esi+3]		; src[4...]			movd mm3, [esi+ebx+3]	; src[width3+4...]			punpcklbw mm1, mm4		; [  |b |g |r ]			punpcklbw mm3, mm5		; [  |b |g |r ]			paddw mm6, mm1			; +[  |b4|g4|r4]			paddw mm6, mm3			; +[  |b4|g4|r4]			pmaddwd mm1, mm7		; *= Y_MUL			pmaddwd mm3, mm7		; *= Y_MUL			movq mm4, mm1			; [r]			movq mm5, mm3			; [r]			psrlq mm4, 32			; +[g]			psrlq mm5, 32			; +[g]			paddd mm1, mm4			; +[b]			paddd mm3, mm5			; +[b]			mov ebx, [esp + 44 + 28]	; stride			movd eax, mm0			shr eax, 8			add eax, Y_ADD			mov [edi + ebx], al			movd eax, mm1			shr eax, 8			add eax, Y_ADD			mov [edi + ebx + 1], al			movd eax, mm2			shr eax, 8			add eax, Y_ADD			mov [edi], al			movd eax, mm3			shr eax, 8			add eax, Y_ADD			mov [edi + 1], al			; u_out, v_out			movq mm0, mm6			; = [  |b4|g4|r4]			pmaddwd mm6, [v_mul]		; *= V_MUL			pmaddwd mm0, [u_mul]		; *= U_MUL			movq mm1, mm0			movq mm2, mm6			psrlq mm1, 32			psrlq mm2, 32			paddd mm0, mm1			paddd mm2, mm6			movd eax, mm0			shr eax, 10			add eax, U_ADD			mov [ecx], al			movd eax, mm2			shr eax, 10			add eax, V_ADD			mov [edx], al			add esi, 2 * 3			; (use 4 for rgb32)			add edi, 2			inc ecx			inc edx			dec ebp			jnz near .xloop		sub esi, [esp + 4]			; src  -= src_dif		add edi, [esp + 16]			; y_out += y_dif		add ecx, [esp + 20]			; u_out += uv_dif		add edx, [esp + 20]			; v_out += uv_dif		dec dword [esp+0]		jnz near .yloop		emms		add esp, 24		pop ebp		pop edi		pop esi		pop ecx		pop ebx		ret;===========================================================================;;	void rgb32_to_yv12mmx(uint8_t * const y_out,;						uint8_t * const u_out,;						uint8_t * const v_out,;						const uint8_t * const src,;						const uint32_t width,;						const uint32_t height,;						const uint32_t stride);; always flips;;===========================================================================align 16cglobal rgb32_to_yv12_mmxrgb32_to_yv12_mmx		push ebx		push ecx		push esi		push edi					push ebp			; STACK BASE = 20		; global consants		mov eax, [esp + 20 + 28]	; stride		mov ecx, [esp + 20 + 20]	; width		mov ebx, eax		sub ebx, ecx						shr ebx, 1					; ebx = (stride-width) / 2;		push ebx					; [esp + 20] = uv_dif							; STACK BASE = 24		add eax, eax		sub eax, ecx				; eax = 2*stride - width		push eax					; [esp + 16] = y_dif							; STACK BASE = 28		mov ebx, ecx				; 		shr ebx, 1					;		push ebx					; [esp + 12] = width/2							; STACK BASE = 32		mov edx, ecx		shl ecx, 2					; ecx = 4*width   (use 4 for rgb32)		push ecx					; [esp + 8] = width4							; STACK BASE = 36		mov edx, ecx		add edx, ecx		add edx, ecx				; edx = 3*width4		push edx					; [esp + 4] = src_dif							; STACK BASE = 40		mov esi, [esp + 40 + 16]	; src		mov ebp, [esp + 40 + 24]	; eax = height		mov eax, ebp		sub eax, 2		mul ecx		add esi, eax				; src += (height-2) * width4		mov edi, [esp + 40 + 4]		; y_out		mov ecx, [esp + 40 + 8]		; u_out		mov edx, [esp + 40 + 12]	; v_out		movq mm7, [y_mul]				shr ebp, 1				; ebp = height / 2		push ebp				; [esp+0] = tmp								; STACK BASE = 44.yloop		mov ebp, [esp + 12]		; ebp = width /2 .xloop			; y_out			mov ebx, [esp + 8]			; ebx = width4			pxor mm4, mm4			movq mm0, [esi]			; src[4...       |0...     ]			movq mm2, [esi+ebx]		; src[width4+4...|width4...]			movq mm1, mm0			movq mm3, mm2			punpcklbw mm0, mm4		; [  |b |g |r ]			punpcklbw mm2, mm4		; [  |b |g |r ]			punpckhbw mm1, mm4		; [  |b |g |r ]			punpckhbw mm3, mm4		; [  |b |g |r ]			movq mm6, mm0			; = [  |b4|g4|r4]			paddw mm6, mm2			; +[  |b4|g4|r4]			pmaddwd mm0, mm7		; *= Y_MUL			pmaddwd mm2, mm7		; *= Y_MUL			movq mm4, mm0			; [r]			movq mm5, mm2			; [r]			psrlq mm4, 32			; +[g]			psrlq mm5, 32			; +[g]			paddd mm0, mm4			; +[b]			paddd mm2, mm5			; +[b]			paddw mm6, mm1			; +[  |b4|g4|r4]			paddw mm6, mm3			; +[  |b4|g4|r4]			pmaddwd mm1, mm7		; *= Y_MUL			pmaddwd mm3, mm7		; *= Y_MUL			movq mm4, mm1			; [r]			movq mm5, mm3			; [r]			psrlq mm4, 32			; +[g]			psrlq mm5, 32			; +[g]			paddd mm1, mm4			; +[b]			paddd mm3, mm5			; +[b]			mov ebx, [esp + 44 + 28]	; stride			movd eax, mm0			shr eax, 8			add eax, Y_ADD			mov [edi + ebx], al			movd eax, mm1			shr eax, 8			add eax, Y_ADD			mov [edi + ebx + 1], al			movd eax, mm2			shr eax, 8			add eax, Y_ADD			mov [edi], al			movd eax, mm3			shr eax, 8			add eax, Y_ADD			mov [edi + 1], al			; u_out, v_out			movq mm0, mm6			; = [  |b4|g4|r4]			pmaddwd mm6, [v_mul]		; *= V_MUL			pmaddwd mm0, [u_mul]		; *= U_MUL			movq mm1, mm0			movq mm2, mm6			psrlq mm1, 32			psrlq mm2, 32			paddd mm0, mm1			paddd mm2, mm6			movd eax, mm0			shr eax, 10			add eax, U_ADD			mov [ecx], al			movd eax, mm2			shr eax, 10			add eax, V_ADD			mov [edx], al			add esi, 2 * 4			; (use 4 for rgb32)			add edi, 2			inc ecx			inc edx			dec ebp			jnz near .xloop		sub esi, [esp + 4]			; src  -= src_dif		add edi, [esp + 16]			; y_out += y_dif		add ecx, [esp + 20]			; u_out += uv_dif		add edx, [esp + 20]			; v_out += uv_dif		dec dword [esp+0]		jnz near .yloop		emms		add esp, 24		pop ebp		pop edi		pop esi		pop ecx		pop ebx		ret

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美腿丝袜在线亚洲一区 | 国产剧情一区在线| 欧美一区二区久久久| 石原莉奈在线亚洲二区| 日韩三级在线免费观看| 久久99国内精品| 国产日本一区二区| 色婷婷综合久久久中文字幕| 亚洲成人手机在线| 精品国产乱码久久久久久1区2区 | 亚洲免费在线视频| 欧美日韩精品专区| 国产自产v一区二区三区c| 日韩精品乱码av一区二区| 日韩欧美在线网站| 成人一区在线看| 亚洲一区二区3| 久久只精品国产| 一本到一区二区三区| 美女免费视频一区二区| 国产精品区一区二区三区| 在线观看av不卡| 国模冰冰炮一区二区| 一区二区三区自拍| 精品三级在线看| 色综合久久综合中文综合网| 久久精品99国产精品| 最新国产の精品合集bt伙计| 欧美日韩1234| 不卡一卡二卡三乱码免费网站| 视频在线观看国产精品| 国产精品免费网站在线观看| 欧美一区二区久久| 91亚洲精华国产精华精华液| 毛片av一区二区三区| 亚洲另类色综合网站| 欧美大片免费久久精品三p| 91麻豆国产在线观看| 久久福利视频一区二区| 亚洲一区在线观看免费| 中文一区一区三区高中清不卡| 91精品蜜臀在线一区尤物| 99re热这里只有精品免费视频| 精品一区二区三区不卡| 亚洲伊人伊色伊影伊综合网| 久久精品一区二区三区不卡牛牛| 欧美日韩精品一区二区三区四区| 懂色av一区二区三区蜜臀| 久久99热这里只有精品| 午夜精品一区在线观看| 亚洲视频一二三区| 中文字幕精品一区二区精品绿巨人 | 不卡的电影网站| 韩国v欧美v日本v亚洲v| 天堂av在线一区| 亚洲一级二级在线| 亚洲精品国产品国语在线app| 国产日韩欧美综合一区| 精品福利一区二区三区免费视频| 欧美二区在线观看| 欧美日韩aaaaaa| 欧美日韩免费高清一区色橹橹 | 国产欧美视频一区二区| 久久久91精品国产一区二区三区| 欧美mv日韩mv亚洲| 精品久久久久久无| 精品国产污污免费网站入口| 日韩色在线观看| 日韩午夜在线影院| 欧美电影免费观看完整版| 欧美一区二区三区免费视频| 欧美高清性hdvideosex| 91精品欧美久久久久久动漫| 在线不卡中文字幕| 欧美一二三区在线| 亚洲综合色网站| 一区二区在线免费| 性做久久久久久免费观看欧美| 亚洲一线二线三线久久久| 亚洲国产sm捆绑调教视频| 亚洲一区二区三区精品在线| 亚洲一区二区综合| 五月天国产精品| 久久精品久久99精品久久| 久88久久88久久久| 国产精品一区二区在线观看不卡| 国产成人精品影视| 91婷婷韩国欧美一区二区| 色国产综合视频| 56国语精品自产拍在线观看| 日韩美女主播在线视频一区二区三区 | 奇米四色…亚洲| 国产一区二区三区四| 成人免费av资源| 91丨九色丨蝌蚪丨老版| 欧美日韩国产大片| 精品福利二区三区| ...中文天堂在线一区| 亚洲一区二区三区中文字幕在线| 视频在线观看91| 国产精品自拍网站| 色天天综合久久久久综合片| 在线不卡中文字幕播放| 久久久精品欧美丰满| 日韩美女视频一区| 日本不卡视频在线| 成人激情视频网站| 欧美喷水一区二区| 国产亚洲欧美一级| 亚洲高清一区二区三区| 国产精品一二三四| 91成人在线精品| 2023国产精品自拍| 亚洲一区二区三区四区在线观看 | 国产麻豆午夜三级精品| 色乱码一区二区三区88| 精品国产一区二区在线观看| 亚洲伦理在线精品| 精品一区二区三区久久久| 色菇凉天天综合网| 久久精品亚洲乱码伦伦中文| 亚洲午夜精品网| 成人伦理片在线| 日韩欧美一级片| 亚洲一二三专区| 成人av在线资源网| 欧美v国产在线一区二区三区| 亚洲色图.com| 国产福利视频一区二区三区| 91麻豆精品国产91久久久久久| 国产精品久久久久久久久图文区| 日本vs亚洲vs韩国一区三区二区| av影院午夜一区| 亚洲3atv精品一区二区三区| 成人精品视频一区二区三区尤物| 欧美一卡二卡在线| 亚洲成av人片| 色94色欧美sute亚洲线路二| 国产日韩欧美一区二区三区综合| 日韩激情视频在线观看| 色综合天天综合网国产成人综合天| 日韩三级在线观看| 日韩电影免费在线看| 欧美色倩网站大全免费| 亚洲欧洲99久久| 成人a级免费电影| 久久综合资源网| 久久国产精品无码网站| 5858s免费视频成人| 亚洲永久免费av| 在线精品视频免费观看| 亚洲欧洲成人精品av97| 成人亚洲一区二区一| 久久亚洲精品小早川怜子| 男男视频亚洲欧美| 91麻豆精品国产综合久久久久久| 亚洲精品日产精品乱码不卡| 99精品欧美一区二区三区小说| 国产午夜亚洲精品理论片色戒| 国产一区二区三区蝌蚪| 精品成人一区二区三区四区| 狠狠色狠狠色合久久伊人| 欧美mv日韩mv亚洲| 国模娜娜一区二区三区| 精品成人一区二区三区四区| 久久69国产一区二区蜜臀| 欧美一级在线视频| 久久精品国产一区二区三 | 国产91在线看| 欧美国产欧美亚州国产日韩mv天天看完整| 精东粉嫩av免费一区二区三区| 精品国产乱码91久久久久久网站| 国内精品自线一区二区三区视频| 精品国产精品网麻豆系列| 国产福利一区二区三区视频在线 | 国产麻豆精品95视频| 国产日韩影视精品| www.亚洲色图.com| 一个色在线综合| 欧美精品18+| 免费在线观看一区| 精品久久久久久综合日本欧美 | av一区二区三区黑人| 专区另类欧美日韩| 欧美日韩国产综合一区二区三区| 日韩福利视频导航| 久久夜色精品国产噜噜av| 成人亚洲精品久久久久软件| 一区二区三区资源| 欧美成人艳星乳罩| 播五月开心婷婷综合| 亚洲成人自拍网| 久久人人97超碰com| www.成人在线| 亚洲成人精品一区| 久久蜜桃一区二区| 一本一本大道香蕉久在线精品| 日韩二区三区在线观看| 国产剧情av麻豆香蕉精品| 国产精一区二区三区|