ملاحظة: لا يوجد حاليًا أي تطور يحدث هنا. تم استخدام أجزاء من هذا المشروع في JPEG XL، وهو قيد التطوير النشط.
PIK هو تنسيق صور شامل للصور والإنترنت.
PIK هو نسخة حديثة من JPEG لها أهداف مماثلة: التخزين الفعال وتسليم الصور وصور الويب. لقد تم تصميمه من الألف إلى الياء للحصول على جودة عالية وفك تشفير سريع .
ميزات تتيح الجودة العالية (بدون فقدان للإدراك):
بالإضافة إلى الترميزات الكاملة والإدراكية غير المفقودة، يحقق PIK توازنًا جيدًا بين الجودة/الحجم/السرعة عبر نطاق واسع من معدلات البت (0.5 - 3 bpp). يتيح PIK الضغط التلقائي/غير الخاضع للرقابة لأنه يضمن الحفاظ على الجودة المستهدفة على الصورة بأكملها. إنها تعطي الأولوية للأصالة ، والتمثيل الأمين للأصل، على الجماليات التي يمكن تحقيقها من خلال تفاصيل مهلوسة أو "تعزيز" (على سبيل المثال، شحذ/تشبع) المدخلات.
الميزات التي تتيح فك التشفير السريع (> 1 جيجابايت/ثانية متعدد الخيوط):
ميزات أخرى:
يدعم برنامج تشفير الوضع المستجيب لـ PIK التمريرات المكافئة لخفض الدقة بمقدار 4x أو 8x. يدعم التنسيق تمريرات أكثر مرونة، مع أي مستوى من التفاصيل بدءًا من الاختزال المكافئ بمقدار 8x وحتى الدقة الكاملة. لا يلزم أن يكون مقدار التفاصيل في التمريرة موحدًا: يمكن إرسال مناطق الصورة بتفاصيل أعلى. تأثير وضع الاستجابة على حجم الصورة المشفرة منخفض، حيث يصل متوسطه إلى حوالي 2% لصورة سريعة الاستجابة ذات 3 تمريرات (8x، 4x، الدقة الكاملة). في مثل هذا التكوين، تستغرق أول تمريرتين في المتوسط 20% من حجم الصورة لكل منهما.
يتطلب البرنامج حاليًا وحدة معالجة مركزية قادرة على استخدام AVX2 وFMA، على سبيل المثال Haswell. يتطلب البناء حاليًا clang 6 أو أحدث.
من أجل البناء، يمكن استخدام الإرشادات التالية:
git submodule update --init
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8
يؤدي هذا إلى إنشاء ثنائيات cpik
و dpik
في build/
.
الاستخدام الأساسي هو كما يلي:
cpik [--distance ] input.png output.pik
وسيطة سطر الأوامر --distance
الاختيارية لـ cpik هي مسافة Butteraugli (راجع http://github.com/google/butteraugli)، مما يشير إلى أكبر خطأ مقبول. تؤدي القيم الأكبر إلى ملفات أصغر وجودة أقل. يجب أن تؤدي القيمة الافتراضية 1.0 إلى نتيجة غير قابلة للفقدان.
لاحظ أن تدفق البتات لا يزال قيد التطوير ولم يتم تجميده بعد.