ห้องสมุดฟรีพร้อมฟังก์ชัน SIMD
libjpeg-turbo คือ JPEG ตัวแปลงสัญญาณรูปภาพ ที่ใช้คลาสของคอมพิวเตอร์คู่ขนานที่เรียกว่า คำสั่งเดียว หลายข้อมูล (SIMD) ซึ่งรวมถึงคำแนะนำสำหรับโปรเซสเซอร์ เช่น MMX, SSE2, AVX2, NEON และ AltiVec คำแนะนำ SIMD ใช้เพื่อเร่งความเร็วพื้นฐาน JPEG การบีบอัดไฟล์ หรือการคลายการบีบอัดไฟล์ x86, x86-64 , ARM และระบบ PowerPC โปรแกรมนี้ติดตามโปรแกรม libjpeg แต่มีประสิทธิภาพเหนือกว่าโดยเร็วกว่า 2 - 6 เท่า เมื่อเทียบกับรุ่นก่อน เครื่องมือนี้ทำงานเร็วกว่าและราบรื่นกว่า Codec JPEG ความเร็วสูงที่เป็นเอกสิทธิ์เฉพาะของตัวประมวลผลโดยใช้ขั้นตอนการเข้ารหัส Huffman ที่ได้รับการปรับแต่งอย่างสูงของโปรเซสเซอร์
libjpeg-turbo คืออะไร
libjpeg-turbo ก่อตั้งขึ้นครั้งแรกบน libjpeg/SIMD ซึ่งเป็นบริษัทในเครือ MMX ที่เร่งความเร็วของ libjpeg v6b ที่สร้างโดย Miyasaka Masaru กิจการ TigerVNC และ VirtualGL ได้ทำการอัปเกรดตัวแปลงสัญญาณต่างๆ ในช่วงปลายทศวรรษ 2000 utility โปรแกรมนี้แยกออกเป็นงานอิสระโดยมีวัตถุประสงค์เพื่อสร้าง JPEG อย่างรวดเร็ว นวัตกรรมเกี่ยวกับแรงกดดันหรือการบีบอัดที่เข้าถึงได้ในกลุ่มลูกค้าและวิศวกรที่กว้างขวางยิ่งขึ้น
การลงทุนแบบโอเพนซอร์ส ได้รับการตั้งชื่อในลักษณะนี้ เนื่องจากทำให้การดำเนินการของ SIMD รวดเร็วขึ้น libjpeg API มาตรฐานธุรกิจ ไลบรารีที่เราให้นั้นรัน API นั้นคือ API/ABI สองตัว ซึ่งดีและ สมบูรณ์แบบเชิงตัวเลข ด้วย libjpeg v6b นอกจากนี้ยังสามารถออกแบบให้เป็น API/ABI ด้วย libjpeg v7 และ v8 ได้อีกด้วย โปรดทราบว่า ไม่รวมการสนับสนุน สำหรับกลุ่ม ที่ไม่ได้มาตรฐาน SmartScale ที่นำเสนอใน libjpeg v8
เครื่องมือนี้ ทำให้ทั้ง libjpeg API ปกติ แต่ไม่รวมถึง TurboJPEG API ที่ค่อยๆ ชัดเจนขึ้น TurboJPEG เป็น API ระดับที่สูงขึ้น ซึ่งเริ่มแรกสร้างขึ้นเพื่อใช้โดย VirtualGL และ TurboVNC พวกเขามีภารกิจที่แตกต่างกัน แต่โปรแกรมดังกล่าวทั้งหมดเป็นโอเพ่นซอร์สและปัจจุบันใช้งานได้เช่นกัน ความแตกต่างอีกประการระหว่างทั้งสองคือส่วนหลังมี อินเทอร์เฟซที่ใช้งานง่าย สำหรับบรรจุและขยายขนาดรูปภาพ JPEG ในหน่วยความจำ
เหตุใดจึงต้องใช้ libjpeg-turbo
ภายใน libjpeg-turbo TurboJPEG API ถูกกำหนดโดยวิธีการของไลบรารีที่ครอบคลุมซึ่งเรียกใช้ libjpeg API ในทางกลับกัน โปรแกรมพิเศษนี้รวมถึง การขยายขอบเขตสี ที่อนุญาตให้แพ็คจากหรือขยายขนาด 32 ชิ้นและ endian pixel cradles ขนาดมหึมา—RGBX และ XBGR —เหมือนกับอินเทอร์เฟซ Java


