هل هناك جودة أو حجم ملف أو فائدة أخرى لأحجام JPEG كونها مضاعفات 8 بكسل أو 16 بكسل؟

StackOverflow https://stackoverflow.com/questions/74892

سؤال

تقوم عملية ترميز ضغط JPEG بتقسيم صورة معينة إلى كتل بحجم 8 × 8 بكسل، والعمل مع هذه الكتل في عمليات الضغط المستقبلية وغير المفقودة. [مصدر]

يُذكر أيضًا أنه إذا كانت الصورة عبارة عن كتلة 1MCU متعددة (يتم تعريفها على أنها الحد الأدنى من الوحدة المشفرة، "عادةً 16 بكسل في كلا الاتجاهين")، فيمكن إجراء تعديلات بدون فقدان لملف JPEG. [مصدر]

أنا أعمل مع صور المنتج وأرغب في معرفة ما إذا كان يمكن استخلاص الفائدة من استخدام مضاعفات 16 في الحجم النهائي لصورتي (على سبيل المثال، استخدام صورة بحجم 480 بكسل × 360 بكسل) وما مدى الاستفادة منها.غير مضاعف 16 (مثل 484 × 362).في هذا المثال، لست مهتمًا بإجراء المزيد من التعديلات أو التحرير أو إعادة ضغط الصورة النهائية.

لمحاولة الاقتراب من إجابة محددة حيث أعلم أنه يجب أن تكون هناك عموميات إلى حد كبير:الحصول على صورة بحجم 480 × 360 وبدقة 64 كيلو بايت ويتم حفظها بأقصى جودة في برنامج Photoshop [مثال]:

  • هل يمكنني توقع أي خسارة في الجودة من صورة بحجم 484 × 362
  • ما مقدار إضافة حجم الملف الذي يمكنني توقعه (على سبيل المثال، ستكون المساحة الإضافية عبارة عن وحدات بكسل بيضاء)
  • هل هناك أي عيوب أخرى للنمو بشكل أكبر من شبكة 8 بكسل؟

أعلم أنه من التعسفي استخدام هذا المثال المحدد، ولكن سيكون من المفيد (بالنسبة لي وربما لأي شخص آخر يفكر في حجم الصورة) أن أفهم مستوى التسوية الذي سأتعامل معه في كسر الشبكة التي لا تحتوي على 8 بكسل.

القضية الرئيسية هنا هي المناقشة التي أجريتها حول ما إذا كانت الصور القابلة للقسمة ذات 8 بكسل هي ذات جودة أعلى من الصور غير القابلة للقسمة على 8 بكسل.

هل كانت مفيدة؟

المحلول

8 بكسل هو القطع.والسبب هو أن صور JPEG هي ببساطة مجموعة من كتل DCT مقاس 8 × 8؛إذا لم تكن دقة الصورة mod8 في كلا الاتجاهين، فيجب على المشفر أن يحشو الجوانب حتى دقة mod8 التالية.هذا من الناحية العملية ليس مكلفًا للغاية؛ما هو أسوأ بكثير هو الحالات التي تحتوي فيها الصورة على خطوط سوداء حادة (مثل صورة على شكل حرف letterbox) لا تقع على حدود الكتلة.وهذا يمثل مشكلة خاصة في ترميز الفيديو.السبب وراء هذه المشكلة هو أن تحويل التردد للخط الحاد هو توزيع غوسي للمعاملات، مما يؤدي إلى عدد هائل من البتات المراد تشفيرها.

بالنسبة لأولئك الفضوليين، فإن الطريقة الأكثر شيوعًا لحشو الحواف في الضغط الداخلي (مثل صور JPEG) هي عكس خطوط البكسل قبل الحافة.على سبيل المثال، إذا كنت بحاجة إلى وضع ثلاثة أسطر وكان الخط X هو الحافة، فإن الخط X+1 يساوي الخط X، والخط X+2 يساوي الخط X-1، والخط X+3 يساوي الخط X- 2.وهذا يقلل بشكل فعال من التكلفة في معاملات التحويل للخطوط الإضافية.

ومع ذلك، في التشفير البيني، تقوم خوارزميات الحشو بشكل عام بتكرار السطر الأخير، لأن طريقة المرآة لا تعمل بشكل جيد للضغط البيني، كما هو الحال في ضغط الفيديو.

نصائح أخرى

في بعض الأحيان تحتاج إلى استخدام حدود 16 بكسل بدلاً من 8 بسبب الاختزال؛يتم التخلص من كل بكسل ثانٍ أثناء عملية التشفير، وتبدأ كتل DCT مقاس 8 × 8 كـ 16 × 16 وسيتم فك تشفيرها مرة أخرى إلى 16 × 16.لن تكون هذه مشكلة في إعدادات الجودة الأعلى.

أبعاد الصورة هي مضاعفات 8 أو 16 لن تؤثر على الحجم الموجود على القرص كثيرًا، ولكن يمكنك الحصول على توفير كبير إذا كان بإمكانك ترتيب المحتويات المرئية مع شبكة 8 × 8 بكسل، كما لو كان هناك نمط متكرر أو الملمس في الصورة.

يمكن أيضًا تدوير/قلب ملف JPG بأحجام مضاعفة 8 دون فقدان الجودة.على سبيل المثال، يمكن لـ gthumb القيام بذلك على Linux.

ماذا توميتسكي قال.إذا لم يكن لديك المضاعف الصحيح، فلن تعمل خوارزميات الوجه والتدوير بدون فقدان البيانات.وذلك لأن الحشو الموجود على اليمين/الأسفل والذي يمكن تجاهله بأمان ينتهي الآن على اليسار/الأعلى، حيث لا يمكن تجاهله.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top