लिनक्स के लिए सबसे तेज जेपीईजी थंबनेल जनरेटर


9

मैं लिनक्स के लिए सबसे तेज कमांड-लाइन इमेज कन्वर्टर की तलाश कर रहा हूं जो JPEG इमेज को पढ़ सकता है, इसे सबसे अधिक 1366x768 तक माप सकता है, और एक गुणवत्ता 50 JPEG इमेज लिख सकता है। ऐसा कुछ, लेकिन ImageMagick की तुलना में बहुत तेज़:

$ convert -resize x768 -quality 50 foo42.jpg foo42.th.jpg
# takes 0m16.713s for my test image set

मैंने भी यह कोशिश की है:

$ <foo42.jpg djpeg | pnmscale -xysize 1366 768 | cjpeg -quality 50 >foo42.th.jpg
# takes 0m12.007s for my test image set, and has lower visual quality than ImageMagick

इसलिए मैं एक प्रोग्राम करना चाहता हूं, अधिमानतः सी में लिखा गया है, जो djpeg, pnmscale का एक उच्च गुणवत्ता वाला संस्करण और cjpeg को एकीकृत करता है।

मुझे सिर्फ swiggle मिला है (libjpeg का उपयोग करके एक C प्रोग्राम), मैंने इसकी कुछ कार्यक्षमता को अक्षम कर दिया है जिसकी मुझे स्रोत कोड में आवश्यकता नहीं है, और मुझे मिल गया है:

$ swiggle -f -H 768 .
# takes 0m11.378s for my test image set, yields high quality results

क्या आपके पास एक और सुझाव है? मुझे लगता है कि अधिकांश छवि कन्वर्टर्स libjpeg का उपयोग करते हैं, इसलिए स्विग्ल की तुलना में बहुत तेज़ परिणाम प्राप्त करना कठिन होगा।


1
मुझे लगता है कि सबसे तेज CUDA या OpenCL (जो आपके NVidia या AMD आधारित GPU की शक्ति का उपयोग करता है) का उपयोग करेगा। मुझे लगता है कि OpenCV अब भागों में CUDA का उपयोग करता है। यदि आप सी के साथ काम कर रहे हैं तो आप कुछ कोड़ा मार सकते हैं
मैट

मैं मैट से सहमत हूं। यदि वे विशाल चित्र हैं (और अगर इसमें 12 सेकंड लगते हैं तो मुझे लगता है कि वे छोटे नहीं हैं), तो CUDA / OpenCL काम करेगा। या एक बेहतर पीसी प्राप्त करें।
अपाचे

छवियां बहुत बड़ी नहीं हैं (4000x3000 अधिकतम है) - रूपांतरण में कई दर्जन छवियों के छवि सेट के लिए 12 सेकंड लगते हैं।
अंक

जवाबों:


13

मैंने अब तक जिस सबसे तेज लाइब्रेरी का इस्तेमाल किया है, वह निश्चित रूप से ईपीईजी है । यह केवल JPG फ़ाइलों से अंगूठे बना सकता है, लेकिन यह उन्हें बहुत तेज़ बनाता है:

$ identify worldmap.jpg
worldmap.jpg JPEG 6400x3200 6400x3200+0+0 DirectClass 8-bit 6.85727mb 0.840u 0:02

ImageMagick:

$ time convert -resize 1536x768 -quality 50 worldmap.jpg im_thumb.jpg
# 2.93s user 0.23s system 85% cpu 3.718 total

EPEG:

$ time epeg -w 1536 -h 768 -q 50 worldmap.jpg epeg_thumb.jpg
# 0.31s user 0.01s system 79% cpu 0.404 total

मैंने वास्तव में बड़ी छवियों की एक बड़ी मात्रा के लिए अंगूठे बनाने के लिए इस पुस्तकालय का उपयोग किया ।


2
github.com/mattes/epeg ... इस कांटे को भी देखें।
मैट

1
विभिन्न पुस्तकालयों के बेंचमार्क के लिए github.com/fawick/speedtest-resize भी देखें
nh2

2

मैंने swiggle (एक कमांड-लाइन JPEG थंबनेल + HTML छवि गैलरी जनरेटर) डाउनलोड करके, और अपनी आवश्यकताओं के लिए इसके स्रोत को संशोधित करके इस समस्या को हल किया है । प्रश्न में गति माप देखें (djpeg + pnmscale + cjpeg की तुलना में 10% कम)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.