1; 2; jcgray.asm - grayscale colorspace conversion (MMX) 3; 4; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB 5; Copyright 2011 D. R. Commander 6; 7; Based on 8; x86 SIMD extension for IJG JPEG library 9; Copyright (C) 1999-2006, MIYASAKA Masaru. 10; For conditions of distribution and use, see copyright notice in jsimdext.inc 11; 12; This file should be assembled with NASM (Netwide Assembler), 13; can *not* be assembled with Microsoft's MASM or any compatible 14; assembler (including Borland's Turbo Assembler). 15; NASM is available from http://nasm.sourceforge.net/ or 16; http://sourceforge.net/project/showfiles.php?group_id=6208 17; 18; [TAB8] 19 20%include "jsimdext.inc" 21 22; -------------------------------------------------------------------------- 23 24%define SCALEBITS 16 25 26F_0_114 equ 7471 ; FIX(0.11400) 27F_0_250 equ 16384 ; FIX(0.25000) 28F_0_299 equ 19595 ; FIX(0.29900) 29F_0_587 equ 38470 ; FIX(0.58700) 30F_0_337 equ (F_0_587 - F_0_250) ; FIX(0.58700) - FIX(0.25000) 31 32; -------------------------------------------------------------------------- 33 SECTION SEG_CONST 34 35 alignz 16 36 global EXTN(jconst_rgb_gray_convert_mmx) 37 38EXTN(jconst_rgb_gray_convert_mmx): 39 40PW_F0299_F0337 times 2 dw F_0_299, F_0_337 41PW_F0114_F0250 times 2 dw F_0_114, F_0_250 42PD_ONEHALF times 2 dd (1 << (SCALEBITS-1)) 43 44 alignz 16 45 46; -------------------------------------------------------------------------- 47 SECTION SEG_TEXT 48 BITS 32 49 50%include "jcgryext-mmx.asm" 51 52%undef RGB_RED 53%undef RGB_GREEN 54%undef RGB_BLUE 55%undef RGB_PIXELSIZE 56%define RGB_RED EXT_RGB_RED 57%define RGB_GREEN EXT_RGB_GREEN 58%define RGB_BLUE EXT_RGB_BLUE 59%define RGB_PIXELSIZE EXT_RGB_PIXELSIZE 60%define jsimd_rgb_gray_convert_mmx jsimd_extrgb_gray_convert_mmx 61%include "jcgryext-mmx.asm" 62 63%undef RGB_RED 64%undef RGB_GREEN 65%undef RGB_BLUE 66%undef RGB_PIXELSIZE 67%define RGB_RED EXT_RGBX_RED 68%define RGB_GREEN EXT_RGBX_GREEN 69%define RGB_BLUE EXT_RGBX_BLUE 70%define RGB_PIXELSIZE EXT_RGBX_PIXELSIZE 71%define jsimd_rgb_gray_convert_mmx jsimd_extrgbx_gray_convert_mmx 72%include "jcgryext-mmx.asm" 73 74%undef RGB_RED 75%undef RGB_GREEN 76%undef RGB_BLUE 77%undef RGB_PIXELSIZE 78%define RGB_RED EXT_BGR_RED 79%define RGB_GREEN EXT_BGR_GREEN 80%define RGB_BLUE EXT_BGR_BLUE 81%define RGB_PIXELSIZE EXT_BGR_PIXELSIZE 82%define jsimd_rgb_gray_convert_mmx jsimd_extbgr_gray_convert_mmx 83%include "jcgryext-mmx.asm" 84 85%undef RGB_RED 86%undef RGB_GREEN 87%undef RGB_BLUE 88%undef RGB_PIXELSIZE 89%define RGB_RED EXT_BGRX_RED 90%define RGB_GREEN EXT_BGRX_GREEN 91%define RGB_BLUE EXT_BGRX_BLUE 92%define RGB_PIXELSIZE EXT_BGRX_PIXELSIZE 93%define jsimd_rgb_gray_convert_mmx jsimd_extbgrx_gray_convert_mmx 94%include "jcgryext-mmx.asm" 95 96%undef RGB_RED 97%undef RGB_GREEN 98%undef RGB_BLUE 99%undef RGB_PIXELSIZE 100%define RGB_RED EXT_XBGR_RED 101%define RGB_GREEN EXT_XBGR_GREEN 102%define RGB_BLUE EXT_XBGR_BLUE 103%define RGB_PIXELSIZE EXT_XBGR_PIXELSIZE 104%define jsimd_rgb_gray_convert_mmx jsimd_extxbgr_gray_convert_mmx 105%include "jcgryext-mmx.asm" 106 107%undef RGB_RED 108%undef RGB_GREEN 109%undef RGB_BLUE 110%undef RGB_PIXELSIZE 111%define RGB_RED EXT_XRGB_RED 112%define RGB_GREEN EXT_XRGB_GREEN 113%define RGB_BLUE EXT_XRGB_BLUE 114%define RGB_PIXELSIZE EXT_XRGB_PIXELSIZE 115%define jsimd_rgb_gray_convert_mmx jsimd_extxrgb_gray_convert_mmx 116%include "jcgryext-mmx.asm" 117