کیا آپ نے کبھی سوچا ہے کہ آپ کا فون یا کیمرا تصویر لیتا ہے اور چند لمحوں میں وہ محفوظ ہو جاتی ہے بطور JPEG، جو چھوٹی، تیز، اور پھر بھی صاف نظر آتی ہے؟ پس منظر میں ایک مؤثر عمل چل رہا ہوتا ہے، جو بہت بڑی امیج فائلوں کو ان کے اصل سائز کے ایک حصے تک کم کر دیتا ہے جبکہ بہترین معیار برقرار رہتا ہے۔ لیکن یہ دراصل کام کیسے کرتا ہے؟ آج ہم JPEG کمپریشنکی تفصیلات میں جا رہے ہیں، ہر مرحلے کو آسان الفاظ میں بیان کریں گے تاکہ آپ اس بظاہر جادوئی امیج کمپریشن عمل کو پوری طرح سمجھ سکیں۔
JPEG کیا ہے؟
JPEG (Joint Photographic Experts Group کا مخفف) سب سے عام امیج فارمیٹس میں سے ایک ہے۔ یہ ڈیجیٹل تصاویر محفوظ کرنے کے لیے عام طور پر استعمال ہونے والا فارمیٹ ہے۔ JPEG کی اصل خوبی اس کی امیج فائلوں کو کمپریس کرنے کی صلاحیت ہے، جس سے وہ معیار میں نمایاں فرق کے بغیر کافی حد تک چھوٹی ہو جاتی ہیں۔
مثال کے طور پر، ایک ہائی کوالٹی اَن کمپریسڈ تصویر 46MB جتنی بڑی ہو سکتی ہے۔ JPEG میں کمپریس کرنے کے بعد، وہی تصویر صرف 4.1MB تک سکڑ سکتی ہے! مگر یہ سب کرتے ہوئے تصویر کو تیز اور واضح کیسے رکھتی ہے؟
اس کا جواب موجود ہے compression process, کمپریشن پروسیس میں، جو ہماری آنکھوں کے کام کرنے کے طریقے سے فائدہ اٹھاتا ہے اور غیر ضروری ڈیٹا ہٹا دیتا ہے۔
JPEG کیا کرتا ہے؟
سادہ لفظوں میں، JPEG تصویر کا تجزیہ کر کے وہ عناصر ہٹا دیتا ہے جو ہماری آنکھیں آسانی سے نہیں دیکھ سکتیں۔ جب آپ کسی تصویر کو JPEG کے ذریعے کمپریس کرتے ہیں تو آپ یہ کنٹرول کر سکتے ہیں کہ کتنی کمپریشن لگانی ہے۔ "quality" سیٹنگ کو ایڈجسٹ کر کے آپ طے کر سکتے ہیں کہ آپ کتنا اسٹوریج بچانا چاہتے ہیں۔ جیسے جیسے کوالٹی 100% سے 0% تک کم ہوتی ہے، فائل کا سائز بھی اسی طرح کم ہوتا جاتا ہے۔
زیادہ کمپریشن کے ساتھ، تصویر کی ریزولوشن تو وہی رہتی ہے، لیکن کچھ خامیاں یا "artifacts" نظر آنا شروع ہو سکتی ہیں۔ یہ خامیاں چھوٹے مربعوں کی طرح دکھائی دیتی ہیں، لیکن عموماً تب تک واضح نہیں ہوتیں جب تک آپ زوم نہ کریں۔ JPEG کا مقصد ہے فائل کو جتنا ممکن ہو سکے چھوٹا بنانا، بغیر اس کے کہ تصویر انسانی آنکھ کو خراب لگے۔
JPEG کمپریشن کے مراحل
JPEG کمپریشن JPEG کمپریشن صرف ایک جادوئی چال نہیں، یہ کئی سمجھ دار مراحل کی ایک لڑی ہے جو تصویر کے سائز کو کم کرنے کے لیے بنائی گئی ہے۔ آئیے ان پانچ اہم مراحل کو دیکھتے ہیں جو JPEG کو اتنا مؤثر بناتے ہیں۔
مرحلہ 1: کلر اسپیس کنورژن
تصاویر پکسلز پر مشتمل ہوتی ہیں، اور ہر پکسل میں سرخ، سبز اور نیلا (RGB) جز موجود ہوتا ہے جو مل کر رنگ بناتے ہیں۔ JPEG سب سے پہلے ان RGB ویلیوز کو ایک مختلف کلر اسپیس میں تبدیل کرتا ہے:
- Luminance (روشنائی): یہ پکسل کی چمک یا روشنی کو ظاہر کرتی ہے اور مجموعی تصویر کے کنٹراسٹ کو متعین کرنے کے لیے اہم ہوتی ہے۔
- Chrominance (رنگ): رنگ کی معلومات کو ظاہر کرتی ہے، جس میں ہیو اور سیچوریشن دونوں شامل ہوتے ہیں۔
یہ کنورژن اس حقیقت سے فائدہ اٹھاتا ہے کہ انسانی آنکھ چمک (luminance) کے مقابلے میں رنگ (chrominance) کے لیے کم حساس ہے۔ چمک کو رنگ سے الگ کر کے JPEG اگلے مراحل میں ہدفی ڈیٹا میں کمی ممکن بناتا ہے جبکہ اہم بصری تفصیلات کو برقرار رکھتا ہے۔
اگرچہ اس مرحلے میں کوئی ڈیٹا ضائع نہیں ہوتا، لیکن یہ مؤثر کمپریشن کی بنیاد رکھتا ہے۔
مرحلہ 2: کرومیننس ڈاؤن سیمپلنگ / کرومہ سب سیمپلنگ
Chroma Subsampling ایک ایک ٹیکنیک ہے جو کلر اسپیس کنورژن کے بعد لاگو کی جاتی ہے۔ یاد ہے ہم نے کہا تھا کہ ہماری آنکھیں رنگوں (chrominance) کو روشنائی (luminance) کے مقابلے میں اتنا اچھا نہیں دیکھ پاتیں؟
JPEG اسی حقیقت سے فائدہ اٹھاتے ہوئے رنگ کا ڈیٹا کم کر دیتا ہے۔ یہ نیلے اور سرخ کرومیننس امیجز کو چار پکسلز کے بلاکس میں اوسط لے کر سکیڑتا ہے۔ اس سے رنگ کا ڈیٹا کافی حد تک کم ہو جاتا ہے جبکہ luminance (روشنائی) کو جوں کا توں رکھا جاتا ہے۔ اس مرحلے تک آتے آتے تصویر تقریباً آدھی کمپریس ہو چکی ہوتی ہے!
مرحلہ 3: ڈسکریٹ کوسائن ٹرانسفارم (DCT)
Discrete Cosine Transform (DCT) ایک ریاضیاتی تکنیک ہے جو امیج ڈیٹا کو اسپیشل ڈومین (جہاں تصویر پکسل گرڈ کی صورت میں ہوتی ہے) سے فریکوئنسی ڈومین میں تبدیل کرتی ہے۔ یہ عمل یہ شناخت کرنے میں مدد دیتا ہے کہ تصویر کے کون سے حصے میں اہم بصری معلومات ہیں اور کن حصوں کو خارج کر دیا جاتا ہے۔
DCT تصویر کو 8x8 بلاکس میں تقسیم کر کے ہر بلاک کو فریکوئنسی ویلیوز کے مجموعے میں تبدیل کرتا ہے۔ زیادہ فریکوئنسیز، جو پکسل ویلیوز میں تیز تبدیلیوں جیسے کناروں یا شور کی نمائندگی کرتی ہیں، اکثر انسانی آنکھ کو کم نظر آتی ہیں اور انہیں آسان بنایا یا ہٹایا جا سکتا ہے۔
مرحلہ 4: کوانٹائزیشن
DCT لاگو ہونے کے بعد حاصل ہونے والا فریکوئنسی ڈیٹا کوانٹائزیشنسے گزرتا ہے۔ اس مرحلے میں، فریکوئنسی ویلیوز کی رینج کو کوانٹائزیشن ٹیبل کہلانے والے کنسٹنٹس کے سیٹ سے تقسیم کر کے کم کیا جاتا ہے۔ اس عمل میں بنیادی طور پر فریکوئنسی ویلیوز کو گول کر کے آسان بنایا جاتا ہے۔
زیادہ فریکوئنسی ویلیوز کو زیادہ سختی سے کوانٹائز کیا جاتا ہے، یعنی وہ زیادہ درستگی کھو دیتی ہیں کیونکہ وہ مجموعی تصویر کے معیار کے لیے کم اہم ہوتی ہیں۔ یہ چوتھا مرحلہ تصویر کی نمائندگی کے لیے مطلوبہ ڈیٹا کی مقدار کم کر دیتا ہے، جس سے فائل چھوٹی ہو جاتی ہے۔ تاہم، بہت زیادہ کوانٹائزیشن سے نمایاں نقائص پیدا ہو سکتے ہیں، جیسے بلاکی شکل یا دھندلاہٹ، خاص طور پر زیادہ کمپریشن لیولز پر۔
مرحلہ 5: رن لینتھ اور ہفمین اینکوڈنگ
کوانٹائزیشن کے بعد بھی ڈیٹا مؤثر اسٹوریج کے لیے کافی کمپیکٹ نہیں ہوتا۔ یہاں رن لینتھ اینکوڈنگ (RLE) اور ہفمین اینکوڈنگ استعمال میں آتی ہیں۔
سب سے پہلے، RLE لمبی دہرائی جانے والی ترتیبوں (مثلاً زیروز) کو آسان بناتی ہے، ہر ویلیو کو الگ محفوظ کرنے کے بجائے صرف تکرار کی گنتی محفوظ کر کے۔ پھر ہفمین اینکوڈنگ لاگو ہوتی ہے، جو ایسی تکنیک ہے جو بار بار آنے والی ویلیوز کو چھوٹے بِٹ کوڈز سے بدل دیتی ہے، جس سے فائل مزید چھوٹی ہو جاتی ہے۔
These two اینکوڈنگ کی یہ دونوں طریقے مل کر فائل سائز کو بہت حد تک کم کر دیتے ہیں بغیر زیادہ تصویر کے معیار قربان کیے!
اضافی نوٹس
اگرچہ JPEG ایک بہت مؤثر فارمیٹ ہے، پھر بھی چند اہم باتیں ذہن میں رکھنا ضروری ہیں:
- کمپریشن لیول: JPEG صارف کو کمپریشن کی سطح منتخب کرنے کی اجازت دیتا ہے، لیکن زیادہ کمپریشن فائل سائز تو کم کر دیتی ہے مگر اس سے دھندلے کناروں یا پکسیلیشن جیسے نمایاں نقائص بھی پیدا ہو سکتے ہیں۔ یہ اس وجہ سے ہوتا ہے کہ کوانٹائزیشن ٹیبل کی ویلیوز بہت زیادہ ہو جاتی ہیں، جس سے مزید زیروز شامل ہوتے ہیں، فائل تو چھوٹی ہو جاتی ہے لیکن تصویر کے معیار کی قیمت پر۔
- ہائی فریکوئنسی ڈیٹا کا نقصان: کوانٹائزیشن ہائی فریکوئنسی ڈیٹا (مثلاً تیز کناروں جیسی تفصیلات) کی درستگی کم کر دیتی ہے، اسی لیے JPEG ہموار ٹیکچرز کے لیے بہتر ہے، لیکن تیز لکیروں اور ویکٹر گرافکس کے ساتھ مشکل پیش آ سکتی ہے۔
- ویکٹر گرافکس کے لیے موزوں نہیں: JPEG ویکٹر گرافکس کو کمپریس کرنے کے لیے بہترین انتخاب نہیں ہے، کیونکہ یہ اشکال یا لکیروں کے کناروں پر نمایاں نقائص پیدا کر سکتا ہے۔
ان حدود کے باوجود، JPEG اب بھی سب سے مقبول امیج فارمیٹ ہے، جزوی طور پر اس لیے کہ یہ پرانا، اچھی طرح سمجھا ہوا اور رائلٹی فری ہے۔ تاہم، نئے فارمیٹس جیسے WebP یا HEIF بغیر معیار کم کیے اور بھی بہتر کمپریشن ریٹس فراہم کرتے ہیں، جس کی وجہ سے وہ مخصوص حالات میں پُرکشش متبادل بن جاتے ہیں۔
خلاصہ
JPEG کمپریشن الگورتھم امیج ڈیٹا مینیجمنٹ میں ایک غیر معمولی کامیابی ہے۔ تصاویر کو چھوٹے بلاکس میں تقسیم کر کے، مختلف ریاضیاتی تبدیلیاں لاگو کر کے، اور رن لینتھ اور ہفمین اینکوڈنگ جیسی مؤثر اینکوڈنگ تکنیکیں استعمال کر کے، یہ ہمیں اعلیٰ معیار کی تصاویر کو بہت چھوٹے فائل سائز میں محفوظ کرنے کی اجازت دیتا ہے۔
اگرچہ JPEG میں کچھ حدود ہیں، خاص طور پر زیادہ کمپریشن لیولز یا ویکٹر گرافکس کے ساتھ، لیکن اس کا وسیع استعمال اور فوٹوگرافک تصاویر کے لیے اچھے نتائج فراہم کرنے کی صلاحیت اسے ایک دیرپا معیار بناتی ہے۔