| Independent JPEG Group's JPEG software release 6b |
| with x86 SIMD extension for IJG JPEG library version 1.02 |
| == README == |
| ----------------------------------------------------------- |
| |
| ** Note ** |
| The accompanying documents related to x86 SIMD extension are written in |
| Japanese. The English version of these documents is currently unavailable. |
| I apologize for this inconvenience to international programmers. |
| |
| Most of the source code of the extension part is written in assembly |
| language. To compile the source, you need NASM (netwide assembler). |
| NASM is available from http://nasm.sourceforge.net/ or |
| http://sourceforge.net/project/showfiles.php?group_id=6208 . |
| |
| At present, the x86 SIMD extension doesn't support 64-bit mode of |
| AMD64 (x86_64). |
| |
| The x86 SIMD extension is an unofficial extension to the IJG JPEG |
| software. Please do not send any questions about this distribution |
| to the Independent JPEG Group. |
| |
| For conditions of distribution and use, see the IJG's README file. |
| The same conditions apply to this SIMD-extended JPEG software. |
| |
| |
| |
| ¢£¤³¤Î¥½¥Õ¥È¤Ï |
| |
| JPEG ¤Î¥µ¥Ý¡¼¥È¥é¥¤¥Ö¥é¥ê¤È¤·¤Æ¹¤¯»È¤ï¤ì¤Æ¤¤¤ë Independent JPEG Group's |
| JPEG library (libjpeg ¥é¥¤¥Ö¥é¥ê) ¤Ë¡¢Intel x86 ·Ï CPU ¤Î»ý¤Ä SIMD Ì¿Îá¤ò |
| ÍøÍѤ·¤¿¥³¡¼¥É(¥ë¡¼¥Á¥ó)¤ò¿·¤¿¤ËÄɲä·¡¢¹â®²½²þ¤¤·¤¿¤â¤Î¤Ç¤¹¡£ |
| MMX ¤ä SSE ¤Ê¤É¤Î SIMD ±é»»µ¡Ç½¤òÁõÈ÷¤·¤Æ¤¤¤ë¥×¥í¥»¥Ã¥µ¾å¤ÇÆ°ºî¤µ¤»¤ë¤È¡¢ |
| ¥ª¥ê¥¸¥Ê¥ëÈǤΠlibjpeg ¥é¥¤¥Ö¥é¥ê¤ÈÈæ³Ó¤·¤Æ 2¡Á3 ÇÜÄøÅ٤ήÅÙ¤ÇÆ°ºî¤·¤Þ¤¹¡£ |
| ¤Þ¤¿¡¢SIMD ²½¤Ë°Í¤é¤Ê¤¤¹â®²½²þ¤¤â¤¤¤¯¤Ä¤«»Ü¤µ¤ì¤Æ¤ª¤ê¡¢SIMD ±é»»¤Î»È¤¨ |
| ¤Ê¤¤µì·¿CPU¤Ë¤ª¤¤¤Æ¤â¡¢¥ª¥ê¥¸¥Ê¥ëÈǤÈÈæ³Ó¤·¤Æ½½¿ô¡óÄøÅٹ⮤ËÆ°ºî¤·¤Þ¤¹¡£ |
| |
| JPEG °µ½Ì¡¿Å¸³«½èÍý¤Î¹â®²½¤òÌÜŪ¤È¤·¤Æ¤¤¤Þ¤¹¤¬¡¢Æ°ºî®ÅÙºÇÍ¥Àè¤Ç¤Ï¤Ê¤¯¡¢ |
| ¥ª¥ê¥¸¥Ê¥ëÈǤÈƱÅù°Ê¾å¤Î·×»»ÀºÅÙ¤ò»ý¤Ä¤³¤È¤òºÇÍ¥Àè¤Ë¹Í¤¨¤¿¥³¡¼¥É¤òºÎÍÑ |
| ¤·¤Æ¤¤¤Þ¤¹¡£¼ÂºÝ¡¢DCT±é»»¤ËÉâÆ°¾®¿ôÅÀDCT¤ò»È¤Ã¤¿¾ì¹ç¡¢¤ª¤è¤Ó¡¢¤ä¤äÆüì¤Ê |
| ¥µ¥ó¥×¥ê¥ó¥°Èæ(h1v2)¤ò»ý¤ÄJPEG¥Õ¥¡¥¤¥ë¤òŸ³«¤¹¤ë¾ì¹ç¤ò½ü¤¤¤Æ¤Ï¡¢ |
| ¥ª¥ê¥¸¥Ê¥ëÈǤȣ±¥Ó¥Ã¥È¤â°ã¤ï¤Ê¤¤·ë²Ì¤ò½Ð¤·¤Þ¤¹¡£¾åµ¤Î£²¤Ä¤ÎÎã³°¤Î¾ì¹ç¤â |
| ¥ª¥ê¥¸¥Ê¥ëÈǤè¤ê¤Ï¹â²è¼Á²½(¹âÀºÅÙ²½)¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ |
| |
| SIMD Âбþ²½¤ËºÝ¤·¤Æ¤Ï¡¢²Äǽ¤Ê¸Â¤ê¡¢¥ª¥ê¥¸¥Ê¥ëÈǤΠlibjpeg ¥é¥¤¥Ö¥é¥ê¤È¤Î |
| ¸ß´¹À¤¬¼º¤ï¤ì¤Ê¤¤¤è¤¦¤Ë¹Í褵¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢¥ª¥ê¥¸¥Ê¥ë |
| ÈǤò¤½¤Î¤Þ¤ÞÃÖ¤´¹¤¨¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£Æäˡ¢¶¦Í¥é¥¤¥Ö¥é¥ê¤Ë´Ø¤·¤Æ¸À¤¨¤Ð¡¢ |
| °ìÉô¤ÎÎã³°(cygwin ¤Î¾ì¹ç)¤ò½ü¤¡¢¤½¤ì¤Ï¥ª¥ê¥¸¥Ê¥ëÈǤȥХ¤¥Ê¥ê¥ì¥Ù¥ë¤Ç¤Î |
| ¾å°Ì¸ß´¹À¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤Î¤Þ¤Þ¥ª¥ê¥¸¥Ê¥ëÈǤòÃÖ¤´¹¤¨¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ |
| |
| SIMD Âбþ²½¤µ¤ì¤Æ¤¤¤ëÉôʬ¤Ï¡¢°Ê²¼¤Î¤È¤ª¤ê¡§ |
| |
| °µ½Ì½èÍý¡§ |
| ¿§¶õ´ÖÊÑ´¹(RGB->YCbCr) : MMX or SSE2 |
| ¥À¥¦¥ó¥µ¥ó¥×¥ê¥ó¥° : MMX or SSE2 |
| DCT½çÊÑ´¹(¹âÀºÅÙÀ°¿ô) : MMX or SSE2 |
| DCT½çÊÑ´¹(¹â®À°¿ô) : MMX or SSE2 |
| DCT½çÊÑ´¹(ÉâÆ°¾®¿ô) : 3DNow! or SSE (À°¿ô±é»»Éô: MMX or SSE2) |
| DCT·¸¿ôÎ̻Ҳ½(À°¿ô) : MMX or SSE2 |
| DCT·¸¿ôÎ̻Ҳ½(ÉâÆ°¾®¿ô) : 3DNow! or SSE (À°¿ô±é»»Éô: MMX or SSE2) |
| |
| Ÿ³«½èÍý¡§ |
| ¿§¶õ´ÖÊÑ´¹(YCbCr->RGB) : MMX or SSE2 |
| ¥¢¥Ã¥×¥µ¥ó¥×¥ê¥ó¥° : MMX or SSE2 |
| DCTµÕÊÑ´¹(¹âÀºÅÙÀ°¿ô) : MMX or SSE2 |
| DCTµÕÊÑ´¹(¹â®À°¿ô) : MMX or SSE2 |
| DCTµÕÊÑ´¹(ÉâÆ°¾®¿ô) : 3DNow! or SSE (À°¿ô±é»»Éô: MMX or SSE2) |
| DCTµÕÊÑ´¹(½Ì¾®Å¸³«) : MMX or SSE2 |
| |
| Ãí¡ËSSE2 ¤Ë¤Ä¤¤¤Æ¤Ï¡¢SIMD À°¿ô±é»»¤Î¤ß¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£SIMD ÇÜÀºÅÙ |
| ÉâÆ°¾®¿ôÅÀ±é»»¤ÏÍøÍѤ·¤Æ¤¤¤Þ¤»¤ó¡£¤Þ¤¿¡¢SSE3 ¤Ï»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ |
| ¤³¤Î JPEG ¥é¥¤¥Ö¥é¥ê¤Ë¤ª¤¤¤Æ¤Ï¡¢SSE3 ¤ò»ÈÍѤ·¤Æ¤âÆ°ºî®ÅÙ¸þ¾å¤Î |
| ¸«¹þ¤ß¤¬¤Û¤È¤ó¤É¤Ê¤¤¤¿¤á¤Ç¡¢SSE3 ¤ò¥µ¥Ý¡¼¥È¤¹¤ëͽÄê¤Ï¤¢¤ê¤Þ¤»¤ó¡£ |
| |
| ¤³¤Î¤Û¤«¤Ë¡¢¥¢¥»¥ó¥Ö¥ê¸À¸ìÈÇDCT¥ë¡¼¥Á¥ó(ÈóSIMD; ½çÊÑ´¹£³¼ï¡¿µÕÊÑ´¹£´¼ï) |
| ¤Ë¤è¤ê¡¢SIMDÌ¿Îá¤Î»È¤¨¤Ê¤¤µì·¿CPU¤Ç¤â½½¿ô¡óÄøÅ٤ι⮲½¤¬´üÂԤǤ¤Þ¤¹¡£ |
| ¤µ¤é¤Ë¡¢Å¸³«½èÍý¤Ç¤Î¥Ï¥Õ¥Þ¥ó¥Ç¥³¡¼¥É¥ë¡¼¥Á¥ó¤Ï¡¢SIMD ²½¤Ë°Í¤é¤Ê¤¤ÊýË¡¤Ç |
| ¹â®²½²þ¤¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ |
| |
| |
| ¢£Âбþ¤·¤Æ¤¤¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à |
| |
| Intel x86 CPU ¤Ë¸Çͤε¡Ç½¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¥ª¥ê¥¸¥Ê¥ëÈǤȤϰۤʤꡢ |
| Intel x86 CPU ¤ª¤è¤Ó¤½¤Î¸ß´¹ CPU ¤òºÎÍѤ·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ë¸Â¤é¤ì¤Þ¤¹¡£ |
| PowerPC ¤Ê¤É¤Î Intel x86 ·Ï°Ê³°¤Î¥·¥¹¥Æ¥à¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó¡£ |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| ¶ñÂÎŪ¤Ë¤Ï¡¢80386 °Ê¹ß¤Î Intel x86 CPU ¤ª¤è¤Ó¤½¤Î¸ß´¹ CPU ¤òºÎÍѤ·¤Æ¤¤¤ë |
| ¥Ï¡¼¥É¥¦¥§¥¢¤Ç¡¢¤«¤Ä¡¢32bit¥Õ¥é¥Ã¥È¥¢¥É¥ì¥¹¥â¡¼¥É(Êݸî¥â¡¼¥É)¤ò»ÈÍѤ·¤Æ |
| ¤¤¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à(OS)¤¬ÂоݤǤ¹¡£¤³¤ì¤Ë¤Ï¡¢Win32 (Windows 9x·Ï/NT·Ï) |
| ¤ä³Æ¼ï PC-UNIX (linux ¤ä xBSD ¥Õ¥¡¥ß¥ê¤Ê¤É) ¤Ê¤É¤¬³ºÅö¤·¤Þ¤¹¡£¤Ê¤ª¡¢ |
| AMD64 (EM64T) ¤Î64bit¥â¡¼¥É´Ä¶¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó¡£¤´Ãí°Õ¤¯¤À¤µ¤¤¡£ |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| ¢£¤³¤Î SIMD ³ÈÄ¥ÈÇ IJG JPEG library ¸ÇͤÎÀ©¸Â |
| |
| ¥ª¥ê¥¸¥Ê¥ëÈǤΠIJG JPEG library ¤Ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Î¥ª¥×¥·¥ç¥ó¤Ç¡¢ |
| 8bitÀºÅÙJPEG ¤È 12bitÀºÅÙJPEG ¤ÎξÊý¤ËÂбþ¤·¤Þ¤¹¤¬¡¢¤³¤Î SIMD ³ÈÄ¥ÈÇ¤Ï |
| 8bitÀºÅÙJPEG ¤Î¤ß¤ÎÂбþ¤Ç¡¢12bitÀºÅÙJPEG ¤Ë¤ÏÂбþ¤·¤Þ¤»¤ó¡£¤È¤Ï¤¤¤¨¡¢ |
| 12bitÀºÅÙJPEG ¤Ï°åÎÅÍѤʤɤÎÆüìʬÌî¤ò½ü¤¤¤ÆËؤɻȤï¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ |
| ÌäÂê¤Ï¾¯¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£ |
| |
| |
| ¢£»È¤¤Êý |
| |
| ¥Þ¥Ë¥å¥¢¥ë¤Ï¡¢°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ëʬ¤«¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¼ÂºÝ¤Î»È¤¤Êý¤Ê¤É¤Ë |
| ¤Ä¤¤¤Æ¤Ï¡¢¤½¤Á¤é¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ |
| |
| simd_README.ja.txt - ¤³¤Î¥Õ¥¡¥¤¥ë |
| simd_filelist.ja.txt - ¼ýÏ¿¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥ê¥¹¥È |
| simd_install.ja.txt - ¥³¥ó¥Ñ¥¤¥ë¤Î»ÅÊý |
| simd_internal.ja.txt - SIMD ³ÈÄ¥Éôʬ¤Î¾ÜºÙ |
| simd_cdjpeg.ja.txt - SIMD ÈÇ cjpeg/djpeg ¤Ë¸Çͤε¡Ç½¤Î²òÀâ |
| simd_changes.ja.txt - SIMD ³ÈÄ¥Éôʬ¤Î²þÈÇÍúÎò |
| |
| |
| ¢£»ÈÍѾò·ï¡¦¥µ¥Ý¡¼¥È |
| |
| ¤³¤Î SIMD ³ÈÄ¥ÈÇ IJG JPEG software ¤Î»ÈÍѾò·ï¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥ª¥ê¥¸¥Ê¥ëÈǤΠ|
| IJG JPEG software ¤Î»ÈÍѾò·ï¤¬Å¬ÍѤµ¤ì¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¡¢Æ±º¤Î README |
| ¥Õ¥¡¥¤¥ë(±Ñʸ)¤Î LEGAL ISSUES ¤Î¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ |
| |
| ¾åµ¤Î»ÈÍѾò·ï¤ÎÆâÍƤ竤êÊÖ¤·¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ï¡Ö¸½¾õ¤Î |
| ¤Þ¤Þ¤Ç¡×Ä󶡤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¡¢¾¦¶ÈŪ¤Ê»ÈÍѲÄǽÀ¡¢¤ª¤è¤ÓÆÃÄê¤ÎÌÜŪ¤Ë |
| ÂФ¹¤ëŬ¹çÀ¤Ê¤É¤â´Þ¤á¡¢¤¤¤«¤Ê¤ëÊݾڤ⤢¤ê¤Þ¤»¤ó¡£ |
| ¤Þ¤¿¡¢¸¶ºî¼Ô(The Independent JPEG Group)¤â²þ¤¼Ô(MIYASAKA Masaru)¤â¡¢ |
| »öͳ¤Î¤¤¤«¤ó¤òÌä¤ï¤º¡¢ËÜ¥½¥Õ¥È¥¦¥§¥¢¤Î»ÈÍѤˤè¤Ã¤ÆȯÀ¸¤·¤¿Ç¡²¿¤Ê¤ë»³²¤Ë |
| ¤Ä¤¤¤Æ¤â¡¢°ìÀÚ¤½¤ÎÀÕǤ¤òÉé¤ï¤Ê¤¤¤â¤Î¤È¤·¤Þ¤¹¡£ |
| |
| ¤³¤Î SIMD ³ÈÄ¥ÈÇ IJG JPEG software ¤Ï¡¢¥ª¥ê¥¸¥Ê¥ë³«È¯¸µ¤Î IJG ¤È¤Ï´Ø·¸ |
| ¤Ê¤¯¡¢Æȼ«¤Ë³ÈÄ¥¤ò¹Ô¤Ê¤Ã¤¿¤â¤Î¤Ç¤¹¡£¤Ç¤¹¤Î¤Ç¡¢¤³¤Î SIMD ³ÈÄ¥ÈÇ IJG JPEG |
| software ¤Ë´Ø¤¹¤ë¼ÁÌä¤ò¡¢¥ª¥ê¥¸¥Ê¥ë³«È¯¸µ (The Independent JPEG Group) |
| ¤ËÁ÷¤é¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ |
| |
| ¤³¤Î SIMD ³ÈÄ¥ÈÇ IJG JPEG software ¤Ë´Ø¤·¤Æ¤Ï¡¢¸¶Â§¤È¤·¤Æ¥Î¡¼¥µ¥Ý¡¼¥È¤È |
| ¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£¥á¡¼¥ë¤Ê¤É¤Ç¤´¼ÁÌä¤Ê¤É¤ò¤¤¤¿¤À¤¤Þ¤·¤Æ¤â¡¢¾ï¤Ë²¿¤é¤« |
| ¤ÎÊÖÅú¤¬¤Ç¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¤´¾µÃΤª¤¤¯¤À¤µ¤¤¡£ |
| Æäˡ¢¡Ê¥ª¥ê¥¸¥Ê¥ë¤Î±Ñʸ¥Þ¥Ë¥å¥¢¥ë¤ò´Þ¤á¡ËƱº¤Î¥Þ¥Ë¥å¥¢¥ëÎà¤Ë²óÅú¤¬ |
| ½ñ¤¤¤Æ¤¢¤ë¼ÁÌä¤ä¡¢»ÈÍѼԤΥ½¥Õ¥È¥¦¥§¥¢µ»½Ñ¼Ô¤È¤·¤Æ¤Îµ»ÎÌÉÔ¡¦·Ð¸³ÉÔÂ¤Ë |
| ´Ø¤ï¤ë¼ÁÌä¡¢¼ÁÌä¤ÎÍ×ÎΤòÆÀ¤Ê¤¤¼ÁÌä¤Ê¤É¤Ë¤Ä¤¤¤Æ¤Ï¡¢²óÅú¤ò¤¤¤¿¤·¤Þ¤»¤ó¤Î¤Ç¡¢ |
| ¤¢¤·¤«¤é¤º¤´Î»¾µ¤¯¤À¤µ¤¤¡£ |
| |
| |
| |
| E-Mail Address : alkaid@coral.ocn.ne.jp (µÜºä ¸/MIYASAKA Masaru) |
| [EOF] |