جے پی ای جی۔ کمپریشن الگورتھم

ہیلو دوبارہ! مجھے یہ مضمون مئی 2019 میں لکھا ہوا پایا۔ یہ یہاں WAVE اور JPEG کے بارے میں مضامین کی ایک سیریز کا تسلسل ہے۔ پہلے. اس اشاعت میں تصویری انکوڈنگ الگورتھم اور بذات خود مجموعی طور پر فارمیٹ کے بارے میں معلومات شامل ہوں گی۔

تاریخ کی ایک چوٹکی۔

ویکیپیڈیا مضمون کا ایک چمچ:

JPEG (جوائنٹ فوٹوگرافک ایکسپرٹس گروپ) ایک مقبول راسٹر گرافکس فارمیٹس میں سے ایک ہے جو تصاویر اور اسی طرح کی تصاویر کو اسٹور کرنے کے لیے استعمال ہوتا ہے۔

یہ معیار 1991 میں جوائنٹ فوٹوگرافک ایکسپرٹس گروپ نے موثر امیج کمپریشن کے لیے تیار کیا تھا۔

تصاویر خام سے JPEG میں کیسے جاتی ہیں؟

کچھ لوگوں کا خیال ہے کہ جے پی ای جی امیجز ہف مین طریقہ استعمال کرتے ہوئے خام ڈیٹا کو کمپریس کیا جاتا ہے، لیکن یہ سچ نہیں ہے۔ کنٹرول کمپریشن سے پہلے، ڈیٹا بہت طویل سفر کرتا ہے۔

سب سے پہلے، رنگ ماڈل کو RGB سے YCbCr میں تبدیل کیا جاتا ہے۔ یہاں تک کہ اس کے لیے ایک خاص الگورتھم ہے - یہاں. Y کو چھوا نہیں ہے، کیونکہ یہ چمک کے لیے ذمہ دار ہے، اور اس کی تبدیلی نمایاں ہوگی۔

تصویر کے ساتھ کرنے کی پہلی چیز ہے "پتلا ہونا" (سبسمپلنگ) یہ سمجھنا آسان ہے: پکسلز کی 2x2 صف لی جاتی ہے، پھر Cb اور Cr لیا جاتا ہے - ان 4 پکسلز کے YCbCr اجزاء میں سے ہر ایک کی اوسط قدریں۔ تو، ہم نے 6 بائٹس جیتے۔, 4 Y, 4 Cb, 4 Cr کی بجائے ہمیں 4 Y ملے اور ان میں سے ہر ایک کے لیے ایک ہی Cb اور Cr (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6)۔ یہاں تک کہ 2x2 پیمانے پر، 2:1 کمپریشن تناسب کے ساتھ نقصان دہ کمپریشن ٹھوس لگتا ہے۔ یہ پوری تصویر پر لاگو ہوتا ہے۔ اور اس طرح - انہوں نے آدھا سائز گرا دیا۔ اور ہم اس تکنیک کو اپنے رنگ کے ادراک کی بدولت استعمال کر سکتے ہیں۔ ایک شخص آسانی سے چمک میں فرق محسوس کرے گا، لیکن رنگ میں نہیں، اگر اس کا اوسط پکسلز کے ایک چھوٹے سے بلاک پر کیا جائے۔ پتلا ہونا ایک لائن میں بھی کیا جا سکتا ہے، 4 پکسلز افقی اور عمودی طور پر۔ پہلا آپشن زیادہ کثرت سے استعمال ہوتا ہے۔ اگر تصویر کی کوالٹی اہم ہے، تو ڈیسیمیشن بالکل بھی نہیں کی جاتی ہے۔
پتلا ہونے کی ایک بصری مثال (ہابر نے مجھے GIF داخل کرنے کی اجازت نہیں دی) - https://i.ibb.co/Rg5Th9H/150953010617579181.gif

تیاری کا اہم حصہ

پری ای پی

اب آتا ہے سب سے مشکل اور ضروری حصہ۔ پوری تصویر کو 8x8 بلاکس میں تقسیم کیا گیا ہے (اگر ریزولوشن بلاک سائیڈ سے ملٹیپل نہیں ہے تو فلنگ استعمال کی جاتی ہے)۔

