JPEG
يعتبر JPEG في المعلوماتية طريقة معيارية شائعة لضغط الصور الرقمية مع خسارة في القيمة المعلوماتية للصورة. ويسمى الشوكل الذي يوظف هذا الضغط JPEG كذلك؛ أشهر الإمتدادات المستخدمة لهذا الشوكل هي .jpeg و .jfif و .jpg و .JPG و .JPE لكن .jpg يبقى أكثرها استخداما في جميع المنصات.
وهذا الشوكل - JPEG/JFIF - أكثر الشواكل استخداما لحفظ ونقل الصور الشمسية على شبكة الويب. إذ أنها مفضلة على شواكل أخرى مثل GIF، الذي لا يسمح إلا ب256 لون مختلف، وهذا غير كاف للصور الشمسية، و PNG الذي ينتج ملفات كبيرة مقارنة ب JPEG/JFIF. ويعود هذا إلى ضغطها العالي الذي يضغط البيانات بنسبة 20 مرة تقريبا فمثلا إذا كانت تحتاج صورة 200 بت فإن استعمال خوارزمية الضغط هذه يمكن تقليصها إلى 10 بتات.
لكن إذا كان هذا الشوكل ملائما للصور، فإنه يبقى عاجزا عن منافسة GIF و PNG في الرسوم المتجيّة والبيانات الأيقونية والنسيجية، بسبب سوء أداء طريقة ضغطه على مثل هذه الأنواع من الصور، التي يشيع استعمال GIF و PNF بالنسبة لها.
و JPEG اختصار لكلمة Joint Photographic Expert Group، وهي الجهة القائمة على تطوير هذه الخوارزمية.
خوارزمية JPEG للضغط متناظرة أي أن الجهد اللازم للتشفير هو نفس الجهد اللازم لفك التشفير. وفي ما يلي شرح لكيفية عمل الخوارزمية في أبسط صيغاتها المسماة تشفير خط الأساس المتتالي Baseline Sequential Encoding والقائمة على الخطوات السبعة التالية:
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
الترقيم
الترقيم أو digitalization هو عملية إستعيان للقنوات الثلاثة الموجودة في الصورة ألا وهي الأحمر و الأخضر و الأزرق. و يتم حفظ كل بكسل (أي كل نقطة إستمثال) في 8 بتات (لكل قناة).
يمكن أن نتصور أن الصورة الرقمية عبارة عن 3 مصفوفات يمثل كل بكسل فيها عنصر من عناصر المصفوفة. أي أنه مثلا إذا كان لديك صورة طولها أربع بكسلات و عرضها أربع بكسلات فإنه لديك 16 بكسل و يمكن أن تحفظ هذه الصورة في شاكلة 3 مصفوفات (مصفوفة لكل من اللون أو ما يسمى القناة الحمراء و الخضراء و الزرقاء). و يكون في كل عنصر عدد يدل على قوة اللون (مثلا رقم 255 في القناة الحمراء يدل على أحمر قان و 0 يدل على لون أحمر خافت).
تغيير التشفير
يتم تغيير التشفير من RGB (أحمر أخضر أزرق) إلى تشفير Y،U،V حيث Y هي الإضائة و Uو V هي التلون. كيف يتم هذا و ما معناه؟؟
يتم التحويل بالطريقة التالية:
مع الإشارة إلى أن R،G،B،U،V،Y بين 0 و 255. كما أن المعاملات في التحويل تأتي من حساسية العين البشرية حيث أنها حساسة جدا في مجال اللون الأخضر في حين أنها أقل جساسية في مجال اللونين الأزرق و الأحمر ذلك فإن المعامل للون الأخضر هو الأكبر قيمة مقارنة بالمعاملين الأخرين.
تقسيم الصورة إلى قطع 8x8 بكسل
يتم تقسم الصورة إلى قطع متكونة من 8x8 بكسل لتكون أسهل معالجة في الخطوة الموالية. (ما يحدث مع صور غير قابلة للقسمة على 8 معرف في المعيار الخاص بجايبغ)
تحويل جيب التمام
يتم تحويل كل من المصفوفات 8x8 عن طريق تحويل جيب التمام و نتحصل بذلك على مصفوفا تحتوي على التردد المكاني
إستعيان التردد المثالي
في هذه الخطوة يمكن أن نفقد بعض البتات أو المعلومات من الصورة. حيث يتم إستعيان الترددات Frequency Samplingالبطيئة بطريقة جيدة(بطريقة تسمح برؤية الفوارق الصغيرة بين ترددين مختلفين) في حين يتم إستعيان الترددات السريعة بطريقة سيئة (أي أنه مثلا تردد 50 بكسل في وحدة طول و 60 بكسل في وحدة طول كلها تمثل ب 50 بكسل في وحدة طول أي لا يمكن التفريق بينهما. مع الإشارة إلى أنه يجب فهم كلمة بكسل في وحدة طول على أنها تردد مكاني حيث لا يمكن إتخاذ الهرتز كوحدة هنا لأن التردد ليس زمني). و السبب في عمل هذا هو أن العين البشرية لا يمكنها التمييز بين الترددات المكانية السريعة فإن تأملت في خط طوله سنتمتر مثلا يتكون من 100 بكسل فإنك لن تلحظ فرقا بالنسبة لخط فيه 1000بكسل
مسح الصورة
يتم بعد ذلك مسح الصورة بطريقة تجعل البيانات في شكل شعاع بدلا من مصفوفة و يتم المسح كما هو مبين في الصورة. ملف:600px-JPEG ZigZag.jpg
تشفير بطريقة RLC
يتم في هذه الخطوة تشفير الشعاع الذي تحصلنا عليه أعلاه (و هو في العادة يحتوي الكثير من الأصفار) بطريقة RLC و هي إختصار ل Run Length Coding. حيث أنه إذا كان لدينا الشعاع التالي:
12 0 0 0 36
فإنها تكتب:
و يعني الرقم الأول أنه يجب أن نتخطى 3 بتات (أي لا يتم حفظها) و أن الرقم القادم يكون -12
تشفير بطريقة VLC
VLC إختصار ل variabel Lengthe Coding أو ما يعرف بتشفير هوفمان Huffman-Coding. حيث يتم حفظ كل عدد يظهر بالشعاع بطريقة أمثل من ناحية حجم البيانات. حيث أن الأرقام التي تظهر بكثرة في الشعاع يتم تشفيرها بعدد صغير من البتات مثلا إذا كان الرقم 2 يظهر بكثرة في الشعاع فإنه يرمز له ب 0 عوض التشفير الثنائي العادي الذي يحتاج إلى بتان لحفض الرقم 2 لأنه يحفظها 10. أما الأرقام التي تظهر بقلة فإنه يتم تشفيرها بعدد كبير من البتات. يتم التشفير بطريقة حيث أنه لا يمكن أن يتشابه رقمان في بدايتهما يعني أنه لو كان أول بت تحصل عليه من الشعاع هو 0 فلا داعي لإنتظار ما سيأتي بعده من بتات لمعرفة معنى هذا البت و يمكن القول مباشرة أن 0 هي التشفير المقابل لرقم 5 مثلا. و تمثل الخطوتان الأخيرتان ما يعرف ب تشفير إنتروبي و هي طريقة تشفير لا تضيع معها معلومات.