فائل کمپریشن کیسے کام کرتا ہے؟



سافٹ ویئر انجینئرز نے ہمیشہ ایک چھوٹی جگہ میں بہت سارے ڈیٹا کو فٹ کرنے کے نئے طریقے تیار کیے ہیں۔ یہ سچ تھا جب ہماری ہارڈ ڈرائیوز چھوٹی تھیں، اور انٹرنیٹ کی آمد نے اسے مزید نازک بنا دیا ہے۔ فائل کمپریشن ہمیں جوڑنے میں ایک بڑا حصہ ادا کرتا ہے، ہمیں کم ڈیٹا بھیجنے دیتا ہے تاکہ ہم تیزی سے ڈاؤن لوڈ کر سکیں اور مصروف نیٹ ورکس پر مزید کنکشن فٹ کر سکیں۔

تو یہ کیسے کام کرتا ہے؟

اس سوال کا جواب دینے کے لیے کچھ انتہائی پیچیدہ ریاضی کی وضاحت کرنا شامل ہے، یقیناً اس سے زیادہ جس کا ہم اس مضمون میں احاطہ کر سکتے ہیں، لیکن آپ کو یہ سمجھنے کی ضرورت نہیں ہے کہ بنیادی باتوں کو سمجھنے کے لیے یہ ریاضی کے لحاظ سے کیسے کام کرتا ہے۔





متن کو کمپریس کرنے کے لیے سب سے مشہور لائبریریاں دو کمپریشن الگورتھم پر انحصار کرتی ہیں، دونوں کو ایک ہی وقت میں استعمال کرتے ہوئے بہت زیادہ کمپریشن ریشو حاصل کرتے ہیں۔ یہ دو الگورتھم LZ77 اور Huffman کوڈنگ ہیں۔ ہف مین کوڈنگ کافی پیچیدہ ہے، اور ہم یہاں اس کی تفصیل میں نہیں جائیں گے۔ بنیادی طور پر، یہ مختصر تفویض کرنے کے لیے کچھ فینسی ریاضی کا استعمال کرتا ہے۔ بائنری کوڈز انفرادی حروف میں، عمل میں فائل کے سائز کو سکڑنا۔ اگر آپ اس کے بارے میں مزید جاننا چاہتے ہیں تو چیک آؤٹ کریں۔ اس مضمون کوڈ کیسے کام کرتا ہے، یا یہ Computerphile کی طرف سے وضاحت کنندہ .

دوسری طرف، LZ77 نسبتاً آسان ہے اور وہی ہے جس کے بارے میں ہم یہاں بات کریں گے۔ یہ ڈپلیکیٹ الفاظ کو ہٹانے اور ان کو ایک چھوٹی کلید سے تبدیل کرنے کی کوشش کرتا ہے جو لفظ کی نمائندگی کرتی ہے۔



مثال کے طور پر متن کا یہ مختصر حصہ لیں:

LZ77 الگورتھم اس متن کو دیکھے گا، سمجھے گا کہ یہ Howtogeek کو تین بار دہراتا ہے، اور اسے اس میں تبدیل کرتا ہے:



اشتہار

پھر، جب یہ متن کو واپس پڑھنا چاہتا ہے، تو یہ (h) کی ہر مثال کو Howtogeek سے بدل دے گا، جو ہمیں اصل فقرے پر واپس لے آئے گا۔

ہم اس طرح کے کمپریشن کو بے نقصان کہتے ہیں — جو ڈیٹا آپ ڈالتے ہیں وہی ڈیٹا آپ کے باہر نکلتا ہے۔ کچھ بھی ضائع نہیں ہوتا۔

حقیقت میں، LZ77 کلیدوں کی فہرست کا استعمال نہیں کرتا ہے، لیکن اس کے بجائے میموری میں ایک لنک کے ساتھ دوسرے اور تیسرے واقعہ کی جگہ لے لیتا ہے:

تو اب، جب یہ (h) پر آجائے گا، تو یہ Howtogeek پر واپس دیکھے گا اور اس کے بجائے اسے پڑھے گا۔