اب ہر بلاک پر لگائیں۔ DCT (Discrete Cosine Transform). اس حصے میں، ہر غیر ضروری چیز کو تصویر سے نکال دیا جاتا ہے۔ DCT کا استعمال کرتے ہوئے، آپ کو یہ سمجھنے کی ضرورت ہے کہ آیا دیا ہوا بلاک (8×8) تصویر کے کسی بھی نیرس حصے کو بیان کرتا ہے: آسمان، دیوار؛ یا اس میں پیچیدہ ڈھانچہ (بال، علامتیں وغیرہ) شامل ہیں۔ یہ منطقی ہے کہ ایک جیسے رنگ کے 64 پکسلز کو صرف 1 سے بیان کیا جا سکتا ہے، کیونکہ بلاک کا سائز پہلے ہی معلوم ہے۔ کمپریشن کے لیے بہت کچھ: 64 سے 1۔

DCT بلاک کو سپیکٹرم میں بدل دیتا ہے، اور جہاں ریڈنگز تیزی سے تبدیل ہوتی ہیں، گتانک مثبت ہو جاتا ہے، اور منتقلی جتنی تیز ہوگی، آؤٹ پٹ اتنا ہی زیادہ ہوگا۔ جہاں گتانک زیادہ ہے، تصویر رنگ اور چمک میں واضح تبدیلیاں دکھاتی ہے، جہاں یہ کم ہے - بلاک میں YCbCr اجزاء کی قدروں میں کمزور (ہموار) تبدیلیاں۔

کوانٹائزیشن

کمپریشن کی ترتیبات یہاں پہلے ہی لاگو ہیں۔ 8x8 میٹرکس میں سے ہر ایک کو ایک مخصوص نمبر سے تقسیم کیا جاتا ہے۔ اگر آپ تمام تر ترمیمات کے بعد تصویر کے معیار کو کم نہیں کریں گے، تو تقسیم کرنے والا ایک ہونا چاہیے۔ اگر اس تصویر کی یادداشت آپ کے لیے زیادہ اہم ہے، تو تقسیم کرنے والا 1 سے بڑا ہو گا، اور حصّہ گول ہو جائے گا۔ یہ پتہ چلتا ہے کہ گول کرنے کے بعد آپ اکثر صفر کے ساتھ ختم ہوجاتے ہیں۔

کوانٹائزیشن اس سے بھی زیادہ کمپریشن کا امکان پیدا کرنے کے لیے کی جاتی ہے۔ گراف y = sin(x) کو کوانٹائز کرنے کی مثال کے استعمال سے یہ کیسا لگتا ہے:

جے پی ای جی۔ کمپریشن الگورتھم

کمپریشن

سب سے پہلے ہم زگ زگ پیٹرن میں میٹرکس سے گزرتے ہیں:

جے پی ای جی۔ کمپریشن الگورتھم

ہمیں اعداد کے ساتھ ایک جہتی صف ملتی ہے۔ ہم دیکھتے ہیں کہ اس میں بہت سارے صفر ہیں، انہیں ہٹایا جا سکتا ہے۔ ایسا کرنے کے لیے، بہت سے زیرو کی ترتیب کے بجائے، ہم 1 صفر درج کرتے ہیں اور اس کے بعد ایک عدد جو ترتیب میں ان کی تعداد کو ظاہر کرتا ہے۔ اس طرح آپ پوری صف کے سائز کو 1/3 پر دوبارہ ترتیب دے سکتے ہیں۔ اور پھر ہم صرف Huffman طریقہ استعمال کرتے ہوئے اس صف کو کمپریس کرتے ہیں اور اسے فائل میں ہی لکھتے ہیں۔

جہاں استعمال ہوتا ہے

ہر جگہ PNG کی طرح، JPEG کا استعمال کیمروں، OSs (بطور کمپنی کے لوگو، ایپلیکیشن آئیکنز، تھمب نیلز) اور ان تمام ممکنہ علاقوں میں ہوتا ہے جہاں تصاویر کو مؤثر طریقے سے ذخیرہ کرنے کی ضرورت ہوتی ہے۔

آؤٹ پٹ

اس وقت، JPEG کے بارے میں علم اب صرف تعلیمی مقاصد کے لیے قابل قدر ہے، کیونکہ یہ پہلے سے ہی ہر جگہ بنایا گیا ہے اور لوگوں کے بڑے گروہوں کی طرف سے بہتر بنایا گیا ہے، لیکن سائنس کا گرینائٹ اب بھی مزیدار ہے۔

ذرائع

وکی پیڈیا پر YCbCr کے بارے میں مضمون
جے پی ای جی پر ویکیپیڈیا مضمون
پیکابو پوسٹ سے PrEP کے بارے میں تھوڑا سا
PrEP پر ویکیپیڈیا مضمون

ماخذ: www.habr.com

نیا تبصرہ شامل کریں