ตัวสร้างภาพขนาดย่อ JPEG ที่เร็วที่สุดสำหรับ Linux


9

ฉันกำลังมองหาตัวแปลงอิมเมจบรรทัดคำสั่งที่เร็วที่สุดสำหรับ Linux ซึ่งสามารถอ่านภาพ JPEG ปรับขนาดได้จนถึง 1366x768 มากที่สุดและเขียนภาพ JPEG คุณภาพ 50 ภาพ บางอย่างเช่นนี้ แต่เร็วกว่า 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

ดังนั้นฉันต้องการมีโปรแกรมที่เขียนโดยเฉพาะอย่างยิ่งใน C ซึ่งรวม djpeg, pnmscale รุ่นที่มีคุณภาพสูงกว่าและ cjpeg

ฉันเพิ่งพบswiggle (โปรแกรม C ที่ใช้ libjpeg) ฉันได้ปิดการทำงานบางอย่างของฟังก์ชั่นที่ฉันไม่ต้องการในซอร์สโค้ดและฉันได้:

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

คุณมีข้อเสนอแนะอื่นหรือไม่? ฉันเดาว่าตัวแปลงรูปภาพส่วนใหญ่ใช้ libjpeg ดังนั้นมันจึงยากที่จะได้ผลลัพธ์ที่เร็วกว่า swiggle


1
ฉันเดาว่าเร็วที่สุดที่จะใช้ CUDA หรือ OpenCL (ซึ่งใช้พลังของ GPU ที่ใช้ NVidia หรือ AMD ของคุณ) ฉันคิดว่า OpenCV ตอนนี้ใช้ CUDA ในบางส่วน คุณอาจทำอะไรบางอย่างได้ถ้าคุณสะดวกกับ c
Matt H

ฉันเห็นด้วยกับแมตต์ หากเป็นภาพขนาดใหญ่ (และถ้าใช้เวลา 12 วินาทีฉันคิดว่ามันไม่เล็ก) ดังนั้น CUDA / OpenCL ก็จะทำงานได้ หรือรับพีซีที่ดีกว่า
Apache

รูปภาพไม่ใหญ่เกินไป (สูงสุดที่ 4000x3000) - การแปลงใช้เวลา 12 วินาทีสำหรับชุดรูปภาพที่มีภาพหลายโหล
pts

คำตอบ:


13

ห้องสมุดที่เร็วที่สุดที่ผมเคยใช้เพื่อให้ห่างไกลแน่นอนEPEG มันสามารถสร้างนิ้วหัวแม่มือจากไฟล์ 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 ... ลองดูส้อมนี้ด้วย
mattes

1
ดูเพิ่มเติมที่github.com/fawick/speedtest-resizeเพื่อเป็นมาตรฐานของห้องสมุดต่างๆ
nh2

2

ฉันได้แก้ไขปัญหานี้แล้วโดยการดาวน์โหลดswiggle (รูปขนาดย่อ JPEG คำสั่ง + ตัวสร้างแกลเลอรี่รูปภาพ HTML) และแก้ไขแหล่งที่มาสำหรับความต้องการของฉัน ดูการวัดความเร็วในคำถาม (น้อยกว่า 10% เร็วกว่า djpeg + pnmscale + cjpeg)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.