اگر آپ مزید تفصیلی وضاحت میں دلچسپی رکھتے ہیں، کمپیوٹر فائل سے یہ ویڈیو کافی مددگار ہے.

اب، یہ ایک مثالی مثال ہے۔ حقیقت میں، زیادہ تر متن کو صرف چند حروف کی طرح چھوٹی کلیدوں سے کمپریس کیا جاتا ہے۔ مثال کے طور پر، لفظ کو کمپریس کیا جائے گا یہاں تک کہ جب یہ وہاں، ان، اور پھر جیسے الفاظ میں ظاہر ہو۔ بار بار متن کے ساتھ، آپ کچھ پاگل کمپریشن تناسب حاصل کر سکتے ہیں. اس ٹیکسٹ فائل کو لفظ Howtogeek کے ساتھ 100 بار دہرائیں۔ اصل ٹیکسٹ فائل کا سائز تین کلو بائٹ ہے۔ جب کمپریس کیا جاتا ہے، اگرچہ، یہ صرف 158 بائٹس لیتا ہے۔ یہ تقریباً 95 فیصد کمپریشن ہے۔

اشتہار

اب ظاہر ہے، یہ ایک انتہائی انتہائی مثال ہے کیونکہ ہمارے پاس ابھی ایک ہی لفظ بار بار دہرایا گیا ہے۔ عام طور پر، آپ کو کمپریشن فارمیٹ کا استعمال کرتے ہوئے شاید 30-40% کمپریشن ملے گا جیسے کسی فائل پر زیادہ تر ٹیکسٹ۔

یہ LZ77 الگورتھم تمام بائنری ڈیٹا پر لاگو ہوتا ہے، ویسے، نہ کہ صرف ٹیکسٹ، حالانکہ عام طور پر متن کو دبانا آسان ہوتا ہے کیونکہ زیادہ تر زبانیں کتنے دہرائے جانے والے الفاظ استعمال کرتی ہیں۔ مثال کے طور پر، چینی جیسی زبان کو انگریزی کے مقابلے میں کمپریس کرنا تھوڑا مشکل ہو سکتا ہے۔

تصویر اور ویڈیو کمپریشن کیسے کام کرتا ہے؟

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

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

یہاں ایک مثال ہے۔ یہ ایک اسکرین شاٹ ہے جو میں نے لیا ہے جسے بالکل بھی کمپریس نہیں کیا گیا ہے۔

پھر میں نے وہ اسکرین شاٹ لیا اور اسے فوٹوشاپ کے ذریعے متعدد بار چلایا، ہر بار اسے کم معیار کے JPEG کے طور پر برآمد کیا۔ یہاں نتیجہ ہے.

بہت برا لگتا ہے، ٹھیک ہے؟

اشتہار

ٹھیک ہے، یہ صرف ایک بدترین صورت حال ہے، ہر بار 0% JPEG معیار پر برآمد ہوتا ہے۔ مقابلے کے لیے، یہاں ایک 50% کوالٹی کا JPEG ہے، جو PNG امیج سے تقریباً الگ نہیں کیا جا سکتا جب تک کہ آپ اسے اڑا کر قریب سے نہ دیکھیں۔

اس تصویر کا PNG سائز میں 200 KB تھا، لیکن یہ 50% کوالٹی JPEG صرف 28 KB ہے۔

تو یہ اتنی جگہ کیسے بچاتا ہے؟ ٹھیک ہے، JPEG الگورتھم انجینئرنگ کا ایک کارنامہ ہے۔ زیادہ تر تصاویر نمبروں کی ایک فہرست ذخیرہ کرتی ہیں، جس میں ہر نمبر ایک پکسل کی نمائندگی کرتا ہے۔

