blob: ef8f82536bb5df00bbec4df37b052d6dcebed5a9 [file] [log] [blame]
Independent JPEG Group's JPEG software release 6b
with x86 SIMD extension for IJG JPEG library version 1.02
== INSTALL ==
-----------------------------------------------------------
¢£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï
¤³¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢SIMD ÈÇ libjpeg ¥é¥¤¥Ö¥é¥ê¤Î¥³¥ó¥Ñ¥¤¥ë¤Î»ÅÊý¤ò²òÀâ
¤·¤Þ¤¹¡£¾¡¼ê¤Ê¤¬¤é¡¢¤³¤³¤Ç¤Ï¥ª¥ê¥¸¥Ê¥ëÈǤΠlibjpeg ¥é¥¤¥Ö¥é¥ê¤Î°·¤¤Êý
(¥³¥ó¥Ñ¥¤¥ë¤Î»ÅÊý¡¿¥×¥í¥°¥é¥à¤ÎÃæ¤Ç¤Î»È¤¤Êý)¤ò¤¢¤ëÄøÅÙ¿´ÆÀ¤Æ¤¤¤ë¤È¤¤¤¦
¿Í¤òÂоݤˤµ¤»¤Æ¤¤¤¿¤À¤­¤Þ¤¹¡£¥ª¥ê¥¸¥Ê¥ëÈǤλÈÍÑË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢
install.doc (±Ñʸ) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¢£¥¢¥»¥ó¥Ö¥é NASM ¤ÎÆþ¼ê¡¿¥¤¥ó¥¹¥È¡¼¥ë
¢£¥³¥ó¥Ñ¥¤¥ë¤Î»ÅÊý
¡ü Microsoft Visual C++ 6.0 °Ê¹ß¤ÎÅý¹ç³«È¯´Ä¶­(DevStudio)¤Î¾ì¹ç
¡ü jconfig.h ¤È Makefile ¤òÁªÂò¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë
¡ü UNIX ´Ä¶­¤Ç configure ¥¹¥¯¥ê¥×¥È¤ò»È¤¦
¢£Ê£¿ô¥Õ¥¡¥¤¥ëÂбþÈǤΠcjpeg/djpeg (altui/)
¢£¥³¡¼¥É¥µ¥¤¥º¤ò¸º¤é¤¹¤Ë¤Ï
¢£ÆÃÄê¤Î SIMD Ì¿Îá¤ò»ÈÍѤ·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï
¢£¥¢¥»¥ó¥Ö¥é NASM ¤ÎÆþ¼ê¡¿¥¤¥ó¥¹¥È¡¼¥ë
¤³¤Î x86 SIMD ÈÇ libjpeg ¥é¥¤¥Ö¥é¥ê¤Î SIMD ³ÈÄ¥Éôʬ¤Ï¡¢¤½¤Î¤Û¤È¤ó¤É¤¬
x86 ¤Î¥¢¥»¥ó¥Ö¥ê¸À¸ì¤Ç½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥¢¥»¥ó¥Ö¥ê¸À¸ì¥½¡¼¥¹¥³¡¼¥É¤ò
¥¢¥»¥ó¥Ö¥ë¤¹¤ë¤Ë¤Ï¡¢NASM (Netwide Assembler) ¤È¤¤¤¦¥¢¥»¥ó¥Ö¥é¤¬É¬ÍפǤ¹¡£
Microsoft ¤Î MASM ¤ä¤½¤Î¸ß´¹¥¢¥»¥ó¥Ö¥é¤Ç¤Ï°·¤¨¤Þ¤»¤ó¤Î¤ÇÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NASM (Netwide Assembler) ¤Ï¡¢¸ø¼°¥µ¥¤¥È http://nasm.sourceforge.net/ or
http://sourceforge.net/project/showfiles.php?group_id=6208 ¤«¤é¥À¥¦¥ó
¥í¡¼¥É¤Ç¤­¤Þ¤¹¡£Ver.0.98.25 °Ê¹ß¤ÎÈæ³ÓŪ¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î¤â¤Î¤¬É¬ÍפǤ¹¡£
¸½»þÅÀ(2006/02)¤Ç¤ÎºÇ¿·ÈÇ¤Ï Ver.0.98.39 ¤Ç¤¹¡£
¤Ê¤ª¡¢x86 ÈǤΠDarwin ¤ä Mac OS X ¤Ê¤É¤Ç»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¢¸½»þÅÀ¤Ç¤Ï¤Þ¤À
Àµ¼°¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤Æ¤¤¤Ê¤¤ Ver.0.98.40 °Ê¹ß¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¤â¤Î¤¬É¬ÍפǤ¹¡£
¸½»þÅÀ¤Ç¤Ï¡¢Ver.0.98.40 ¤Ï¾åµ­¤Î¸ø¼°¥µ¥¤¥È¤Î CVS ¥ê¥Ý¥¸¥È¥ê¤«¤é¥½¡¼¥¹
¥³¡¼¥É¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¡¿¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
Windows ·Ï¤Î¾ì¹ç¤Ï¡¢nasm-0.XX.YY-win32.zip (XX.YY ¤Ë¤Ï¥Ð¡¼¥¸¥ç¥óÈֹ椬Æþ¤ë)
¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¡¢¤½¤ì¤Ë´Þ¤Þ¤ì¤ë nasmw.exe ¤ò
£Ã¥³¥ó¥Ñ¥¤¥é¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë·²¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¾ì½ê¤Ë¥³¥Ô¡¼¤·¤Þ¤¹¡£
³Æ¼ï PC-UNIX ¤Î¾ì¹ç¤Ï¡¢OS ¤ÎÇÛÉÛ¸µ¤Ë¤Æ°Ü¿¢ºÑ¤ß¥Ñ¥Ã¥±¡¼¥¸¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë
¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤Þ¤ººÇ½é¤Ë¤½¤Á¤é¤ò³Îǧ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£¤½¤ì¤¬¤Ê¤¤
¾ì¹ç¤Ï¡¢¾åµ­¸ø¼°¥µ¥¤¥È¤«¤é¥½¡¼¥¹¥³¡¼¥É(nasm-0.XX.YY.tar.gz)¤ò¥À¥¦¥ó¥í¡¼¥É
¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¡¿¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£linux ¤Î¾ì¹ç¤Ç rpm ¥Ñ¥Ã¥±¡¼¥¸¤ò
°·¤¨¤ë¥·¥¹¥Æ¥à¤Î¾ì¹ç¤Ï¡¢¾åµ­¸ø¼°¥µ¥¤¥È¤Ë¤Æ rpm ¥Ð¥¤¥Ê¥ê¥Ñ¥Ã¥±¡¼¥¸¤âÆþ¼ê
¤Ç¤­¤Þ¤¹¡£
Ãí°ÕÅÀ¤È¤·¤Æ¡¢YASM (http://www.tortall.net/projects/yasm/) ¤Ï»È¤ï¤Ê¤¤¤Ç
¤¯¤À¤µ¤¤¡£YASM ¤Ï NASM ¸ß´¹¤òëð¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó(0.4.0)¤Ç¤Ï
¤Þ¤À¸ß´¹ÅÙ¤¬Ä㤤¾å¤Ë¥Ð¥°¤¬¤¢¤ë(¥¢¥É¥ì¥¹·×»»¤¬¤Þ¤Ã¤¿¤¯¥Ç¥¿¥é¥á¤Ê¥³¡¼¥É¤ò
À¸À®¤·¤Æ¤¤¤ë)¤¿¤á¡¢ÅöÊý¤Î¥Æ¥¹¥È¤Ç¤Ï YASM ¤Ç¥¢¥»¥ó¥Ö¥ë¤·¤¿¥³¡¼¥É¤Ï¤Þ¤Ã¤¿¤¯
Æ°¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£¡ÊÃí¡§¤³¤Î x86 SIMD extension for IJG JPEG library
¤Ç¤Ï¡¢¤¿¤È¤¨ YASM ¤òÍѤ¤¤Æ¤â AMD64 ¤Î 64bit Âбþ¤Ë¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¡Ë
¢£¥³¥ó¥Ñ¥¤¥ë¤Î»ÅÊý
¤Û¤È¤ó¤É¤ÎÉôʬ¤Ç¥ª¥ê¥¸¥Ê¥ëÈǤÈÊѤï¤ê¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢°Ê²¼¤ÎÀâÌÀ¤Ç¤Ï¡¢
¤³¤Î SIMD ³ÈÄ¥ÈǤËÆÃÍ­¤ÎÃí°ÕÅÀ¤òÃæ¿´¤Ë½Ò¤Ù¤Þ¤¹¡£
¡ü Microsoft Visual C++ 6.0 °Ê¹ß¤ÎÅý¹ç³«È¯´Ä¶­(DevStudio)¤Î¾ì¹ç
¤³¤ÎÇÛÉÛ¥»¥Ã¥È¤Ë¤Ï¡¢Microsoft Visual C++ 6.0 ÍÑ¤Î¥×¥í¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë
¤¬ÉÕ°¤·¤Æ¤¤¤Þ¤¹¡£V6.0 °Ê¹ß¤Î VC++ ¤Î¾ì¹ç¤Ï¡¢VC++ 6.0 ¤Î¥Õ¥¡¥¤¥ë¤ò
ÊÑ´¹(¥¤¥ó¥Ý¡¼¥È)¤·¤Æ»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£Microsoft Visual C++ 2005 Express
Edition ¤Ë¤Æ¡¢¥¤¥ó¥Ý¡¼¥È¡¿¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£
ÊýË¡¤Ï¡¢¤Þ¤º vc6proj ¥Õ¥©¥ë¥À¤ÎÃæ¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ò¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë·²
(*.c) ¤Î¤¢¤ë¥Õ¥©¥ë¥À¤Ë¤¹¤Ù¤Æ°ÜÆ°¤·¤Þ¤¹¡£¤½¤·¤Æ libjpeg.dsw ¤ò³«¤¤¤Æ
(¤â¤·¤¯¤Ï¥¤¥ó¥Ý¡¼¥È¤·¤Æ)¡¢¥á¥Ë¥å¡¼¤Î ¥Ó¥ë¥É¢ª¥Ð¥Ã¥Á¥Ó¥ë¥É ¤Ç¤¹¤Ù¤Æ¤Ë
¥Á¥§¥Ã¥¯¤òÆþ¤ì¤Æ¥Ó¥ë¥É¤¹¤ì¤Ð£Ï£Ë¤Ç¤¹¡£
¥ï¡¼¥¯¥¹¥Ú¡¼¥¹ libjpeg.dsw ¤Ë¤Ï¡¢°Ê²¼¤Î¥×¥í¥¸¥§¥¯¥È¤¬¼ý¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£
¢¡ makecfg.dsp
¤³¤Î¥×¥í¥¸¥§¥¯¥È¤Ï¡¢makecfg.c ¤ò¥³¥ó¥Ñ¥¤¥ë¡¿¥ê¥ó¥¯¤·¤Æ¡¢¥«¥¹¥¿¥à
¥Ó¥ë¥É¥¹¥Æ¥Ã¥×¤Ç¤½¤ì(makecfg.exe)¤ò¼Â¹Ô¤·¡¢libjpeg.dsp ¤Î¥Ó¥ë¥É¤Ë
ɬÍפÊÀßÄê¥Õ¥¡¥¤¥ë jsimdcfg.inc ¤òºî¤ëƯ¤­¤ò¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¡¢libjpeg.dsp ¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ëÁ°¤Ëɬ¤º¥³¥ó¥Ñ¥¤¥ë(¼Â¹Ô)
¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¢¡ libjpeg.dsp
JPEG ¥é¥¤¥Ö¥é¥ê libjpeg.lib ¤ò¥Ó¥ë¥É¤·¤Þ¤¹¡£makecfg.dsp ¤¬½ÐÎϤ¹¤ë
ÀßÄê¥Õ¥¡¥¤¥ë jsimdcfg.inc ¤¬É¬ÍפǤ¹¡£
¢¡ cjpeg.dsp, djpeg.dsp, jpegtran.dsp, rdjpgcom.dsp, wrjpgcom.dsp
IJG JPEG library ¤ËÉÕ°¤·¤Æ¤¤¤ë¥µ¥ó¥×¥ë¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤¹¡£
cjpeg ¤Ï JPEG °µ½Ì¤ò¡¢djpeg ¤Ï JPEG Ÿ³«¤ò¡¢jpegtran ¤Ï JPEG
¥Õ¥¡¥¤¥ë¤ÎÊÑ´¹¤ò¤·¤Þ¤¹¡£rdjpgcom ¤È wrjpgcom ¤Ï¡¢JPEG¥Õ¥¡¥¤¥ë
Ãæ¤Î¥Æ¥­¥¹¥È¥³¥á¥ó¥Èʸ¤òÁàºî¤·¤Þ¤¹¡£
¢¡ apptest.dsp
¤Ç¤­¤¢¤¬¤Ã¤¿ cjpeg, djpeg, jpegtran ¤ËÂФ·¤Æ´Êñ¤ÊÆ°ºî¥Æ¥¹¥È¤ò
¤·¤Þ¤¹(make test ¤ÈƱÅù)¡£¤Þ¤º¡¢¤³¤ì¤é¤Î¥½¥Õ¥È¤Ç¼ÂºÝ¤Ë²èÁü¥Õ¥¡¥¤¥ë
¤òÊÑ´¹¤µ¤»¡¢¤½¤Î½ÐÎϤò fc.exe ¤ÇÈæ³Ó¤·¤Þ¤¹¡£"FC: Áê°ãÅÀ¤Ï¸¡½Ð
¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿" ¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬£¶²óɽ¼¨¤µ¤ì¤ì¤Ð¡¢¥×¥í¥°¥é¥à¤Ï
Àµ¤·¤¯Æ°¤¤¤Æ¤¤¤Þ¤¹¡£
JPEG ¥é¥¤¥Ö¥é¥ê libjpeg.lib ¤ò¾¤Î¥½¥Õ¥È¤Ë¥ê¥ó¥¯¤¹¤ë¤¿¤á¤Ë libjpeg.dsp
¤ò¾¤Î¥ï¡¼¥¯¥¹¥Ú¡¼¥¹¡¿¥½¥ê¥å¡¼¥·¥ç¥ó¤Ë´Þ¤á¤ë¾ì¹ç¤Ï¡¢makecfg.dsp ¤â
ɬ¤ºÆ±¤¸¥ï¡¼¥¯¥¹¥Ú¡¼¥¹¡¿¥½¥ê¥å¡¼¥·¥ç¥ó¤Ë´Þ¤á¡¢¾ï¤Ë makecfg.dsp ¤¬
libjpeg.dsp ¤è¤ê¤âÀè¤Ë¥Ó¥ë¥É¤µ¤ì¤ë¤è¤¦¤Ë¡¢°Í¸´Ø·¸¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£
¤³¤ì¤Ï¡¢Àè¤Ë½Ò¤Ù¤¿¤è¤¦¤Ë¡¢libjpeg.dsp ¤Ï makecfg.dsp ¤¬½ÐÎϤ¹¤ëÀßÄê
¥Õ¥¡¥¤¥ë jsimdcfg.inc ¤òɬÍפȤ·¤Æ¤¤¤ë¤¿¤á¤Ç¤¹¡£
ÀßÄêË¡¤Ï¡¢(VC++ 6.0¤Î¾ì¹ç) ¥á¥Ë¥å¡¼¤Î ¥×¥í¥¸¥§¥¯¥È ¢ª °Í¸´Ø·¸ ¤Ç
libjpeg ¤òÁªÂò¤·¡¢²¼¤Î°ìÍ÷¤ÎÃæ¤Î makecfg ¤Ë¥Á¥§¥Ã¥¯¤òÆþ¤ì¤Þ¤¹¡£
¡ü jconfig.h ¤È Makefile ¤òÁªÂò¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë
Windows ·Ï¤Î¥³¥ó¥Ñ¥¤¥é¤Î¾ì¹ç¤Ç¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç
¤Ï¡¢¤³¤ÎÊýË¡¤ò¤È¤Ã¤Æ¤¯¤À¤µ¤¤¡£
ÊýË¡¤Ï¡¢ÉÕ°¤Î jconfig.* ¤È Makefile.* ¤ÎÃ椫¤éŬÀڤʤâ¤Î¤ò¤½¤ì¤¾¤ì
°ì¤Ä¤º¤ÄÁª¤Ó¡¢¤½¤ì¤¾¤ì jconfig.h ¤È Makefile ¤Ë̾Á°¤òÊѤ¨¤Þ¤¹¡£
¤½¤·¤Æ¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê(¥Õ¥©¥ë¥À)¤ò¥«¥ì¥ó¥È¥Ç¥£¥ì
¥¯¥È¥ê¤Ë¤·¤Æ¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç make (VC++ ¤Î¾ì¹ç¤Ï nmake)¤È¥¿¥¤¥×
¤¹¤ì¤Ð£Ï£Ë¤Ç¤¹¡£¸å¤Ï¼«Æ°Åª¤Ë¡¢libjpeg ¥é¥¤¥Ö¥é¥ê¤È¡¢¥µ¥ó¥×¥ë¥¢¥×¥ê
¥±¡¼¥·¥ç¥ó(cjpeg ¤ä djpeg ¤Ê¤É)¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£
ÉÕ°¤·¤Æ¤¤¤ë jconfig.* ¤È Makefile.* ¤Ï¡¢°Ê²¼¤Î½èÍý·Ï¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£
¤Ê¤ª¡¢¥ª¥ê¥¸¥Ê¥ëÈǤËÉÕ°¤·¤Æ¤¤¤ë jconfig.* ¤È Makefile.* ¤Ï¡¢¤³¤Î
SIMD ÂбþÈǤǤϻÈÍѤǤ­¤Þ¤»¤ó(¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¹½À®¤¬ÊѤï¤Ã¤Æ¤¤¤ë¤¿¤á)¡£
¡¦ jconfig.dj & makefile.dj -- DJGPP v2.0 or later
¡¦ jconfig.bc5 & makefile.bc5 -- Borland C++ Compiler 5.5 (win32)
¡¦ jconfig.mgw & makefile.mgw, makefile.mgwdll -- MinGW
¡¦ jconfig.vc & makefile.vc , makefile.vcdll -- VC++ 6.0 or later
¡¦ jconfig.linux & makefile.linux -- linux
¤³¤ì¤é°Ê³°¤Î¥³¥ó¥Ñ¥¤¥é¤ËÂбþ¤µ¤»¤ë¾ì¹ç¤Ï¡¢install.doc ¤Ë½ñ¤¤¤Æ¤¢¤ë
¤è¤¦¤Ë¡¢¤Þ¤º ckconfig.c ¤ò¥³¥ó¥Ñ¥¤¥ë¡¿¼Â¹Ô¤·¤Æ jconfig.h ¤òÀ¸À®¤·¡¢
makefile.unix ¤â¤·¤¯¤Ï makefile.ansi ¤ò¼êºî¶È¤ÇÊÔ½¸¤·¤Æ Makefile ¤ò
ºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£
°Ê²¼¡¢³Æ¥³¥ó¥Ñ¥¤¥é¤Ë¸ÇÍ­¤ÎÃí°ÕÅÀ¤ò½Ò¤Ù¤Þ¤¹¡£
¢¡ jconfig.dj & makefile.dj -- DJGPP v2.0 or later.
²Äǽ¤Ê¸Â¤ê¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£DJGPP 2.03 + gcc 3.4.4
+ binutils 2.16.1 ¤È¤¤¤¦ÁȤ߹ç¤ï¤»¤ÇÆ°ºî¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£
makefile.dj ¤Ë¤Ï¡¢gcc 3.4.x ¸þ¤±¤Î¥³¥ó¥Ñ¥¤¥ë¥ª¥×¥·¥ç¥ó¤¬½ñ¤«¤ì¤Æ
¤¤¤Þ¤¹¤Î¤Ç¡¢gcc 3.4.x °Ê³°¤Ç¤¦¤Þ¤¯¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢Å¬Åö¤Ë
½ñ¤­Ä¾¤·¤Æ»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¢¡ jconfig.bc5 & makefile.bc5 -- Borland C++ Compiler 5.5 (win32)
²¿¤ÎÌäÂê¤â¤Ê¤¯¥³¥ó¥Ñ¥¤¥ë¤Ï¤Ç¤­¤ë¤Ï¤º¤Ç¤¹¤¬¡¢¤³¤Î BCC 5.5 ¤Î¾ì¹ç¤Ï¡¢
¤Û¤È¤ó¤É¤Î¥±¡¼¥¹¤Ç SSE/SSE2 ¤¬Æ°ºî¤·¤Þ¤»¤ó¡£Íýͳ¤Ï¡¢BCC 5.5 ¤ËÉÕ°¤Î
¥ê¥ó¥«(ilink32.exe)¤¬¸Å¤¯¡¢SSEÄê¿ô¤ò16¥Ð¥¤¥È¶­³¦¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤¹¤ë
¤³¤È¤¬¤Ç¤­¤Ê¤¤¤¿¤á¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢BCC 5.5 ¤ò»È¤¦¾ì¹ç¤Ï SSE/SSE2 ¤Î¥µ¥Ý¡¼¥È¤òºï½ü(¸å½Ò)¤·¤Æ
¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤ò¤ª´«¤á¤¤¤¿¤·¤Þ¤¹¡£
¢¡ jconfig.mgw & makefile.mgw, makefile.mgwdll -- MinGW
²Äǽ¤Ê¸Â¤ê¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£gcc 3.4.4 + binutils
2.16.91 ¤È¤¤¤¦ÁȤ߹ç¤ï¤»¤ÇÆ°ºî¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£
¤Þ¤¿¡¢GNU make ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤³¤È¤âɬÍפǤ¹¡£MinGW ¤Î¾ì¹ç¡¢
(make.exe ¤Ç¤Ï¤Ê¤¯) mingw32-make.exe ¤È¤¤¤¦Ì¾Á°¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì
¤Þ¤¹¤Î¤Ç¡¢make ¤Ç¤Ï¤Ê¤¯ mingw32-make ¤È¥¿¥¤¥×¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤³¤ì¤é¤Î makefile ¤Ë¤Ï¡¢gcc 3.4.x ¸þ¤±¤Î¥³¥ó¥Ñ¥¤¥ë¥ª¥×¥·¥ç¥ó¤¬½ñ¤«
¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢gcc 3.4.x °Ê³°¤Ç¤¦¤Þ¤¯¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢
ŬÅö¤Ë½ñ¤­Ä¾¤·¤Æ»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£
makefile.mgw ¤Ï¡¢libjpeg ¥é¥¤¥Ö¥é¥ê¤òÀÅŪ¥é¥¤¥Ö¥é¥ê(libjpeg.a)¤Ë
¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾å¤Ç¡¢¤³¤Î libjpeg.a ¤ò¥ê¥ó¥¯¤·¤¿ cjpeg, djpeg,
jpegtran ¤òºîÀ®¤·¤Þ¤¹¡£makefile.mgwdll ¤Ï¡¢libjpeg ¥é¥¤¥Ö¥é¥ê¤ò
DLL(jpeg62.dll)¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾å¤Ç¡¢¤³¤Î jpeg62.dll ¤ò¥ê¥ó¥¯¤·¤¿
cjpeg, djpeg, jpegtran ¤òºîÀ®¤·¤Þ¤¹¡£
¢¡ jconfig.vc & makefile.vc , makefile.vcdll -- VC++ 6.0 or later
VC++ 6.0 °Ê¹ß¤Ê¤é²¿¤ÎÌäÂê¤â¤Ê¤¯¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¤Ï¤º¤Ç¤¹¡£¥Õ¥ê¡¼¤Ç
¸ø³«¤µ¤ì¤Æ¤¤¤ë Microsoft Visual C++ Toolkit 2003 ¤Ç¤â¡¢nmake.exe
¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ð¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Þ¤¹¡£
makefile.vc ¤Ï¡¢libjpeg ¥é¥¤¥Ö¥é¥ê¤òÀÅŪ¥é¥¤¥Ö¥é¥ê(libjpeg.lib)¤Ë
¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾å¤Ç¡¢¤³¤Î libjpeg.lib ¤ò¥ê¥ó¥¯¤·¤¿ cjpeg, djpeg,
jpegtran ¤òºîÀ®¤·¤Þ¤¹¡£makefile.vcdll ¤Ï¡¢libjpeg ¥é¥¤¥Ö¥é¥ê¤ò
DLL(jpeg62.dll)¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾å¤Ç¡¢¤³¤Î jpeg62.dll ¤ò¥ê¥ó¥¯¤·¤¿
cjpeg, djpeg, jpegtran ¤òºîÀ®¤·¤Þ¤¹¡£
¢¡ jconfig.linux & makefile.linux -- linux
³Æ¼ï¤Î linux ¤ËÂбþ¤·¤Þ¤¹¤¬¡¢linux ¤Î¾ì¹ç¤Ï configure ¥¹¥¯¥ê¥×¥È¤ò
»È¤¦¤³¤È¤ò¶¯¤¯¤ª´«¤á¤¤¤¿¤·¤Þ¤¹¡£
¡ü UNIX ´Ä¶­¤Ç configure ¥¹¥¯¥ê¥×¥È¤ò»È¤¦
³Æ¼ï¤Î PC-UNIX ¤Î¾ì¹ç¤Ê¤É¡¢¥·¥§¥ë¡¦¥¹¥¯¥ê¥×¥È¤òÁö¤é¤»¤ë¤³¤È¤Î¤Ç¤­¤ë
´Ä¶­¤Î¾ì¹ç¤Ï¡¢configure ¥¹¥¯¥ê¥×¥È¤ò»È¤¦¤È´Êñ¤Ë¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Þ¤¹¡£
$ ./configure --enable-shared --enable-static
$ make
$ make test (¢«Æ°ºî¥Æ¥¹¥È¡¨É¬Íפ˱þ¤¸¤Æ)
# make install
¤³¤ÎÊýË¡¤Ç¤Ï¡¢°Ê²¼¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¤³¤È¤ò³Îǧ¤·¤Æ
¤¤¤Þ¤¹¡£¤³¤ì°Ê³°¤Î UNIX ·Ï OS ¤Ç¤â¥³¥ó¥Ñ¥¤¥ë¤Ï²Äǽ¤À¤È»×¤ï¤ì¤Þ¤¹¤¬¡¢
¼ã´³¤Î¼êľ¤·¤¬É¬Íפˤʤë¾ì¹ç¤â¤¢¤ë¤«¤È»×¤¤¤Þ¤¹¡£
¡¦Vine Linux 2.6r4 (gcc 2.95.3) ¤ª¤è¤Ó Vine Linux 3.2 (gcc 3.4.4)
¡¦Fedora core 3 (gcc 3.4.2) ¤ª¤è¤Ó Fedora core 4 (gcc 4.0.0)
¡¦FreeBSD 5.4 (gcc 3.4.2) ¤ª¤è¤Ó FreeBSD 6.0 (gcc 3.4.4)
¡¦NetBSD 2.0 (gcc 3.3.3) ¤ª¤è¤Ó NetBSD 3.0 (gcc 3.3.3)
¡¦Solaris 10 1/06 for x64/x86 (i386-pc-solaris2.10)
¡¦Darwin 8.0.1 for x86 (i386-apple-darwin8.0.1; gcc 3.3)
¡¦MinGW & MSYS (gcc 3.4.4)
¡¦cygwin (gcc 3.4.4)
Ʊº­¤Î configure ¥¹¥¯¥ê¥×¥È¤Ï GNU autoconf ¤ÇÀ¸À®¤µ¤ì¤¿¤â¤Î¤Ç¤¹¡£
¤³¤Î configure ¥¹¥¯¥ê¥×¥È¤Ï¡¢°ìÈÌŪ¤Ê configure ¥¹¥¯¥ê¥×¥È¤¬Ç§¼±¤¹¤ë
¥¹¥¤¥Ã¥Á¥ª¥×¥·¥ç¥ó¤Î¾¤Ë¡¢°Ê²¼¤Î¥¹¥¤¥Ã¥Á¤òǧ¼±¤·¤Þ¤¹¡£
¡û --enable-shared / --enable-static
--enable-shared ¤ò»ØÄꤹ¤ë¤È¡¢GNU libtool ¤ò»È¤Ã¤Æ¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò
ºîÀ®¤·¤Þ¤¹¡£--enable-static ¤ò»ØÄꤹ¤ë¤È¡¢Æ±¤¸¤¯ GNU libtool ¤ò
»È¤Ã¤ÆÀÅŪ¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤·¤Þ¤¹¡£Î¾Êý¤ò»ØÄꤹ¤ë¤È¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê
¤ÈÀÅŪ¥é¥¤¥Ö¥é¥ê¤ÎξÊý¤òºîÀ®¤·¤Þ¤¹¡£µÕ¤Ë¤³¤ÎξÊý¤È¤â»ØÄꤷ¤Ê¤¤¤È¡¢
GNU libtool ¤ò»È¤ï¤º¤ËÀÅŪ¥é¥¤¥Ö¥é¥ê¤Î¤ß¤òºîÀ®¤·¤Þ¤¹¡£
¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤¹¤ë¾ì¹ç¤ÏξÊý¤ò»ØÄꤹ¤ë
ɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£
¡û --disable-mmx / --disable-3dnow / --disable-sse / --disable-sse2
ÆÃÄê¤Î SIMD Ì¿Î᥻¥Ã¥È¤Î¥µ¥Ý¡¼¥È(¥³¡¼¥É)¤òºï½ü¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹¡£
¡û --enable-uchar-boolean
¥½¡¼¥¹¥³¡¼¥ÉÃæ¤Î bool ·¿¤ÎÄêµÁ¤ò int ·¿¤Ç¤Ï¤Ê¤¯ unsigned char ·¿¤Ë
Êѹ¹¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÄ̾ï¤Ï(ÆäËɬÍפǤʤ¤¸Â¤ê)»ÈÍѤ·¤Ê¤¤¤Ç
¤¯¤À¤µ¤¤¡£¤³¤ì¤Ï¡¢MinGW ¤Ê¤É¤Î Windows ¾å¤Î UNIX ´Ä¶­¤Ë¤Æ¡¢bool ·¿
¤ÎÄêµÁ¤ò Windows ¤Î½¬´·¤Ë¹ç¤ï¤»¤ë¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¹¡£
°Ê²¼¡¢³Æ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¸ÇÍ­¤ÎÃí°ÕÅÀ¤ò½Ò¤Ù¤Þ¤¹¡£
¢¡ ³Æ¼ï linux ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó
¤è¤Û¤É¸Å¤¤¤â¤Î¤Ç¤Ê¤¤¸Â¤ê¡¢¾åµ­¤Î¼ê½ç¤Ç²¿¤ÎÌäÂê¤â¤Ê¤¯¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë
¤Ï¤º¤Ç¤¹¡£
¾åµ­¤Î¼ê½ç¤Ç¶¦Í­¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤·¤¿¾ì¹ç¡¢¤½¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Ï
62.1.0 (¥Õ¥¡¥¤¥ë̾¡§libjpeg.so.62.1.0) ¤È¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤ÏÁ°½Ò¤·¤¿
¤È¤ª¤ê¡¢¥ª¥ê¥¸¥Ê¥ëÈÇ(¥Õ¥¡¥¤¥ë̾¡§libjpeg.so.62.0.0)¤È¥Ð¥¤¥Ê¥ê¥ì¥Ù¥ë
¤Ç¤Î¾å°Ì¸ß´¹À­¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¥ª¥ê¥¸¥Ê¥ëÈǤȤ½¤Î¤Þ¤ÞÃÖ¤­´¹¤¨¤ë¤³¤È
¤¬¤Ç¤­¤Þ¤¹¡£
rpm ¤ò»È¤Ã¤¿¥Ñ¥Ã¥±¡¼¥¸´ÉÍý¤òºÎÍѤ·¤Æ¤¤¤ë¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ç¤Ï¡¢
Ʊº­¤Î spec ¥Õ¥¡¥¤¥ë (libjpeg.spec) ¤â¤´ÍøÍѤ¤¤¿¤À¤±¤Þ¤¹¡£¤³¤ì¤Ï¡¢
Vine Linux 3.2 ¤ª¤è¤Ó Fedora core 4 ¤Ç¤ÎÆ°ºî¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£
¢¡ xBSD ¥Õ¥¡¥ß¥ê (FreeBSD/NetBSD/OpenBSD)
ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Î FreeBSD ¤È NetBSD ¤Ë´Ø¤·¤Æ¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë
¤³¤È¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£OpenBSD ¤Ë´Ø¤·¤Æ¤âÌäÂê¤Ï¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£
¤¿¤À¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë a.out ¤ò»È¤Ã¤¿¸Å¤¤¤â¤Î¤Ë´Ø¤·¤Æ¤Ï¡¢
¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¼ïÎà¤â°ì±þ configure ¥¹¥¯¥ê¥×¥È¤Ë¤Æ¸¡½Ð¤Ç¤­¤ë
¤è¤¦¤Ë¤·¤Æ¤¢¤ê¤Þ¤¹¤¬¡¢Æ°ºî¤Ï̤³Îǧ¤Ç¤¹¡£
FreeBSD ¤Î¾ì¹ç¡¢¾åµ­¤Î¼ê½ç¤Ç¶¦Í­¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤·¤¿¾ì¹ç¡¢¤½¤Î
¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Ï 9 (¥Õ¥¡¥¤¥ë̾¡§libjpeg.so.9) ¤È¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ï¡¢
ports collection ¤ÎÃæ¤Ë¤¢¤ë¸ø¼°ÈǤΥС¼¥¸¥ç¥óÈÖ¹æ¤Ë½à¤¸¤¿¤â¤Î¤Ç¡¢
(¥Ð¥¤¥Ê¥ê¾å°Ì¸ß´¹¤Ê¤Î¤Ç)¸ø¼°ÈǤȤ½¤Î¤Þ¤ÞÃÖ¤­´¹¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
NetBSD/OpenBSD ¤Î¾ì¹ç¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Ï 62.1.0 (¥Õ¥¡¥¤¥ë̾¡§
libjpeg.so.62.1.0) ¤Ë¤Ê¤ê¤Þ¤¹(¥Ð¥¤¥Ê¥ê¾å°Ì¸ß´¹)¡£
¢¡ Solaris 10
ºî¼Ô¤Î¥Æ¥¹¥È¤Ç¤Ï¡¢Àµ¾ï¤Ë¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Æ¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬¥Ð¥¤¥Ê¥ê
¸ß´¹¤Ë¤Ê¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹(¥Õ¥¡¥¤¥ë̾¡§libjpeg.so.62.1.0)¡£
¤Ç¤¹¤¬¡¢¤³¤Î SIMD ÈÇ libjpeg ¥é¥¤¥Ö¥é¥ê¤Ï AMD64 ¤Ë¤Ï¸½»þÅÀ¤Ç¤ÏÂбþ
¤·¤Æ¤¤¤Ê¤¤¤¿¤á¡¢32bitÈǤΥ饤¥Ö¥é¥ê¤·¤«ºî¤ì¤Þ¤»¤ó¡£
¢¡ Darwin for x86
ºî¼Ô¤Î¥Æ¥¹¥È¤Ç¤Ï¡¢Àµ¾ï¤Ë¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Æ¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬¥Ð¥¤¥Ê¥ê
¸ß´¹¤Ë¤Ê¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹(¥Õ¥¡¥¤¥ë̾¡§libjpeg.62.1.0.dylib)¡£
x86 ÈÇ Mac OS X ¤Ç¤â¡¢¥³¥ó¥Ñ¥¤¥ë¤µ¤¨¤Ç¤­¤ì¤ÐÆ°ºî¤¹¤ë¤â¤Î¤È»×¤ï¤ì¤Þ¤¹¡£
¸½»þÅÀ¤Ç¤Ï¡¢¥¢¥»¥ó¥Ö¥é nasm ¤Î Darwin ¤Ø¤Î¥µ¥Ý¡¼¥È¤¬½½Ê¬¤Ç¤Ê¤¤¤¿¤á¡¢
¤ä¤ä¥È¥ê¥Ã¥­¡¼¤Ê¥³¡¼¥É¤Ç Darwin / Mac OS X ¤ËÂбþ¤µ¤»¤Æ¤¤¤Þ¤¹¤¬¡¢
Æ°ºî¤Ë¤Ï¤Þ¤Ã¤¿¤¯ÌäÂê¤Ê¤¤¤Ï¤º¤Ç¤¹¡£
¢¡ MinGW & MSYS (gcc 3.4.4)
MinGW ¤Î¾ì¹ç¤Ï¡¢ÉÕ°¤Î makefile.mgw / makefile.mgwdll ¤ò»È¤¦¤³¤È¤ò
¿ä¾©¤·¤Þ¤¹¤¬¡¢MSYS ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ð configure ¥¹¥¯¥ê¥×¥È
¤â»È¤¨¤Þ¤¹¡£¤³¤Î¾ì¹ç¤Ï¡¢configure ¥¹¥¯¥ê¥×¥È¤òÁö¤é¤»¤ëºÝ¤Ë
--enable-uchar-boolean ¤òɬ¤º»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢
¾¤Î Windows ·Ï¤Î½èÍý·Ï(VC++¤Ê¤É)¤¬½ÐÎϤ¹¤ë¥³¡¼¥É¤È¥Ð¥¤¥Ê¥ê¸ß´¹¤Ë
¤Ê¤ê¤Þ¤¹¡£
¢¡ cygwin (gcc 3.4.4)
¤Þ¤ºÃí°Õ¤¹¤Ù¤­ÅÀ¤Ï¡¢cygwin ¤Î¾ì¹ç¡¢cygwin ¤«¤é¸ø¼°¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤Æ
¤¤¤ë DLL (cygjpeg-62.dll) ¤È¤Ï¥Ð¥¤¥Ê¥ê¸ß´¹¤Ë¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï¡¢
¸ø¼°ÈǤΥХ¤¥Ê¥ê¤Ë¤Ï lossless jpeg patch (ljpeg-6b.tar.gz) ¤È¤¤¤¦
½¤Àµ¥Ñ¥Ã¥Á¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤¿¤á¤Ç¡¢ÅöSIMDÈǤËÂФ·¤Æ¤³¤Î¥Ñ¥Ã¥Á¤òŬÍÑ
¤¹¤ë¤³¤È¤Ïº¤Æñ¤À¤«¤é¤Ç¤¹¡£
¥Ð¥¤¥Ê¥ê¸ß´¹¤Ç¤Ï¤Ê¤¤¤¿¤á¡¢¸ø¼°¥ê¥ê¡¼¥¹ÈǤΠDLL ¤ò¤³¤ÎSIMDÈǤÇÃÖ¤­
´¹¤¨¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£¤½¤Î¤¿¤áÅöSIMDÈǤΠDLL ¤Ï cygjpeg-162.dll
¤È¤¤¤¦Ì¾Á°¤Ë¤Ê¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ê¤Þ¤¹¡£¤³¤ì¤ò¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë
¤³¤È¤â¤Ç¤­¤Þ¤¹¤¬¡¢¤³¤ÎSIMDÈǤΠDLL ¤òÍøÍѤ¹¤ë¤Ë¤Ï¡¢JPEG ¥é¥¤¥Ö¥é¥ê¤ò
»ÈÍѤ·¤Æ¤¤¤ë¥½¥Õ¥È¤òºÆ¥³¥ó¥Ñ¥¤¥ë¡¿ºÆ¥ê¥ó¥¯¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤Ê¤ª¡¢¤³¤Î DLL ¤Ë¤Ä¤±¤é¤ì¤ë¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òÊѤ¨¤¿¤±¤ì¤Ð¡¢configure
¥¹¥¯¥ê¥×¥È¤òÁö¤é¤»¤ëÁ°¤Ë config.ver ¤ÎÆâÍƤòÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£
¢£Ê£¿ô¥Õ¥¡¥¤¥ëÂбþÈǤΠcjpeg/djpeg (altui/)
¥µ¥ó¥×¥ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î cjpeg ¤È djpeg ¤Ë¤Ä¤¤¤Æ¤Ç¤¹¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤Î
¾õÂ֤ǥ³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¤â¤Î(¾¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë·²¤ÈƱ¤¸¾ì½ê¤Ë¤¢¤ë cjpeg.c
¤È djpeg.c) ¤Ï¡¢°ìÅ٤˰ì¤Ä¤Î¥Õ¥¡¥¤¥ë¤·¤«ÊÑ´¹¤Ç¤­¤Ê¤¤¤â¤Î¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢
ÆþÎÏ¥Õ¥¡¥¤¥ë¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Ë°ì¤Ä¤·¤«»ØÄê¤Ç¤­¤º¡¢½ÐÎϤÏɸ½à½ÐÎϤ«
-outfile ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤µ¤ì¤Þ¤¹¡£³Æ¼ï¤Î UNIX ·Ï
OS ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ìÍøÍѤµ¤ì¤Æ¤¤¤ë cjpeg/djpeg ¤Ï¤³¤Î¥¿¥¤¥×¤Î¤â¤Î¤Ç¤¹¡£
°ìÊý¡¢IJG ¤«¤é¸ø¼°¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤Æ¤¤¤ë MS-DOS ÈǤΠcjpeg/djpeg
(ftp://ftp.simtel.net/.2/simtelnet/msdos/graphics/jpeg6_b.zip) ¤Ç¤Ï¡¢
Ê£¿ô¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤ò»ØÄê¤Ç¤­¡¢½ÐÎϤÏÆþÎÏ¥Õ¥¡¥¤¥ë¤ÈƱ¤¸¾ì½ê¤Ë¼«Æ°Åª¤Ë
ºî¤é¤ì¤Þ¤¹¡£¤³¤Î¥¿¥¤¥×¤Î cjpeg/djpeg ¤òºî¤ê¤¿¤±¤ì¤Ð¡¢altui/ ¤ÎÃæ¤Ë¤¢¤ë
cjpeg.c ¤È djpeg.c ¤ò¡¢¸µ¤«¤é¤¢¤ë(£±¥Õ¥¡¥¤¥ëÈǤÎ) cjpeg.c / djpeg.c ¤È
Æþ¤ìÂؤ¨¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î altui ÈǤΠcjpeg.c / djpeg.c ¤Ï¡¢
¸µ¡¹ jpegaltui.v6b.tar.gz ¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤ÇÇÛÉÛ¤µ¤ì¤Æ¤¤¤¿¤â¤Î¤ËÂФ·¤Æ
SIMD Âбþ²½¤Ë´Ø¤¹¤ë½¤Àµ¤ò²Ã¤¨¤¿¤â¤Î¤Ç¤¹¡£
¤³¤ÎÊ£¿ô¥Õ¥¡¥¤¥ëÂбþÈǤΠcjpeg/djpeg ¤ò Windows ·Ï¤Ê¤É¤ÎÈó UNIX ´Ä¶­¤Ç
»ÈÍѤ¹¤ë¾ì¹ç¡¢ÆþÎÏ¥Õ¥¡¥¤¥ë̾¤ò¥ï¥¤¥ë¥É¥«¡¼¥É¤Ç»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢
³Æ¥³¥ó¥Ñ¥¤¥é¤Ë¸ÇÍ­¤ÎÆÃÊ̤ÊÀßÄ꤬ɬÍפˤʤë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤Ê¤¼¤Ê¤é¡¢
MS-DOS·Ï¡¿Windows·Ï¤Î´Ä¶­¤Ç¤Ï°ìÈ̤ˡ¢¥ï¥¤¥ë¥É¥«¡¼¥É¤ÎŸ³«½èÍý¤Ï¥³¥ó¥Ñ¥¤¥é
¤ËÉÕ°¤Î¥¹¥¿¡¼¥È¥¢¥Ã¥×¥³¡¼¥ÉÆâ¤Ç¹Ô¤Ê¤ï¤ì¤ë¤¿¤á¤Ç¤¹¡£
MinGW ¤ä DJGPP V.2 ¤Ê¤É¤Î¾ì¹ç¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¤ÎŸ³«½èÍý¤ÏºÇ½é¤«¤éÍ­¸ú
¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¡¢ÆÃÊ̤ʤ³¤È¤ò¤·¤Ê¤¯¤Æ¤â¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤è¤ë¥Õ¥¡¥¤¥ë»ØÄê
¤Ï¤Ç¤­¤Þ¤¹¡£Microsoft Visual C++ ¤ä Borland C++ ¤Î¾ì¹ç¤Ï¡¢ÉáÄÌ¡¢¥ï¥¤¥ë¥É
¥«¡¼¥ÉŸ³«¤òÍ­¸ú²½¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë setargv.obj ¤ä
wildargs.obj ¤ò EXE ¥Õ¥¡¥¤¥ë¤Î¥ê¥ó¥¯»þ¤Ë¾¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È°ì½ï¤Ë
¥ê¥ó¥¯¤¹¤ë¤³¤È¤Ç¡¢¥ï¥¤¥ë¥É¥«¡¼¥ÉŸ³«¤òÍ­¸ú²½¤Ç¤­¤Þ¤¹¤¬¡¢¤³¤Î SIMD ÈÇ
cjpeg/djpeg ¤Î¾ì¹ç¤Ï¡¢setargv.obj ¤ä wildargs.obj ¤ÎÆâÍƤËÁêÅö¤¹¤ë¥³¡¼¥É¤ò
cjpeg.c/djpeg.c ¤ËľÀܽñ¤­¹þ¤ó¤Ç¤¢¤ë¤¿¤á¡¢¥×¥í¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ä Makefile
¤Ë¾åµ­¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤òÄɲ䷤ʤ¯¤Æ¤â¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤è¤ë¥Õ¥¡¥¤¥ë
»ØÄ꤬¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é°Ê³°¤Î£Ã¥³¥ó¥Ñ¥¤¥é¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ç¡¢
¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤è¤ë¥Õ¥¡¥¤¥ë»ØÄ꤬¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Î¥Þ¥Ë¥å¥¢¥ë
¤ò»²¾È¤·¤Æ¡¢¥ï¥¤¥ë¥É¥«¡¼¥ÉŸ³«¤òÍ­¸ú²½¤¹¤ëÀßÄê¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£
°ìÊý¡¢linux ¤Ê¤É¤Î UNIX ´Ä¶­¤Ç¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¤ÎŸ³«½èÍý¤Ï¥×¥í¥°¥é¥à¤¬
µ¯Æ°¤µ¤ì¤ëÁ°¤Ë¥³¥Þ¥ó¥É¥·¥§¥ë¤Ë¤è¤Ã¤Æ¹Ô¤Ê¤ï¤ì¤ë¤¿¤á¡¢¥³¥ó¥Ñ¥¤¥é¤ÎÀßÄê¤Ê¤É
¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤è¤ë¥Õ¥¡¥¤¥ë̾»ØÄê¤Ï¾ï¤Ë»È¤¨¤Þ¤¹¡£
¢£¥³¡¼¥É¥µ¥¤¥º¤ò¸º¤é¤¹¤Ë¤Ï
SIMD ¥³¡¼¥É¤òÉղä·¤¿¤¿¤á¡¢¤½¤Îʬ¤À¤±¥³¡¼¥É¥µ¥¤¥º¤¬Áý¤¨¤Æ¤¤¤Þ¤¹¡£¤Ç¤¹¤¬¡¢
JPEG library ¤ò°Ê²¼¤Î¤è¤¦¤Ê¥Ç¥Õ¥©¥ë¥È¤Î¾õÂ֤Ǿï¤Ë»ÈÍѤ·¤Æ¤¤¤ë¤Î¤Ê¤é¤Ð¡¢
jmorecfg.h ¤ÎÃæ¤Ë¤¢¤ëÀßÄê¹àÌÜ(¥Þ¥¯¥í)¤ò°Ê²¼¤Î¤è¤¦¤ËÊѹ¹¤·¤Æ¥³¥ó¥Ñ¥¤¥ë
¤¹¤ë¤³¤È¤Ç¡¢»ÈÍѤµ¤ì¤Ê¤¤¥³¡¼¥É¤ò½ü³°¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢¥³¡¼¥É¥µ¥¤¥º¤ò¸º¤é¤¹
¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
¡û cinfo.dct_method ¤ÎÃͤòÊѹ¹¤·¤Æ¤¤¤Ê¤¤¾ì¹ç
¤³¤ÎÊÑ¿ô¤Ï DCT±é»»¤ÎÊýË¡¤ò»ØÄꤷ¡¢cjpeg/djpeg ¤Ç¤Ï -dct ¥ª¥×¥·¥ç¥ó¤Ë
Âбþ¤·¤Þ¤¹¡£¤³¤ÎÊÑ¿ô¤ÎÃͤϥǥե©¥ë¥È¤Ç¤Ï JDCT_ISLOW ¤Ç¡¢ÆäËÍýͳ¤Î
¤Ê¤¤¸Â¤ê¤³¤Î¥Ç¥Õ¥©¥ë¥È¤Î¾õÂ֤ǻÈÍѤ¹¤ë¤³¤È¤ò¶¯¤¯¿ä¾©¤·¤Þ¤¹¡£°Ê²¼¤Î
¥Þ¥¯¥í¤ò #undef ¤Ë¤¹¤ë¤³¤È¤Ç¡¢JDCT_ISLOW ¤Î¾õÂ֤ǤϷ褷¤Æ»ÈÍѤµ¤ì¤Ê¤¤
¥³¡¼¥É¤ò½ü³°¤Ç¤­¤Þ¤¹¡£
#define DCT_IFAST_SUPPORTED -> #undef DCT_IFAST_SUPPORTED
#define DCT_FLOAT_SUPPORTED -> #undef DCT_FLOAT_SUPPORTED
¤³¤ì¤À¤±¤Ç¤â¤«¤Ê¤ê¤Î¥³¡¼¥É¥µ¥¤¥º¤¬ºï¸º¤Ç¤­¤Þ¤¹¡£ÆÃ¤Ë DCT_FLOAT_SUPPORTED
¤ò #undef ¤Ë¤¹¤ë¤È¡¢3DNow! ¤È SSE ¤Î¥µ¥Ý¡¼¥È¤â¼«Æ°Åª¤Ë̵¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ûŸ³«½èÍý¤Ç cinfo.do_fancy_upsampling ¤ÎÃͤòÊѹ¹¤·¤Æ¤¤¤Ê¤¤¾ì¹ç
¤³¤ÎÊÑ¿ô¤Ï djpeg ¤Ç¤Ï -nosmooth ¥ª¥×¥·¥ç¥ó¤ËÁêÅö¤·¡¢-nosmooth ¤ò»ØÄê
¤¹¤ë¤È FALSE ¤ËÀßÄꤵ¤ì¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï TRUE ¤Ç¡¢¤³¤ì¤âÆäËÍýͳ¤Î
¤Ê¤¤¸Â¤ê¤³¤Î¥Ç¥Õ¥©¥ë¥È¤Î¾õÂ֤ǻÈÍѤ¹¤ë¤³¤È¤ò¶¯¤¯¿ä¾©¤·¤Þ¤¹¡£°Ê²¼¤Î
¥Þ¥¯¥í¤ò #undef ¤Ë¤¹¤ë¤³¤È¤Ç¡¢TRUE ¤Î¾õÂ֤ǤϷ褷¤Æ»ÈÍѤµ¤ì¤Ê¤¤¥³¡¼¥É¤ò
½ü³°¤Ç¤­¤Þ¤¹¡£
#define UPSAMPLE_MERGING_SUPPORTED -> #undef UPSAMPLE_MERGING_SUPPORTED
¡ûŸ³«½èÍý¤Ç cinfo.scale_num, cinfo.scale_denom ¤ÎÃͤòÊѹ¹¤·¤Æ¤¤¤Ê¤¤¾ì¹ç
¤³¤ì¤ÏÍפ¹¤ë¤Ë¡ÖJPEG½Ì¾®Å¸³«¡×¤Îµ¡Ç½¤Ç¡¢djpeg ¤Ç¤Ï -scale M/N ¥ª¥×
¥·¥ç¥ó¤ËÁêÅö¤·¤Þ¤¹¡£¥µ¥à¥Í¥¤¥ëºîÀ®¤Ê¤É¤Î¾ì¹ç¤ËÍøÍѤµ¤ì¤ë¤³¤È¤¬Â¿¤¤
µ¡Ç½¤Ç¤¹¤¬¡¢¤³¤ì¤ò¤Þ¤Ã¤¿¤¯»ÈÍѤ·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢°Ê²¼¤Î¥Þ¥¯¥í¤ò #undef
¤Ë¤¹¤ë¤³¤È¤Ç¡¢¥³¡¼¥ÉÎ̤òºï¸º¤Ç¤­¤Þ¤¹¡£
#define IDCT_SCALING_SUPPORTED -> #undef IDCT_SCALING_SUPPORTED
Ãí°ÕÅÀ¤È¤·¤Æ¡¢¤³¤ì¤é¤ÎÀßÄêÊÑ¿ô¤¬¤É¤Î¤è¤¦¤Ê¾õÂ֤ǻȤï¤ì¤ë¤«Í½Â¬¤Ç¤­¤Ê¤¤
¾ì¹ç¡¢¤¿¤È¤¨¤Ð¡¢¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤òºî¤ë¾ì¹ç¤Ê¤É
¤Ï¡¢¤³¤¦¤¤¤Ã¤¿¥³¡¼¥Éºï¸º¤Ï¹Ô¤Ê¤¦¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¥³¡¼¥Éºï¸º¤ò¹Ô¤Ê¤¦
¤Î¤Ï¡¢JPEG ¥é¥¤¥Ö¥é¥ê¤Î»È¤ï¤ìÊý¤¬¤è¤¯¤ï¤«¤Ã¤Æ¤¤¤ëÆÃÄê¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó
¤Ë¥ê¥ó¥¯¤¹¤ë¾ì¹ç¤Î¤ß¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¢£ÆÃÄê¤Î SIMD Ì¿Îá¤ò»ÈÍѤ·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï
¤³¤ì¤Ï jconfig.h ¤ÎÃæÄø¤Ë¤¢¤ë¡¢#undef JSIMD_***_NOT_SUPPORTED ¤È¤¤¤¦
¥Þ¥¯¥í¤ò #define ¤Ë¤¹¤ë¤³¤È¤Ç¼Â¸½¤Ç¤­¤Þ¤¹¡£configure ¥¹¥¯¥ê¥×¥È¤Ç
--disable-mmx ¤Ê¤É¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢¤³¤Î¥Þ¥¯¥í¤Ï¼«Æ°Åª¤Ë
#define ¤µ¤ì¤Þ¤¹¡£
3DNow! ¤È SSE ¤Ï¸µ¡¹¡¢ÉâÆ°¾®¿ôÅÀDCT¤Ë¤·¤«ÍøÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó¤Î¤Ç¡¢¾å½Ò¤Î
DCT_FLOAT_SUPPORTED ¤ò #undef ¤Ë¤·¤¿¤À¤±¤Ç¤Þ¤È¤á¤Æ̵¸ú¤Ë¤µ¤ì¤Þ¤¹¡£
MMX ¤È SSE2 ¤Ï¡¢°µ½ÌŸ³«½èÍý¤Î³Æ½ê¤ËÍøÍѤµ¤ì¤Æ¤¤¤Æ¡¢¹â®²½¤Ø¤Î¹×¸¥ÅÙ¤¬
¹â¤¤¤Î¤Ç¡¢Í­¸ú¤Ë¤·¤Æ¤ª¤¯¤³¤È¤ò¤ªÁ¦¤á¤·¤Þ¤¹¤¬¡¢ÁȤ߹þ¤ßÍÑÅӤʤɡ¢¥³¡¼¥É
¤òÁö¤é¤»¤ë¥×¥í¥»¥Ã¥µ¤Î¼ïÎब¤ï¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¡ÖÄ̾ïÍøÍѤµ¤ì¤Ê¤¤Êý¡×
¤Î¥µ¥Ý¡¼¥È¤ò³°¤¹¤³¤È¤Ç¡¢¥³¡¼¥É¥µ¥¤¥º¤Îºï¸º¤¬¤Ç¤­¤Þ¤¹¡£
[EOF]