éå¯éç»åå§çž®ã¢ã«ãŽãªãºã ãæ¯èŒããå Žåãå§çž®ã®çšåºŠãšçµæã®ç»åã®å質ã¯ã»ãŒåžžã«è°è«ãããŸãããå§çž®æéã¯äœããã®çç±ã§äºæ¬¡çãªææšãšèŠãªãããŸãã ã©ããããã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã§ãã®ã¢ãããŒãã¯æå¹ã§ãããå§çž®æéãéåžžã«éèŠã«ãªãå ŽåããããŸãã ããšãã°ãç»åã®å€§ããªé åãå§çž®ãããšãããŸãã¯ãªã¢ã«ã¿ã€ã å§çž®ãå¿ èŠãšãã倧éã®ããŒã¿ãçæã§ããæ©åšã䜿çšãããšãã ããã¯ãé«éã«ã¡ã©ããã®äžé£ã®ç»åãå§çž®ãããšãã®ç¶æ³ã§ãã äžè¬çãªé«éã«ã¡ã©ããã®ããŒã¿ã¹ããªãŒã ã¯ãæ¯ç§625 MBïŒè§£å床1280 x 1024ã8ããããæ¯ç§500ãã¬ãŒã ïŒä»¥äžã«éããå¯èœæ§ããããŸãã PCI-Express 2.0 x8ãã¬ãŒã ã°ã©ããŒãä»ããŠ2.4 GB /ç§ã®é床ã§ã³ã³ãã¥ãŒã¿ãŒã®RAMã«ãªã³ã©ã€ã³ã§ããŒã¿ãæžã蟌ãé«éãããªã«ã¡ã©ããããŸãã ãã®ãããªãããŒãåŠçããããã«ãããŒã¿åŠçã¢ã«ãŽãªãºã ã䞊ååããèŠä»¶ãæ€èšããå¿ èŠãããããŸãããããã¯å®çŸ©ã«ãããã®ã§ãã ãããã£ãŠãé«éå§çž®ã¢ã«ãŽãªãºã ãéžæããããã«ã次ã®åºæºãçå®ãããŸããã
- ãšã³ã³ãŒããšãã³ãŒãã®äž¡æ¹ã®ã¢ã«ãŽãªãºã ã䞊ååããæ©èœ
- 蚱容ã§ããå質ã§æ倱ã䌎ãç»åã10ã20åå§çž®ããæ©èœ
- ã¢ã«ãŽãªãºã ã®èšç®ã®è€éãã¯å¯èœãªéãå°ããããå¿ èŠããããŸã
- ã¿ã¹ã¯ããµãã¿ã¹ã¯ã®å¯èœãªæ倧æ°ã«åå²ãã
- åäžã®ããŒã¿åŠçã¹ããªãŒã ã®é«éã¡ã¢ãªãµã€ãºã®æå°èŠä»¶
JPEGã¢ã«ãŽãªãºã ã¯ãããã®èŠä»¶ã«å®å šã«æºæ ããŠããŸãã ãããã®æ¡ä»¶ãæºããä»ã®éå¯éå§çž®ã¢ã«ãŽãªãºã ãããå¯èœæ§ããããŸãããããã§ã¯JPEGãªãã·ã§ã³ã®ã¿ãæ€èšããŸãã
æåã«ãããŒã¹ã©ã€ã³JPEGã¢ã«ãŽãªãºã ã䜿çšããéå¯éç»åå§çž®ã®é床ïŒããã©ãŒãã³ã¹ïŒã®ãã³ãããŒã¯ã調ã¹ãŸãããã ããç»åãæ¢ã«RAMã«ããŒããããŠãããå§çž®ã®ã¿ãå¿ èŠãªå ŽåããããŸãã åŸããããœãªã¥ãŒã·ã§ã³ãšæããã«åŒ±ã競åä»ç€Ÿãšãæ¯èŒããå Žåãåºç¯ãªæ¹æ³ã«ã¯åŸããŸããããããã£ãŠãã©ã€ãã«ãšããŠãä»æ¥ã®ãã«ãã³ã¢CPUåãã®æéã®åçšãœãªã¥ãŒã·ã§ã³ãæ€èšããŸãã
Accusoft Pegasus PICTools Photo JPEGãšã³ã³ãŒããŒ ïŒ æ¯ç§150-250 MBã®ããã©ãŒãã³ã¹ã8ããããå§çž®çã50ïŒ ã®å§çž®ïŒ
Intel JPEGãšã³ã³ãŒããŒIPP-7.0 ïŒuic_transcoder_con.exeãããŒãžã§ã³7.0ãã«ã205.85ã[7.7.1058.205]ãååippjy8-7.0.dll +ã2011幎11æ27æ¥ã64ããããå ¬åŒã®å§çž®çããŒã¿ãªãããã¹ãçµæ以äžã«ç€ºãïŒ
é«éãããªã«ã¡ã©ã䜿çšããããã®Norpix JPEGãšã³ã³ãŒã㌠ïŒæ¯ç§200ã250 MBã®ããã©ãŒãã³ã¹ã8ããããäžæãªå§çž®çã®å§çž®ïŒ
æ®å¿µãªããããšã³ã³ãŒãæéãå ±åããIPP-7ãšã³ã³ãŒããŒãé€ããŠããã®ããŒã¿ãæ€èšŒããæ¹æ³ã¯ãããŸããã ãã詳现ãªåæãè¡ãã«ã¯ãåŠçã¢ã«ãŽãªãºã ã®å段éã®ããã©ãŒãã³ã¹ã«é¢ããããŒã¿ããããŸããããã®ãããåãå§çž®ãã©ã¡ãŒã¿ãŒãæã€äžè¬çãªããã©ãŒãã³ã¹ã€ã³ãžã±ãŒã¿ãŒã®ã¿ã«æ¯èŒãå¶éããå¿ èŠããããŸãã Kakaduã¯JPEGã³ãŒããã¯ãèŠã€ããããšãã§ããŸããã§ããããã®äŒç€Ÿã¯çŸåšãJPEG2000ã³ãŒããã¯ã®ã¿ããªãªãŒã¹ããŠãããlibjpeg_simd-6bããã³libjpeg-turboã®å§çž®é床ãéåžžã«äœãã£ãããã§ãã
åºå®éååããŒãã«ãšãããã³ããŒãã«ã䜿çšããããŒã¹ã©ã€ã³JPEGæšæºã®å®è£ ã«ã€ããŠè©±ããŠãããããå§çž®ç»åã®å質ãšå§çž®çã¯å§çž®ãã©ã¡ãŒã¿ãŒã«ãã£ãŠäžæã«æ±ºå®ããããããPSNR枬å®ãšèŠèŠçãªå質è©äŸ¡ã¯äžèŠã§ãã ãã ãããã¹ãŠã®ãã¹ãã§PSNR枬å®ãšèŠèŠå質è©äŸ¡ãå®è¡ãããŸããã
ãã«ãã³ã¢CPUã§ã®æé«ã®åçšãœãªã¥ãŒã·ã§ã³ã®çµæã¯å°è±¡çã§ãããããããããäžåãããšãè©Šã¿ãããšã¯éåžžã«èå³æ·±ãã§ãã ãããè¡ãã«ã¯ãNVIDIA CUDAãã¯ãããžã䜿çšããããŒã¹ã©ã€ã³JPEGã¢ã«ãŽãªãºã ã䜿çšããŠããããªã«ãŒãäžã®ç»åãå§çž®ãããªãã·ã§ã³ãæ€èšããŠãã ããã ã¿ã¹ã¯ã¯æ倧ã®ããã©ãŒãã³ã¹ãåŸãããšã§ãããããããŒããŠã§ã¢ã¯é©åã§ãªããã°ãªããŸããã NVIDIA GeForce GTX 580ã¯ãŽã£ããã§ãã
ãã®ç 究åéã§ã¯ããšã³ããããŒã³ãŒãã£ã³ã°ã®æ®µéã®ããã«JPEGã¢ã«ãŽãªãºã ãå®å šã«äžŠååã§ããªããšè¿°ã¹ãŠããå€ãã®ãããžã§ã¯ããšç§åŠè«æãçºèŠãããŠããŸãã ãããã£ãŠãé¢æ£ã³ãµã€ã³å€æããããªã«ãŒãã§å®è¡ãããæ®ãã®èšç®ãCPUã§å®è¡ããããšãã«ããã€ããªãããœãªã¥ãŒã·ã§ã³ãæµ·å€ã§äœæãããŸããã ãããã£ãŠã1ã€ã®ã¹ããŒãžã®ã¿ãå éãããæããã«GPUã«é©ããŠããŸãã ãã®çµæãã³ãŒãã£ã³ã°é床ã¯ãããã«åäžããŸããããCPUäžã®æé«ã®ãã«ãã¹ã¬ãããœãªã¥ãŒã·ã§ã³ãšå§çž®çã競ãããšã¯ã§ããŸããã§ããã æ®å¿µãªãããNVIDIAãŸãã¯ATIãããªã«ãŒãã«åºã¥ãçç£çãªJPEGãšã³ã³ãŒããŒã«é¢ããæ å ±ãèŠã€ããããšãã§ããŸããã§ããã
å ã®éå§çž®ç»åããŒã¿ãã³ã³ãã¥ãŒã¿ãŒã®RAMã«ãããJPEGã§å§çž®ããå¿ èŠãããåé¡ãèããŠãã ããã ãããªã«ãŒãã§ã®ããŒã¹ã©ã€ã³JPEGã¢ã«ãŽãªãºã ã®å®è£ ã«ã¯ã次ã®æ®µéãå«ãŸããŸãã
- RAMãããããªã«ãŒããžã®ããŒã¿ã®ããŠã³ããŒãïŒãã¹ãããããã€ã¹ãžã®è»¢éïŒ
- RGB-> YCbCrå€æïŒ8ãããç»åã«ã¯äžèŠïŒ
- ç»åã8x8ãããã¯ã«åå²ãã
- åãã¯ã»ã«ã®ãªãã»ããïŒ128ãæžç®ïŒ
- åãããã¯ã®é¢æ£ã³ãµã€ã³å€æïŒDCTïŒ
- åãããã¯ã®éåå
- åãããã¯ã®åé 眮ïŒãžã°ã¶ã°ïŒ
- åãããã¯ããã®DCã®ãã«ã¿ã³ãŒãã£ã³ã°ïŒDPCMïŒ
- åãŠãããããã®ACã®çŽåãšã³ã³ãŒãïŒRLEïŒ
- åãããã¯ããã®ACã®ãããã³ã³ãŒãã£ã³ã°
- ãããã¯ã°ã«ãŒãã®RSTnåèµ·åããŒã«ãŒã®èšå®
- åºåãã¡ã€ã«ã®çæïŒå§çž®ãããã¯ããã®ããŒã¿ã®æ¥çãJFIFããããŒã®è¿œå
- ãããªã«ãŒãããRAMãžã®JPEGãã¡ã€ã«ã®ã¢ã³ããŒãïŒããã€ã¹ãããã¹ããžã®è»¢éïŒ
ãã®ã¹ããŒã å šäœãCUDAã«å®è£ ãããŸããã æšæºJPEGã¢ã«ãŽãªãºã ã®äž»ãªã¢ã€ãã¢ã®1ã€ã¯ãç»åã8x8ãããã¯ã«åå²ããé¢æ£ã³ãµã€ã³å€æã䜿çšããç¬ç«ããããŒã¿åŠçãè¡ãããšã§ããããã¯ãæ¬è³ªçã«äžŠåã¢ã«ãŽãªãºã åè·¯ã§ãã é¢æ£ã³ãµã€ã³å€æã®äžŠååã¯ãã§ã«ç¥ãããŠãããããã©ãŒãã³ã¹ã®èŠ³ç¹ããåŸãããçµæã¯ãCPUãããGPUã®æ¹ãã¯ããã«åªããŠããŸããã DCä¿æ°ã®ãã«ã¿ã³ãŒãã£ã³ã°ã¹ããŒãžïŒDPCMïŒã䞊ååã§ããŸãã ã·ãªãŒãºã³ãŒãã£ã³ã°ïŒRLEïŒãšãããã³ã³ãŒãã£ã³ã°ã¯ãå8x8ãããã¯ã®ããŒã¿ã«å¯ŸããŠç¬ç«ããŠå®è¡ãããããããããã䞊åã§ãã çµè«ãšããŠãåãããã¯ããåºåãã¡ã€ã«ã«å§çž®ããŒã¿ãæžã蟌ã¿ãããããJPEGç»åã圢æãããã¡ã€ã«ãã³ã³ãã¥ãŒã¿ãŒã®RAMã«éä¿¡ããå¿ èŠããããŸãã ãããã£ãŠãã»ãŒãã¹ãŠã®JPEGãšã³ã³ãŒãã£ã³ã°ã¹ããŒã ãæ£åžžã«äžŠååããããã®ã¢ã«ãŽãªãºã ã¯GPUã§å®å šã«å®è£ ã§ãããšäž»åŒµã§ããŸãã
ãã³ãŒãã®å®è£ ã«é¢ããåé¡ã¯æ®ã£ãŠããŸãã ãã®ãããããŒã«ãŒã¯åœåãJPEGæšæºã§æäŸãããŠãããããå§çž®ã€ã¡ãŒãžå ã®ä»»æã®å Žæããã ãã§ãªããé£ç¶ããŠãã³ãŒãããããšãã§ããŸãã æ®å¿µãªãããCPUã®ã»ãšãã©ã®å®è£ ã§ã¯ãJPEGå§çž®ã¢ã«ãŽãªãºã ã«ã¯ãããã®ããŒã«ãŒããããŸããããããã£ãŠããã®ãããªç¶æ³ã§ã¯ããã³ãŒãã®ç¬¬1段éãé 次å®è¡ãããããšã€ãªã¢ã³ãç»åã¯æ¯èŒçãã£ãããã³ãŒããããŸãïŒãšã³ã³ãŒãæã«ãããã®ããŒã«ãŒã眮ãããŸãïŒã ãšã³ã³ãŒãæã«ããŒã«ãŒãèšå®ããå Žåããã³ãŒããéå§ããåã«ãã€ã³ã¹ããŒã«ãããŠãããã¹ãŠã®ããŒã«ãŒã®ã¯ã€ãã¯æ€çŽ¢ãè¡ããããã®åŸã䞊è¡ããŠãã³ãŒããå®è¡ããããšãå¯èœã«ãªããŸãã äžèšã®å§çž®æ¹åŒã§ã¯ãç¹å®ã®æ°ã®8x8ãããã¯ã®åŸã«ããŒã«ãŒãã€ã³ã¹ããŒã«ãããŸãããã®çµæããã³ãŒãããã»ã¹ã䞊åã«ãªããŸãã ãã ãããã³ãŒãã®åé¡ã¯ãã®èšäºã®ç¯å²å€ã§ãã
ããã°ã©ã ããã¹ãããããã«ã次ã®æšæºæ¡ä»¶ãéžæãããŸããã
- 8ãããã®ãã¹ãç»å
- å§çž®ç50-100ïŒ
- æ°Žå¹³ããã³åçŽã®ç»åãµã€ãºã¯8ã®åæ°ã§ãªããã°ãªããŸãã
- ãœãŒã¹ãã¡ã€ã«ã®ãµã€ãºã¯64 MB以äž
ãã¹ãã§ã¯ã次ã®ã³ã³ãã¥ãŒã¿ãŒæ§æã䜿çšããŸããã
- ASUS P6T Deluxe V2 LGA1366ãX58ãATX Core i7 920ã2.67 GHzãDDR-III 6 GB
- èšç®çšã®ãããªã«ãŒãïŒGeForce GT 240ïŒcc = 1.2ã96ã³ã¢ïŒãŸãã¯GeForce GTX 580ïŒcc = 2.0ã512ã³ã¢ïŒã
- ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã Windows-7ã64ããããCUDA 4.1ããã©ã€ããŒ286.19
ãã¹ã8ãããç»åã¯äžè¬çã«åãå ¥ãããïŒlenna.bmpãboats.bmpïŒãIPPïŒuic_test_image.bmpïŒãã䜿çšãããcathedral.bmpãšbig_building.bmpã¯ããã§ååŸãããŸã
åç»åã®è¡šã®äžçªäžã®è¡ã¯ãéååããŒãã«ãšãããã³ããŒãã«ã§ã®å§çž®æã®å§çž®çãšå§çž®çïŒãã¡ã€ã«ãµã€ãºãæžå°ããåæ°ïŒã®å¯Ÿå¿ã瀺ããŠããŸãããããã¯ãããŒã¹ã©ã€ã³JPEGã§ããã©ã«ãã§åãå ¥ããããŸãã
Windowsã§ã®åèšFVJPEGã³ãŒããã¯ã©ã³ã¿ã€ã ã¯ãQueryPerformanceCounterïŒïŒé¢æ°ã䜿çšããŠæž¬å®ãããŸããã ãããªã«ãŒãäžã®åã ã®æ©èœã®å®è¡æéã¯ãNVIDIAãããã¡ã€ã©ãŒã䜿çšããŠæž¬å®ãããŸããã ãããã¡ã€ã©ãŒã®çµæã¯ãã¢ã«ãŽãªãºã ã®å段éã®å§çž®é床ã詳现ã«åæããããã«å¿ èŠã§ããããã¯äž»ã«éçºè ã«ãšã£ãŠèå³æ·±ããã®ã§ãã åãããŒã¿ã§èšç®ãç¹°ãè¿ãããšã¯å®çšçã§ã¯ãªãããããã¹ãŠã®ãã¹ãã§ã®ç¹°ãè¿ãæ°ïŒæž¬å®æéã®ç²ŸåºŠãé«ããå€ãã®ããã°ã©ã ã®ãªãã·ã§ã³ïŒã¯1ã«çãããªããŸãã ãããã£ãŠãäž»ãªã¿ã¹ã¯ã¯ããšã³ã³ãŒãã®å®éã®åäœã¢ãŒããšå§çž®ããã©ãŒãã³ã¹ã®å¶éå€ã調ã¹ãããšã§ããã å°ããç»åã®å Žåãã³ãŒãã£ã³ã°é床ã10ã20ïŒ åºãããããäžé£ã®ãã¹ãã§æé«ã®çµæãåŸãããŸããã ãã¹ãã«ã¯ãNVIDIA GeForce GT 240ããã³GeForce GTX 580ã°ã©ãã£ãã¯ã¹ã«ãŒãã®FVJPEGãšã³ã³ãŒããŒãšãCore i7 920ã®IPP-7.0ã®JPEGãšã³ã³ãŒããŒãå«ãŸããŸãã
è¡š2ã¯ãå§çž®çã«å¿ããŠããŸããŸãª8ãããç»åã®NVIDIA GeForce GT 240ãããªã«ãŒãã®JPEGå§çž®çã®æž¬å®çµæãã¡ã¬ãã€ã/ç§ã§ç€ºããŠããŸãã
è¡š3ã¯ãNVIDIA GeForce GTX 580ã°ã©ãã£ãã¯ã¹ã«ãŒãã®JPEGã§ã®å§çž®é床ãã¡ã¬ãã€ã/ç§ã§æž¬å®ããçµæã瀺ããŠããŸãã
å§çž®é床ã枬å®ãããšãããããªã«ãŒãã«ããŒã¿ãã³ããŒããæéãããã³ãã®éã®æéãèæ ®ããããšãéåžžã«éèŠã§ãã å®éãGPUã§JPEGã®å§çž®ã¢ã«ãŽãªãºã ãå®è£ ããå Žåããããªã«ãŒãã®ã¡ã¢ãªã«ããŒã¿ãã³ããŒããã®ã«ãããæéã¯ãéåžžæãé·ãæäœã®1ã€ã§ãã ãããªã«ãŒãã®ã¡ã¢ãªãžã®ããŒã¿ã®ããŒããèæ ®ããã«ã³ãŒãã£ã³ã°ããã©ãŒãã³ã¹ãè©äŸ¡ããå Žåãã€ãŸã æ倱ã®ããç»åãå§çž®ãããšãã®èšç®ã®ããã©ãŒãã³ã¹ã枬å®ãããå Žåãååã«å€§ããç»åãš50ïŒ ã®å§çž®çã§ãGeForce GTX 580ã®JPEGã§1ç§ããã10 GB以äžã®å§çž®é床ãåŸãããŸãããã®çµæã¯ã䞊åèšç®ã®æé«ã®å¹çã®åªããäŸã§ã匷åãªã°ã©ãã£ãã¯ã«ãŒãã
Intel IPP-7.0ïŒã¢ããããŒã6ïŒã®ãšã³ã³ãŒããŒãšæ¯èŒããããã«ãNVIDIAãããªã«ãŒãã®ãã¹ããšåãç»åã»ãããšåãå§çž®çã䜿çšãããŸããã ã³ãã³ãã©ã€ã³ã¯æ¬¡ã®ããã«ãªããŸãããuic_transcoder_con.exe-otest.jpg -ilenna.bmp -t1 -q50 -n8ãããã¯ãã€ã¡ãŒãžlenna.bmpã®å§çž®ãæ°ããã€ã¡ãŒãžtest.jpgã®äœæãããŒã¹ã©ã€ã³JPEGã¢ã«ãŽãªãºã ïŒ-jbïŒã®äœ¿çšãæéã®æž¬å®ãæå³ããŸã粟床ãé«ããããã°ã©ã å®è¡ïŒ-t1ïŒã8ã¹ã¬ããã«äžŠååããå Žåã®å§çž®ç50ïŒ ïŒ-q50ïŒïŒ-n8ïŒã åãã€ã¡ãŒãžãåå§çž®ããå®çšçãªã¿ã¹ã¯ããªãããã-måäœã¢ãŒãã¯å§çž®æé ãç¹°ãè¿ãããã«äœ¿çšãããŸããã§ããã
è¡š4ã¯ãIPP-7.0ããã®JPEGãšã³ã³ãŒããŒã®ããã©ãŒãã³ã¹ã®çµæã瀺ããŠããŸãïŒ1ç§ãããã®Mbå§çž®ç/ããªç§åäœã®ç»åå§çž®æéïŒã
IPP-7.0ã®ãã¹ãã€ã¡ãŒãžã䜿çšããåãå§çž®ãã©ã¡ãŒã¿ãŒïŒuic_test_image.bmpã1280 x 960ã8ããããå§çž®çã¯50ïŒ ïŒ8.1åã®å§çž®ã«çžåœïŒïŒã䜿çšãããšãGeForce GTX 580ã§2.25ã®ããã©ãŒãã³ã¹ãåŸãããŸãGB /ç§ãIPP-7.0ããJPEGãšã³ã³ãŒããŒçšã®8ã¹ã¬ããã䞊ååããå ŽåãCore i7 920 CPUã§ã®332 MB /ç§ãããèããåªããŠããŸãïŒ6.7åé«éïŒã IPP-7.0ãšã³ã³ãŒããŒã®çµæãšããŠã®ããã©ãŒãã³ã¹ã¯ãåããã©ã¡ãŒã¿ãŒã§æ¯ç§680 MBã®å§çž®é床ãæäŸãããããªã匱ãGeForce GT 240ã°ã©ãã£ãã¯ã¹ã«ãŒããšæ¯èŒããŠã2åäœãã§ãã
å³1ã¯ãããŸããŸãªå€ã®GeForce GT 240ãGeForce GTX 580ïŒFVJPEGãšã³ã³ãŒããŒïŒãããã³CPU Core i7 920ïŒIPP-7.0ã®JPEGãšã³ã³ãŒããŒïŒã§ã®ãã¹ãç»åcathedral.bmpïŒ2000 x 3008ã8ãããïŒã®å§çž®çã®çµæã瀺ããŠããŸãããŒã¹ã©ã€ã³JPEGå§çž®çïŒ
NVIDIAãããã¡ã€ã©ãŒã䜿çšããŠããšã³ã³ãŒãã¢ã«ãŽãªãºã ã®å段éã®æéã枬å®ããŸããã è¡š5ã¯ãããŒã¹ã©ã€ã³JPEGã¢ã«ãŽãªãºã ãšããã©ã«ãã®éååããŒãã«ããã³ãããã³ããŒãã«ã䜿çšããå§çž®æéã®ãã³ãããŒã¯ããNVIDIA GeForce GTX 580ã°ã©ãã£ãã¯ã¹ã«ãŒãã®ããŸããŸãªå§çž®çã«å¯ŸããŠç€ºããŠããŸããç»åcathedral.bmpã解å床2000 x 3008ã8ãããã床ã®åŸã®æ¬åŒ§å å§çž®ã¯ããã®ã€ã¡ãŒãžãå§çž®ãããåæ°ã瀺ããŸãã
ãããã£ãŠããããªã«ãŒãã§JPEGå§çž®ã¢ã«ãŽãªãºã ã®å段éãå®è¡ããé床ã確èªã§ããŸãããœãŒã¹ããŒã¿ã®èªã¿èŸŒã¿ãé¢æ£ã³ãµã€ã³å€æãã·ãªãŒãºã³ãŒãã£ã³ã°ããããã³ã³ãŒãã£ã³ã°ãå§çž®ç»åã®ã¢ããããŒãã§ãã ãšã³ããããŒã³ãŒãã£ã³ã°ã®ã¬ãŒããè©äŸ¡ããå Žåãã·ãªãŒãºã®ã³ãŒãã£ã³ã°ãšãããã³ã«ããã³ãŒãã£ã³ã°ã®å¯äžãåºå¥ããå¿ èŠããããŸãã å®éãJPEGã¢ã«ãŽãªãºã ã®ããŸããŸãªæ®µéã§ããŒã¿ãµã€ãºãç°ãªããããããã©ãŒãã³ã¹ãèšç®ããéã«éèŠã§ãã ãããã³ã³ãŒãã£ã³ã°ã®å Žåãã³ãŒãã£ã³ã°é床ã®æšå®å€ãäœãããããã«ãå§çž®ãã¡ã€ã«ã®ãµã€ãºãã©ã³ã¿ã€ã ã§é€ç®ã§ããŸãã å§çž®ã®å段éã®é床ã®æ£ç¢ºãªå€ãèšç®ããã«ã¯ãæéã ãã§ãªããèšç®ã®å段éã§ãœãŒã¹ããŒã¿ã®ãµã€ãºã枬å®ããå¿ èŠããããŸãã
ãããã£ãŠãJPEGã¢ã«ãŽãªãºã ã䜿çšãããããªã«ãŒãäžã®ç»åã®éåžžã«é«éãªå§çž®ã®åºæ¬çãªå¯èœæ§ã瀺ãããŠããŸãããŸããäºç®ãšã¢ãã€ã«ã«ãŒããå«ãããªãåºãã¯ã©ã¹ã®NVIDIAã°ã©ãã£ãã¯ã«ãŒãã«å¯ŸããŠãå¯èœã§ãã ããã«ãçµæã¯ããã«ãã³ã¢CPUã®æéã®ãœãªã¥ãŒã·ã§ã³ã§èŠãJPEGãšã³ã³ãŒãé床ã®ãã³ãããŒã¯ãããå€§å¹ ã«åªããŠããŸãã
ãããªã«ãŒãã®JPEGã¢ã«ãŽãªãºã ã®å段éã®å®è¡æéãåæãããšã次ã®å³ãåŸãããŸããæãé ãæäœã®1ã€ã¯ãã³ã³ãã¥ãŒã¿ãŒã®RAMãããããªã«ãŒãã«ããŒã¿ãããŒãããããšã§ãã 倧ããªç»åã®å ŽåãããŠã³ããŒããšã¢ããããŒãã®äž¡æ¹ã®é床ã¯çŽ6 GB /ç§ã§ãã ãã®å¶éã¯ãPCI-Express 2.0ãã¹ã®åž¯åå¹ ã«ãããã®ã§ãããååãšããŠå€§å¹ ãªé«éåã¯ã次äžä»£ã®PCI-ExpressïŒGen2ããGen3ïŒã«ç§»è¡ããå Žåã«ã®ã¿å¯èœã§ãã ç»åã®èªã¿èŸŒã¿æéãšé¢æ£ã³ãµã€ã³å€æã®å®è¡æéã¯ãç»åãµã€ãºã®ã¿ã«äŸåããŸãã ã·ãªãŒãºã³ãŒãã£ã³ã°ãšãããã³ã³ãŒãã£ã³ã°ã¯ãç»åèªäœã®ç¹å®ã®ããŒã¿ãå§çž®çãããã³ãã®å§çž®æ®µéã§ã®ããŒã¿ã®ãµã€ãºã«äŸåããŸãã
çç£æ§ãé«ããããã®éèŠãªãã€ã³ãã¯ãç»åãµã€ãºã§ãã ç»åãµã€ãºã倧ããã»ã©ããããªã«ãŒãã®å§çž®çã¯é«ããªããŸãã ã©ããããããã¯ãå°ããªç»åã®ããŒã¿ããããªã«ãŒããå®å šã«ããŒãããã«ã¯äžååã§ãããã³ã³ãã¥ãŒãã£ã³ã°ãã¯ãŒã®äžéšãã¢ã€ãã«ç¶æ ã«ãªã£ãŠããããã§ãã æ¯èŒç倧ããªãã¬ãŒã ïŒ4ã¡ã¬ãã€ã以äžïŒã䜿çšãããšããããªã«ãŒãã®å šè² è·ãšå§çž®ããã©ãŒãã³ã¹ãåäžããŸãã ããã§ããå°ããªç»åã«ã¯å éãªãã·ã§ã³ããããŸããè€æ°ã®ãã¬ãŒã ãäžåºŠã«ããŒãããŠããããã䞊è¡ããŠãšã³ã³ãŒãã§ããŸãã ãããã£ãŠããããªã«ãŒããå®å šã«ããŠã³ããŒãããå°ããªç»åã§ãæ倧ã®ããã©ãŒãã³ã¹ãåŸãããšãã§ããŸãã ãããã£ãŠãäžé£ã®å°ããªãã¬ãŒã ã®å§çž®çã¯ã倧ããªåäžã®ç»åã§åŸãããçµæã«è¿ããªããŸãã è€æ°ã®ç»åãåæã«ããŠã³ããŒãããã³å§çž®ãããã®åäœã¢ãŒãã¯ãã§ã«ãã¹ããããŠãããFVJPEGã³ãŒããã¯ã®æçµããŒãžã§ã³ã«å«ãŸããŸãã
ãŸããæ倱ã®å€ãJPEGç»åå§çž®é床ã«ã€ããŠGeForce GTX 580ã°ã©ãã£ãã¯ã¹ã«ãŒãã§åŸãããçµæã¯ãåãã¢ã«ãŽãªãºã ã®ãã¹ãŠã®æ¢ç¥ã®ããŒããŠã§ã¢FPGAç»åå§çž®ãœãªã¥ãŒã·ã§ã³ãããããã©ãŒãã³ã¹ãåªããŠããããšã«æ³šæããŠãã ããã 以äžã®äŒæ¥ã¯ãããã€ãã®æéã®JPEG FPGAç»åå§çž®ã·ã¹ãã ãæäŸããŠããŸãã
Barco BA116 JPEGãšã³ã³ãŒããŒïŒé«éããŒã¹ã©ã€ã³DCTããŒã¹ã®JPEGã«ã©ãŒãšã³ã³ãŒããŒïŒ-FPGAçšã®JPEGããŒããŠã§ã¢ãšã³ã³ãŒãæ©èœãæ倧140 MB / sã®ããã©ãŒãã³ã¹ã
ãã£ã¹ãæ ªåŒäŒç€Ÿ ïŒJPEG-CããŒã¹ã©ã€ã³JPEGå§çž®ã³ãŒããã¯ã³ã¢ïŒ -FPGAçšãžãŒãã®ããŒããŠã§ã¢å§çž®æ©èœãXilinx Virtex-6ã§ã¯æ倧275 MB / sãã¢ã«ãã©FPGA Stratix IVã§ã¯æ倧280 MB / sã
VisengiïŒJPEG / MJPEGããŒããŠã§ã¢ã³ã³ãã¬ããµãŒIPã³ã¢ïŒ -Virtex-5 FPGAçšã®jeepegããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°æ©èœãæ倧405 MB / sã®ããã©ãŒãã³ã¹ã
Alma-TechïŒSVE-JPEG-EãSpeedView察å¿JPEGãšã³ã³ãŒããŒã¡ã¬ãã¡ã³ã¯ã·ã§ã³ïŒ -ã¢ã«ãã©/ã¶ã€ãªã³ã¯ã¹FPGAã®ããŒã¹ã©ã€ã³JPEGããŒããŠã§ã¢å§çž®æ©èœãæ倧500 MB /ç§ã®ããã©ãŒãã³ã¹ã
å°éçãªå±ç€ºäŒã§ã¯ãæ倧680 MB /ç§ã®å®¹éãæã€FPGAçšã®JPEGãšã³ã³ãŒããŒã®äœæã«é¢ããæ°éäŒæ¥ããã®å ±åããããŸããïŒ4ã€ã®åå¥ã®ãŠãããã䞊è¡ããŠåäœãããããã170 MB /ç§ãæäŸããŸãïŒãããã®ãããªãœãªã¥ãŒã·ã§ã³ã®è©³çŽ°ã¯èŠã€ãããŸããã§ããã
GPUäžã®ãœãããŠã§ã¢ãšã³ã³ãŒããŒãšFPGAäžã®ããŒããŠã§ã¢JPEGãšã³ã³ãŒããŒãæ¯èŒãããšãVerilog / VHDLãšæ¯èŒããŠãGPUäžã§çµæãšããŠåŸããããœãªã¥ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãé«ãããšã«å ããŠãCUDAã®Cã³ãŒããããç解ãããããå€æŽã«åºã¥ããŠæ°ãããã®ãäœæããããšã«æ³šæãã䟡å€ããããŸããããè€éãªç»ååŠçããã³å§çž®ã·ã¹ãã ã FPGAã«ã¯å©ç¹ãããããšã¯æããã§ãããèšç®é床ã®åé¡ã®ã¿ãèæ ®ããããšã«éå®ããŸãã
å®å šãæãããã«ããããªã«ãŒãã®äžŠåã³ã³ãã¥ãŒãã£ã³ã°ãã¯ãããžã®æ¢åã®æ¬ ç¹ãå¿ããŠã¯ãªããŸããã ãŸãããããªã«ãŒãã§ã®èšç®ã¯ã䞊ååãããã¢ã«ãŽãªãºã ã«å¯ŸããŠã®ã¿æå³ããããŸããããã¯ãå€ãã®ã·ãŒã±ã³ã·ã£ã«ã¢ã«ãŽãªãºã ã§ã¯ãããäžå¯èœãªããšãæå³ããŸãããããã£ãŠãå®è£ ã«ã¯CPUã®ãœãããŠã§ã¢ãå¿ ãå¿ èŠã«ãªããŸãã ãŸããCUDAãã¯ãããžãŒã¯NVIDIAã補é ãããããªã«ãŒãã§ã®ã¿äœ¿çšã§ããææ°ã®ææïŒFermiãã¯ãããžãŒïŒã¯ãããªã«ãŒãã®ææ°ã¢ãã«ã§ã®ã¿äœ¿çšã§ããŸãã ååãšããŠãããŸããŸãªã¡ãŒã«ãŒã®ãããªã«ãŒãã«é©ããOpenCLæšæºããããŸãããNVIDIAãããªã«ãŒãã«æ倧ã®ããã©ãŒãã³ã¹ãæäŸããããã§ã¯ãªããäžè¬ã«ãæ¢åã®ãã¹ãŠã®ãããªã«ãŒãã¢ãŒããã¯ãã£ã«å¯Ÿãããã®ã¿ã€ãã®ãœãªã¥ãŒã·ã§ã³ã®æ±çšæ§ã¯äŸç¶ãšããŠè°è«ã®äœå°ããããŸãã ãããªã«ãŒãã®ã¹ããªãŒãã³ã°ãã«ãããã»ããµã®ãµã€ãºãéåžžã«å°ããé«éå ±æã¡ã¢ãªã§ããããšãéèŠã§ããããã«ããã䜿çšãããã¢ã«ãŽãªãºã ãšãã®å¹çã«è¿œå ã®å¶éãå°å ¥ãããå©çšå¯èœãªïŒæ¯èŒçé ãïŒGDDR5ã¡ã¢ãªã¯çŸåšããããªã«ãŒãããã6ã®ã¬ãã€ã以äžã§ãã RAMã¯100ã®ã¬ãã€ããè¶ ããå ŽåããããŸãã é«ãããã©ãŒãã³ã¹ãåŸãã«ã¯ãæ倧ã®ãããªã«ãŒãè² è·ãéæããå¿ èŠããããããã¯äžŠåã¢ã«ãŽãªãºã ãšå€§éã®ããŒã¿ã«å¯ŸããŠã®ã¿å¯èœã§ãã GPUã§ã®èšç®ã§ã¯ããŸãæåã«ããŒã¿ããããªã«ãŒãã«ã³ããŒããå¿ èŠããããŸããããã«ãããè¿œå ã®é 延ãçºçããèšç®æéãé·ããªããŸãã ãããã£ãŠããããªã«ãŒãã§é«æ§èœãœãªã¥ãŒã·ã§ã³ãèšèšãããšãã¯ãã¢ã«ãŽãªãºã ã®ããŸããŸãªæ©èœãšç¹å®ã®ããŒããŠã§ã¢ã§ã®å®è£ ã®å¯èœæ§ãèæ ®ããå¿ èŠããããŸãã
ãã®èšäºã§ã¯ãåäžã®ãããªã«ãŒãã§æšæºã®JPEGã¢ã«ãŽãªãºã ã䜿çšããŠ8ãããç»åããã°ããå§çž®ããããã®ãœãªã¥ãŒã·ã§ã³ã玹ä»ããŸãã NVIDIAã«ã¯ãããããã¿ã¹ã¯ãè€æ°ã®ãããªã«ãŒãã«äžŠååããæè¡ãæ¢ã«åãã£ãŠãããååãšããŠãå§çž®é床ãããã«åå¢ããæ©äŒãæäŸã§ããããããã®ãããªãœãªã¥ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãã¹ã±ãŒãªã³ã°ããããŸããŸãªæ¹æ³ããããŸããã GeForce GTX 590ã®ãããªãã匷åãªã°ã©ãã£ãã¯ã«ãŒãã䜿çšããŠããããè¯ãçµæãåŸãããŸãã ã³ããŒãšã³ã³ãã¥ãŒãã£ã³ã°ã®æ®µéã䞊ååãããšãã«ã¢ã«ãŽãªãºã ãé«éåããæœåšçãªæ©äŒããããŸãã NVIDIAã°ã©ãã£ãã¯ã¹ã«ãŒãã®æ¬¡ã®ãã匷åãªäžä»£ã¯ãå§çž®ããã©ãŒãã³ã¹ã®åäžãšããæèã§ãèŠãããšãã§ããŸãã ãããã£ãŠããããªã«ãŒãã®äžŠåã³ã³ãã¥ãŒãã£ã³ã°ãã¯ãããžã¯ãé«éã®ããŒã¿åŠçã¢ã«ãŽãªãºã ãäœæããããã®ååãªæ©äŒãæäŸããŸãããæ¹åãã¹ãç¹ãšåªåãã¹ãç¹ããŸã ãããŸãã ãããªãç 究ã®ããã«ãåŸããããœãªã¥ãŒã·ã§ã³ã®æé©åãšããã¹ã¬ã¹ãå«ãé«éç»åããã³ãããªå§çž®ïŒMJPEGïŒã®ããã®ä»ã®ã¢ã«ãŽãªãºã ãéåžžã«èå³æ·±ãã§ãã
ãã®èšäºã§èª¬æãããŠãããããªã«ãŒãã®ç»åãå§çž®ããããã®ãœãããŠã§ã¢ã¯äºå調æ»ã®çµæã§ãããå®æãã補åãšããŠã¯ãŸã ååšããŠããŸããã FVJPEGã³ãŒããã¯ã®ãªãªãŒã¹ãšãWindows / Linuxçšã®ããŒã¹ã©ã€ã³JPEGã¢ã«ãŽãªãºã ã䜿çšããNVIDIA GPUã§ã®é«éç»åå§çž®çšã®å¯Ÿå¿ããSDKãè¿ãå°æ¥ã«ãªãªãŒã¹ãããäºå®ã§ãã