CharLS هو تطبيق C++ لمعيار JPEG-LS لضغط الصور وإلغاء ضغطها بدون فقدان أو شبه فقدان. يعد JPEG-LS معيارًا لضغط الصور منخفض التعقيد ويطابق نسب ضغط JPEG 2000.
يعد JPEG-LS (ISO/IEC 14495-1:1999 / ITU-T.87) معيارًا لضغط الصور مشتق من خوارزمية Hewlett Packard LOCO. يتميز JPEG-LS بتعقيد منخفض (أي ضغط سريع) ونسب ضغط عالية، تشبه نسب JPEG 2000 غير المفقودة. يشبه JPEG-LS تنسيق JPEG القديم Lossless أكثر من JPEG 2000، ولكن من المثير للاهتمام أن التقنيتين المختلفتين تؤديان إلى خصائص أداء مختلفة إلى حد كبير. ويكيبيديا على JPEG وJPEG-LS بدون فقدان البيانات: https://en.wikipedia.org/wiki/Lossless_JPEG
نصيحة: يتيح الاتحاد الدولي للاتصالات نسخته من معيار 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: "الضغط بدون فقدان أو شبه فقدان للصور الثابتة ذات الألوان المستمرة: الامتدادات". حاليًا لا يدعم CharLS هذه الامتدادات.
يتم تجميع/اختبار الكود بانتظام على نظامي التشغيل Windows و64 بت Linux. بالإضافة إلى ذلك، تم اختبار التعليمات البرمجية بنجاح على Linux Intel/AMD 32/64 بت (slackware، debian، gentoo)، وأنظمة Solaris SPARC، وأجهزة Mac المستندة إلى Intel، وWindows CE (ARM CPU، تمت محاكاتها)، حيث قد تتطلب المترجمات الأقل شيوعًا استخدامًا بسيطًا تعديلات التعليمات البرمجية. فهو يستفيد من ميزات لغة C++ (القوالب والسمات) لإنشاء تعليمات برمجية محسنة، والتي تقدم أداءً أفضل بشكل عام مع المترجمين الجدد.
البعد | النسخة المدعومة |
---|---|
النسخة ج | >= 17 |
نسخة سي++ | >= 17 |
CMake | >= 3.16 |
دول مجلس التعاون الخليجي | >= 9.1 |
رنة | >= 7.0.0 |
MSVC | >= 2019 |
أبل كلانج | >= 12 |
مع vcpkg على نظام التشغيل Windows
PS > vcpkg install charls charls:x64 - windows
باستخدام vcpkg على Linux أو macOS
~ /$ ./vcpkg install charls
بالنسبة للأنظمة الأساسية الأخرى، والمزيد من خيارات التثبيت، وكيفية البناء من المصدر، والمزيد، قم بإلقاء نظرة على الوثائق.
بمجرد حصولك على المكتبة، يوفر المجلد النموذجي بعض نماذج التعليمات البرمجية للبدء.
يتم توفير هذا المستودع كرمز مصدر، ولا يقدم إصدارات ثنائية على وجه التحديد. بدلاً من ذلك، يتم تشجيعه إما على "العيش في المقدمة" (البناء من أحدث إصدار من أو، إذا لزم الأمر، البناء على فرع معروف ومدعوم، يُعرف باسم فرع الدعم طويل المدى (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/ قبل استخدام هذا إذا كنت تستخدم هذا الرمز لأغراض تجارية.