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

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

?? yv12_to_yuyv_mmx.asm

?? 網絡MPEG4IP流媒體開發源代碼
?? ASM
字號:
;/**************************************************************************; *; *	XVID MPEG-4 VIDEO CODEC; *	mmx yuv planar to yuyv/uyvy; *; *	This program is an implementation of a part of one or more MPEG-4; *	Video tools as specified in ISO/IEC 14496-2 standard.  Those intending; *	to use this software module in hardware or software products are; *	advised that its use may infringe existing patents or copyrights, and; *	any such use would be at such party's own risk.  The original; *	developer of this software module and his/her company, and subsequent; *	editors and their companies, will have no liability for use of this; *	software or modifications or derivatives thereof.; *; *	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., 675 Mass Ave, Cambridge, MA 02139, USA.; *; *************************************************************************/;/**************************************************************************; *; *	History:; *; *	05.12.2001	initial version; (c)2001 peter ross <pross@cs.rmit.edu.au>; *; *************************************************************************/bits 32section .data%macro cglobal 1 	%ifdef PREFIX		global _%1 		%define %1 _%1	%else		global %1	%endif%endmacroalign 16section .text;===========================================================================;; void yv12_to_uyvy_mmx(;				uint8_t * dst,;				int dst_stride,;				uint8_t * y_src,;				uint8_t * u_src,;				uint8_t * v_src,;				int y_stride,;				int uv_stride,;				int width,;				int height);;;	width must be multiple of 8;	~10% faster than plain c;;===========================================================================align 16cglobal yv12_to_yuyv_mmxyv12_to_yuyv_mmx		push ebx		push ecx		push esi		push edi					push ebp		; STACK BASE = 20		; global constants		mov ebx, [esp + 20 + 32]	; width		mov eax, [esp + 20 + 8]		; dst_stride		sub eax, ebx				; 		add eax, eax				; eax = 2*(dst_stride - width)		push eax					; [esp + 4] = dst_dif						; STACK BASE = 24		shr ebx, 3					; ebx = width / 8		mov edi, [esp + 24 + 4]		; dst		; --------- flip -------------		mov	ebp, [esp + 24 + 36]		test ebp, ebp		jl .flip		mov esi, [esp + 24 + 12]	; y_src		mov ecx, [esp + 24 + 16]	; u_src		mov edx, [esp + 24 + 20]	; v_src		shr ebp, 1					; y = height / 2		jmp short .yloop.flip		neg ebp			; height = -height				mov	eax, [esp + 24 + 24]	; y_stride		lea	edx, [ebp - 1]			; edx = height - 1		mul	edx		mov esi, [esp + 24 + 12]	; y_src		add esi, eax				; y_src += (height - 1) * y_stride		shr ebp, 1					; y = height / 2		mov	eax, [esp + 24 + 28]	; uv_stride		lea	edx, [ebp - 1]			; edx = height/2 - 1		mul	edx		mov ecx, [esp + 24 + 16]	; u_src		mov edx, [esp + 24 + 20]	; v_src		add ecx, eax				; u_src += (height/2 - 1) * uv_stride		add edx, eax				; v_src += (height/2 - 1) * uv_stride		neg	dword [esp + 24 + 24]	; y_stride = -y_stride		neg dword [esp + 24 + 28]	; uv_stride = -uv_stride	.yloop		xor eax, eax			; x = 0;.xloop1				movd mm0, [ecx+4*eax]		; [    |uuuu]				movd mm1, [edx+4*eax]		; [    |vvvv]				movq mm2, [esi+8*eax]		; [yyyy|yyyy]				punpcklbw mm0, mm1			; [vuvu|vuvu]				movq mm3, mm2				punpcklbw mm2, mm0			; [vyuy|vyuy]				punpckhbw mm3, mm0			; [vyuy|vyuy]				movq [edi], mm2				movq [edi+8], mm3				inc eax				add edi, 16										cmp eax, ebx				jb	.xloop1		add edi, [esp + 0]		; dst += dst_dif		add esi, [esp + 24 + 24]	; y_src += y_stride				xor eax, eax.xloop2				movd mm0, [ecx+4*eax]		; [    |uuuu]				movd mm1, [edx+4*eax]		; [    |vvvv]				movq mm2, [esi+8*eax]		; [yyyy|yyyy]				punpcklbw mm0, mm1			; [vuvu|vuvu]				movq mm3, mm2				punpcklbw mm2, mm0			; [vyuy|vyuy]				punpckhbw mm3, mm0			; [vyuy|vyuy]				movq [edi], mm2				movq [edi+8], mm3				inc eax				add edi, 16														cmp eax, ebx				jb	.xloop2		add edi, [esp + 0]			; dst += dst_dif		add esi, [esp + 24 + 24]	; y_src += y_stride		add ecx, [esp + 24 + 28]	; u_src += uv_stride		add edx, [esp + 24 + 28]	; v_src += uv_stride		dec	ebp				; y--		jnz	near .yloop		emms		add esp, 4		pop ebp		pop edi		pop esi		pop ecx		pop ebx		ret;===========================================================================;; void yv12_to_uyvy_mmx(;				uint8_t * dst,;				int dst_stride,;				uint8_t * y_src,;				uint8_t * u_src,;				uint8_t * v_src,;				int y_stride,;				int uv_stride,;				int width,;				int height);;;	width must be multiple of 8;	~10% faster than plain c;;===========================================================================align 16cglobal yv12_to_uyvy_mmxyv12_to_uyvy_mmx		push ebx		push ecx		push esi		push edi					push ebp		; STACK BASE = 20		; global constants		mov ebx, [esp + 20 + 32]	; width		mov eax, [esp + 20 + 8]		; dst_stride		sub eax, ebx				; 		add eax, eax				; eax = 2*(dst_stride - width)		push eax					; [esp + 4] = dst_dif						; STACK BASE = 24		shr ebx, 3					; ebx = width / 8		mov edi, [esp + 24 + 4]		; dst		; --------- flip -------------		mov	ebp, [esp + 24 + 36]		test ebp, ebp		jl .flip		mov esi, [esp + 24 + 12]	; y_src		mov ecx, [esp + 24 + 16]	; u_src		mov edx, [esp + 24 + 20]	; v_src		shr ebp, 1					; y = height / 2		jmp short .yloop.flip		neg ebp			; height = -height				mov	eax, [esp + 24 + 24]	; y_stride		lea	edx, [ebp - 1]			; edx = height - 1		mul	edx		mov esi, [esp + 24 + 12]	; y_src		add esi, eax				; y_src += (height - 1) * y_stride		shr ebp, 1					; y = height / 2		mov	eax, [esp + 24 + 28]	; uv_stride		lea	edx, [ebp - 1]			; edx = height/2 - 1		mul	edx		mov ecx, [esp + 24 + 16]	; u_src		mov edx, [esp + 24 + 20]	; v_src		add ecx, eax				; u_src += (height/2 - 1) * uv_stride		add edx, eax				; v_src += (height/2 - 1) * uv_stride		neg	dword [esp + 24 + 24]	; y_stride = -y_stride		neg dword [esp + 24 + 28]	; uv_stride = -uv_stride	.yloop		xor eax, eax			; x = 0;.xloop1				movd mm0, [ecx+4*eax]		; [    |uuuu]				movd mm1, [edx+4*eax]		; [    |vvvv]				movq mm2, [esi+8*eax]		; [yyyy|yyyy]				punpcklbw mm0, mm1			; [vuvu|vuvu]				movq mm1, mm0				punpcklbw mm0, mm2			; [yvyu|yvyu]				punpckhbw mm1, mm2			; [yvyu|yvyu]				movq [edi], mm0				movq [edi+8], mm1				inc eax				add edi, 16										cmp eax, ebx				jb	.xloop1		add edi, [esp + 0]		; dst += dst_dif		add esi, [esp + 24 + 24]	; y_src += y_stride				xor eax, eax.xloop2				movd mm0, [ecx+4*eax]		; [    |uuuu]				movd mm1, [edx+4*eax]		; [    |vvvv]				movq mm2, [esi+8*eax]		; [yyyy|yyyy]				punpcklbw mm0, mm1			; [vuvu|vuvu]				movq mm1, mm0				punpcklbw mm0, mm2			; [yvyu|yvyu]				punpckhbw mm1, mm2			; [yvyu|yvyu]				movq [edi], mm0				movq [edi+8], mm1				inc eax				add edi, 16														cmp eax, ebx				jb	.xloop2		add edi, [esp + 0]			; dst += dst_dif		add esi, [esp + 24 + 24]	; y_src += y_stride		add ecx, [esp + 24 + 28]	; u_src += uv_stride		add edx, [esp + 24 + 28]	; v_src += uv_stride		dec	ebp				; y--		jnz	near .yloop		emms		add esp, 4		pop ebp		pop edi		pop esi		pop ecx		pop ebx		ret

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
这里只有精品视频在线观看| 久久99精品久久久久婷婷| 亚洲老司机在线| 欧美二区在线观看| 日韩视频一区二区三区在线播放| 国产曰批免费观看久久久| 中文字幕欧美国产| 中文字幕免费不卡| 欧美三级蜜桃2在线观看| 午夜精品久久久久久久久久| 国产不卡视频在线观看| 成人免费视频网站在线观看| 国产一区二区三区美女| 欧美裸体一区二区三区| 激情av综合网| 亚洲在线视频免费观看| 不卡的av在线| 国产精品不卡在线观看| 国产精品拍天天在线| 成人欧美一区二区三区小说| 国产酒店精品激情| 色综合久久88色综合天天6| 欧美精品久久久久久久多人混战 | 日本成人在线网站| 在线播放日韩导航| 欧美一区二区三区四区在线观看 | 在线看国产一区| 丁香亚洲综合激情啪啪综合| 亚洲视频1区2区| 91捆绑美女网站| 99国产精品久久| 99久久精品国产导航| 成人99免费视频| 福利视频网站一区二区三区| 国产乱码精品1区2区3区| 久久精品久久综合| 日日摸夜夜添夜夜添国产精品| 亚洲韩国一区二区三区| 一区二区三区在线免费观看| 亚洲黄色免费电影| 一区二区三区四区视频精品免费 | 国产自产2019最新不卡| 精品亚洲成a人在线观看| 免费成人在线网站| 麻豆精品精品国产自在97香蕉| 午夜精品在线看| 日韩国产精品久久久| 日本美女一区二区三区| 精品一区二区三区在线视频| 精品一区二区在线看| 国产成人三级在线观看| 成人午夜看片网址| 99re热视频这里只精品| 欧美制服丝袜第一页| 欧美日韩一区二区三区四区五区 | 久久爱www久久做| 国产在线一区二区综合免费视频| 国产一区二区在线电影| 国产不卡视频一区二区三区| 91亚洲大成网污www| 欧美日韩精品久久久| 日韩三级伦理片妻子的秘密按摩| 精品福利一区二区三区| 中文乱码免费一区二区| 亚洲你懂的在线视频| 日韩av中文字幕一区二区| 国内久久精品视频| av中文字幕不卡| 欧美日韩一区二区三区高清 | 欧美男人的天堂一二区| 欧美tickle裸体挠脚心vk| 中文幕一区二区三区久久蜜桃| 一区二区三区日韩精品视频| 在线视频一区二区三| 91精品综合久久久久久| 国产人妖乱国产精品人妖| 夜夜爽夜夜爽精品视频| 久久99国产乱子伦精品免费| 99久久免费国产| 欧美片在线播放| 国产精品视频一二三| 午夜精品免费在线观看| 国产成人av电影在线| 欧美日韩一区二区不卡| 国产日产欧产精品推荐色| 亚洲国产成人av网| 国产成人精品影视| 4438x亚洲最大成人网| 国产精品美女一区二区| 亚洲成人黄色影院| 成人av网址在线| 日韩一区二区不卡| 亚洲美女在线一区| 国产精品亚洲第一| 欧美日本一区二区三区| 国产精品水嫩水嫩| 久久精品72免费观看| 欧美综合天天夜夜久久| 国产三级久久久| 性久久久久久久久久久久| 成人国产一区二区三区精品| 日韩免费高清电影| 亚洲一区成人在线| 99久久综合99久久综合网站| 精品国产凹凸成av人网站| 亚洲国产aⅴ成人精品无吗| 成人激情综合网站| 久久一日本道色综合| 天天综合网 天天综合色| 97精品国产露脸对白| 国产日产欧美精品一区二区三区| 美脚の诱脚舐め脚责91| 欧洲色大大久久| 中文字幕一区二区三区色视频 | 婷婷激情综合网| 色又黄又爽网站www久久| 国产精品网站一区| 国产乱妇无码大片在线观看| 欧美成人免费网站| 日本午夜一本久久久综合| 欧美视频一区二区三区在线观看 | 久久人人爽爽爽人久久久| 亚洲va韩国va欧美va| 91福利区一区二区三区| 亚洲欧美日韩小说| 成人97人人超碰人人99| 日本一区二区视频在线观看| 国产一区二区三区视频在线播放| 日韩欧美一级片| 日韩不卡免费视频| 91精品蜜臀在线一区尤物| 午夜免费久久看| 91精品国产综合久久精品性色| 亚洲国产精品人人做人人爽| 欧洲亚洲精品在线| 亚洲一区在线观看视频| 色婷婷综合视频在线观看| 亚洲日本成人在线观看| 日本丶国产丶欧美色综合| 一区二区三区在线视频观看| 欧美在线制服丝袜| 天堂一区二区在线免费观看| 欧美日韩二区三区| 日本成人在线一区| 久久综合狠狠综合久久综合88 | 91麻豆国产在线观看| 一区二区三区中文字幕| 欧美亚洲国产一区二区三区va | 一区二区三区在线免费| 欧美中文字幕一区二区三区| 首页国产欧美久久| 日韩精品一区二区三区视频在线观看 | 欧美综合欧美视频| 日本一不卡视频| 亚洲精品一区二区三区在线观看| 国内精品嫩模私拍在线| 欧美国产禁国产网站cc| 97超碰欧美中文字幕| 亚洲国产日韩精品| 日韩美女一区二区三区四区| 国产美女久久久久| 亚洲区小说区图片区qvod| 欧洲av在线精品| 精品中文字幕一区二区小辣椒| 国产日韩三级在线| 色香蕉成人二区免费| 日韩国产在线观看| 国产女主播在线一区二区| 99久精品国产| 麻豆精品新av中文字幕| 国产精品久久久久久亚洲伦 | 精品一区精品二区高清| 中文字幕在线播放不卡一区| 欧美在线free| 国产一区久久久| 亚洲一区二区3| 久久精品综合网| 欧美亚洲一区二区在线| 精品一区二区在线视频| 亚洲精品大片www| 26uuu色噜噜精品一区| 色悠久久久久综合欧美99| 九色porny丨国产精品| 亚洲免费av网站| 久久亚洲综合色| 在线观看不卡一区| 国产黄色91视频| 日韩av在线播放中文字幕| 中文字幕在线不卡| 欧美精品一区二区三区蜜桃| 欧美中文字幕一区二区三区亚洲| 国产一区二区三区免费看| 亚洲123区在线观看| 国产精品卡一卡二| 精品电影一区二区| 欧美色图12p| 99久久精品国产一区二区三区 | 91亚洲精华国产精华精华液| 久久激五月天综合精品| 亚洲777理论|