JPEG اس میں سے کچھ نہیں کرتا ہے۔ اس کے بجائے، یہ ایک نامی چیز کا استعمال کرتے ہوئے تصاویر کو اسٹور کرتا ہے۔ مجرد کوزائن ٹرانسفارم ، جو مختلف شدتوں پر ایک ساتھ جوڑی جانے والی سائن لہروں کا مجموعہ ہے۔ یہ 64 مختلف مساواتوں کا استعمال کرتا ہے، لیکن ان میں سے اکثر استعمال نہیں ہوتے ہیں۔ فوٹوشاپ اور دیگر امیج ایپس میں JPEG کے لیے کوالٹی سلائیڈر یہی کرتا ہے — منتخب کریں کہ کتنی مساواتیں استعمال کرنی ہیں۔ پھر ایپس فائل کے سائز کو مزید کم کرنے کے لیے Huffman انکوڈنگ کا استعمال کرتی ہیں۔

یہ JPEGs کو انتہائی زیادہ کمپریشن ریشو دیتا ہے، جو ایک فائل کو کم کر سکتا ہے جو ایک سے زیادہ میگا بائٹس سے کم ہو کر کوالٹی کے لحاظ سے چند کلو بائٹس تک ہو گی۔ یقینا، اگر آپ اسے بہت زیادہ استعمال کرتے ہیں، تو آپ اس کے ساتھ ختم ہو جائیں گے:

وہ تصویر خوفناک ہے۔ لیکن JPEG کمپریشن کی معمولی مقدار فائل کے سائز پر اہم اثر ڈال سکتی ہے، اور یہ JPEG ویب سائٹس پر امیج کمپریشن کے لیے بہت مفید بناتا ہے۔ زیادہ تر تصاویر جو آپ آن لائن دیکھتے ہیں ڈاؤن لوڈ کے اوقات کو بچانے کے لیے کمپریس کی جاتی ہیں، خاص طور پر کمزور ڈیٹا کنکشن والے موبائل صارفین کے لیے۔ درحقیقت، How-To Geek پر موجود تمام تصاویر کو صفحہ لوڈنگ کو تیز تر بنانے کے لیے کمپریس کر دیا گیا ہے، اور شاید آپ نے کبھی غور نہیں کیا۔

ویڈیو کمپریشن

ویڈیو تصویروں سے کچھ مختلف طریقے سے کام کرتی ہے۔ آپ کو لگتا ہے کہ وہ صرف JPEG کا استعمال کرتے ہوئے ویڈیو کے ہر فریم کو کمپریس کریں گے، اور وہ یقینی طور پر ایسا کرتے ہیں، لیکن ویڈیو کے لیے ایک بہتر طریقہ ہے۔

اشتہار

ہم انٹر فریم کمپریشن نامی کوئی چیز استعمال کرتے ہیں، جو ہر فریم کے درمیان تبدیلیوں کا حساب لگاتا ہے اور صرف ان کو اسٹور کرتا ہے۔ لہذا، مثال کے طور پر، اگر آپ کے پاس نسبتاً اب بھی شاٹ ہے جس میں ویڈیو میں کئی سیکنڈ لگتے ہیں، تو بہت سی جگہ بچ جاتی ہے کیونکہ کمپریشن الگورتھم کو اس منظر میں تمام چیزیں ذخیرہ کرنے کی ضرورت نہیں ہوتی جو تبدیل نہیں ہوتی ہیں۔ انٹر فریم کمپریشن بنیادی وجہ ہے کہ ہمارے پاس ڈیجیٹل ٹی وی اور ویب ویڈیو بالکل موجود ہے۔ اس کے بغیر، ویڈیوز سینکڑوں گیگا بائٹس کے ہوں گے، جو 2005 میں یوٹیوب کے شروع ہونے پر اوسط ہارڈ ڈرائیو سائز سے زیادہ تھے۔

اس کے علاوہ، چونکہ انٹر فریم کمپریشن زیادہ تر اسٹیشنری ویڈیو کے ساتھ بہترین کام کرتا ہے، اسی لیے کنفیٹی ویڈیو کے معیار کو برباد کر دیتی ہے۔ .

نوٹ: GIF ایسا نہیں کرتا، یہی وجہ ہے کہ اینیمیٹڈ GIFs اکثر بہت چھوٹے اور چھوٹے ہوتے ہیں، لیکن پھر بھی فائل کا سائز کافی بڑا ہوتا ہے۔

