CharLS คือการนำ C++ ไปใช้ตามมาตรฐาน JPEG-LS สำหรับการบีบอัดและคลายการบีบอัดรูปภาพแบบไม่สูญเสียข้อมูลและใกล้เคียงการสูญเสียข้อมูล JPEG-LS เป็นมาตรฐานการบีบอัดภาพที่มีความซับซ้อนต่ำซึ่งตรงกับอัตราส่วนการบีบอัด JPEG 2000
JPEG-LS (ISO/IEC 14495-1:1999 / ITU-T.87) เป็นมาตรฐานการบีบอัดรูปภาพที่ได้มาจากอัลกอริทึม LOCO ของ Hewlett Packard JPEG-LS มีความซับซ้อนต่ำ (หมายถึงการบีบอัดที่รวดเร็ว) และมีอัตราส่วนการบีบอัดสูง คล้ายกับ JPEG 2000 lossless ratio JPEG-LS มีความคล้ายคลึงกับ Lossless JPEG แบบเก่ามากกว่า JPEG 2000 แต่ที่น่าสนใจคือเทคนิคทั้งสองที่แตกต่างกันส่งผลให้มีคุณลักษณะด้านประสิทธิภาพที่แตกต่างกันอย่างมาก วิกิพีเดียเกี่ยวกับ JPEG แบบไม่สูญเสียและ JPEG-LS: https://en.wikipedia.org/wiki/Lossless_JPEG
เคล็ดลับ: ITU ทำให้เวอร์ชันมาตรฐาน JPEG-LS (ITU-T.87) พร้อมให้ดาวน์โหลดได้อย่างอิสระ ข้อความเหมือนกันกับเวอร์ชัน ISO
เป้าหมายของโปรเจ็กต์นี้คือ การนำมาตรฐาน ISO/IEC 14495-1:1999 มาใช้อย่างเต็มรูปแบบ "การบีบอัดภาพนิ่งแบบต่อเนื่องแบบไม่มีการสูญเสียข้อมูลและเกือบสูญเสียข้อมูล: พื้นฐาน" ไลบรารีนี้เขียนตั้งแต่ต้นด้วย C++ แบบพกพา สาขาหลักใช้ C++17 สาขา 2.x ได้รับการปรับปรุงใน C ++ 14 ไลบรารีนี้ใช้ฟีเจอร์ JPEG-LS หลักทั้งหมด จากผลการทดสอบเบื้องต้นที่เผยแพร่บน https://imagecompression.info/gralic CharLS เร็วกว่าโค้ด HP ดั้งเดิมประมาณสองเท่า และเหนือกว่าทั้ง JPEG-XR และ JPEG 2000 ด้วยแฟคเตอร์ 3
ตัวเลือก JPEG-LS ต่อไปนี้ไม่ได้รับการสนับสนุนโดยการใช้งาน CharLS ตัวเลือกเหล่านี้ส่วนใหญ่ไม่ค่อยได้ใช้ในทางปฏิบัติ
หลังจากเผยแพร่มาตรฐาน JPEG-LS พื้นฐานดั้งเดิม ISO 14495-1:1999 แล้ว ISO ได้เปิดตัวส่วนขยายของมาตรฐาน JPEG-LS ที่เรียกว่า ISO/IEC 14495-2:2003: "การบีบอัดภาพนิ่งแบบ Lossless และ Near-lossless: ส่วนขยาย". ปัจจุบัน CharLS ไม่รองรับส่วนขยายเหล่านี้
รหัสนี้ได้รับการคอมไพล์/ทดสอบเป็นประจำบน Windows และ Linux 64 บิต นอกจากนี้ โค้ดยังได้รับการทดสอบบน Linux Intel/AMD 32/64 บิต (สแล็กแวร์, เดเบียน, gentoo), ระบบ Solaris SPARC, Mac ที่ใช้ Intel และ Windows CE (ARM CPU, จำลอง) ซึ่งคอมไพเลอร์ทั่วไปน้อยกว่าอาจต้องใช้โปรแกรมรอง การแก้ไขโค้ด มันใช้ประโยชน์จากคุณสมบัติภาษา C++ (เทมเพลต ลักษณะ) เพื่อสร้างโค้ดที่ได้รับการปรับปรุง ซึ่งโดยทั่วไปจะทำงานได้ดีที่สุดกับคอมไพเลอร์ล่าสุด
มิติ | เวอร์ชันที่รองรับ |
---|---|
เวอร์ชันซี | >= 17 |
เวอร์ชัน C++ | >= 17 |
ซีเมค | >= 3.16 |
จีซีซี | >= 9.1 |
เสียงดังกราว | >= 7.0.0 |
เอ็มเอสวีซี | >= 2019 |
แอปเปิ้ลเสียงดังกราว | >= 12 |
ด้วย vcpkg บน Windows
PS > vcpkg install charls charls:x64 - windows
ด้วย vcpkg บน Linux หรือ macOS
~ /$ ./vcpkg install charls
สำหรับแพลตฟอร์มอื่นๆ ตัวเลือกการติดตั้งเพิ่มเติม วิธีสร้างจากแหล่งที่มา และอื่นๆ โปรดดูที่เอกสารประกอบ
เมื่อคุณมีไลบรารีแล้ว โฟลเดอร์ตัวอย่างจะมีตัวอย่างโค้ดบางส่วนเพื่อให้คุณเริ่มต้นได้
พื้นที่เก็บข้อมูลนี้จัดทำขึ้นเป็นซอร์สโค้ด และไม่มีการเผยแพร่ไบนารีโดยเฉพาะ ในทางกลับกัน ขอแนะนำให้ "live at head" (สร้างจากเวอร์ชันล่าสุด หรือหากจำเป็น ให้สร้างเทียบกับสาขาที่รู้จักและได้รับการสนับสนุน ซึ่งเรียกว่าสาขา Long Term Support (LTS) การสนับสนุนสำหรับคอมไพเลอร์เวอร์ชันเก่าจะเป็น จะยุติลง 5 ปีนับจากวินาทีที่คอมไพเลอร์เวอร์ชันใหม่พร้อมใช้งาน เช่นเดียวกับเวอร์ชันภาษา C++ ที่จำเป็นขั้นต่ำ
ก่อนการเปลี่ยนแปลงสำคัญใดๆ ใน API และ/หรือ ABI สาขาจะถูกสร้างขึ้นจากหลักเพื่อหยุดสแน็ปช็อตนั้นเป็นสาขา LTS
CharLS ถูกใช้โดยชุดเครื่องมือ GDCM DICOM ขอบคุณสำหรับ Mathieu Malaterre ที่เริ่มต้น CharLS บน Linux Kato Kanryu เขียนเวอร์ชันเริ่มต้นของการเปลี่ยนสีและโค้ดรูปแบบเอาต์พุต DIB สำหรับปลั๊กอิน irfanview โดยใช้ CharLS
รหัสในโครงการนี้มีให้ใช้งานผ่านใบอนุญาตสไตล์ BSD ซึ่งอนุญาตให้ใช้รหัสในแอปพลิเคชันแหล่งปิดเชิงพาณิชย์ได้หากคุณต้องการ โค้ด ทั้งหมด ในโปรเจ็กต์นี้เขียนตั้งแต่ต้น และไม่อิงตามการใช้งาน JPEG-LS อื่นๆ โปรดทราบว่า Hewlett Packard อ้างว่าเป็นเจ้าของสิทธิบัตรที่ใช้กับการใช้งาน JPEG-LS แต่จะอนุญาตให้ใช้สิทธิได้ฟรีสำหรับการใช้งาน JPEG-LS ที่สอดคล้องกัน สิทธิบัตรเหล่านี้บางส่วนอาจหมดอายุแล้วในประเทศของคุณ อ่านเพิ่มเติมได้ที่ https://hpl.hp.com/loco/ ก่อนที่คุณจะใช้รหัสนี้ หากคุณใช้รหัสนี้เพื่อวัตถุประสงค์ทางการค้า