ویڈیو کے بارے میں ذہن میں رکھنے کی ایک اور چیز اس کا بٹ ریٹ ہے — ہر سیکنڈ میں ڈیٹا کی مقدار کی اجازت ہے۔ اگر آپ کا بٹ ریٹ 200 kb/s ہے، مثال کے طور پر، آپ کی ویڈیو کافی خراب نظر آئے گی۔ جیسے جیسے بٹریٹ بڑھتا ہے معیار بڑھتا جاتا ہے، لیکن چند میگا بائٹس فی سیکنڈ کے بعد، آپ کو کم سے کم منافع ملتا ہے۔

یہ ایک زوم فریم ہے جو جیلی فش کی ویڈیو سے لیا گیا ہے۔ بائیں طرف والا 3Mb/s پر ہے، اور دائیں طرف والا 100Mb/s ہے۔

اشتہار

فائل کے سائز میں 30 گنا اضافہ، لیکن معیار میں زیادہ اضافہ نہیں۔ عام طور پر، YouTube ویڈیوز آپ کے کنکشن کے لحاظ سے 2-10Mb/s کے ارد گرد بیٹھتے ہیں، کیونکہ اس سے زیادہ کچھ بھی نظر نہیں آتا۔

یہ ڈیمو اصل ویڈیو کے ساتھ بہتر کام کرتا ہے، لہذا اگر آپ اسے خود دیکھنا چاہتے ہیں، تو آپ اسے ڈاؤن لوڈ کر سکتے ہیں۔ بٹریٹ ٹیسٹ ویڈیوز یہاں استعمال کیا جاتا ہے.

آڈیو کمپریشن

آڈیو کمپریشن ٹیکسٹ اور امیج کمپریشن کی طرح کام کرتا ہے۔ جہاں JPEG کسی ایسی تصویر سے تفصیل ہٹاتا ہے جو آپ نہیں دیکھ پائیں گے، آڈیو کمپریشن آوازوں کے لیے بھی ایسا ہی کرتا ہے۔ اگر اصل گٹار بہت زیادہ، زیادہ اونچی ہے تو آپ کو سٹرنگ پر گٹار پک کی کریکنگ سننے کی ضرورت نہیں ہوگی۔

MP3 بٹریٹ بھی استعمال کرتا ہے، جس میں 48 اور 96 kbps (کم سرے) سے لے کر 128 اور 240kbps (بہت اچھا) سے لے کر 320kbps (ہائی اینڈ آڈیو) تک ہے، اور آپ کو صرف غیر معمولی طور پر اچھے ہیڈ فون کے ساتھ فرق سننے کا امکان ہے۔ اور کان)۔

آڈیو کے لیے لاز لیس کمپریشن کوڈیکس بھی ہیں — جس میں سب سے اہم FLAC ہے — جو مکمل طور پر لاز لیس آڈیو ڈیلیور کرنے کے لیے LZ77 انکوڈنگ کا استعمال کرتا ہے۔ کچھ لوگ FLAC کے کامل آڈیو معیار کی قسم کھاتے ہیں، لیکن MP3 کے پھیلاؤ کے ساتھ، ایسا لگتا ہے کہ زیادہ تر لوگ یا تو فرق نہیں بتا سکتے یا اس پر کوئی اعتراض نہیں کرتے۔

اگلا پڑھیں پروفائل تصویر برائے انتھونی ہیڈنگز انتھونی ہیڈنگز
Anthony Heddings LifeSavvy Media کے رہائشی کلاؤڈ انجینئر، ایک تکنیکی مصنف، پروگرامر، اور Amazon کے AWS پلیٹ فارم کے ماہر ہیں۔ اس نے How-To Geek اور CloudSavvy IT کے لیے سینکڑوں مضامین لکھے ہیں جنہیں لاکھوں بار پڑھا جا چکا ہے۔
مکمل بائیو پڑھیں

دلچسپ مضامین