QOI امیج کمپریشن فارمیٹ متعارف کرایا گیا۔

ایک نیا ہلکا پھلکا، لاغر امیج کمپریشن فارمیٹ متعارف کرایا گیا ہے - QOI (کافی ٹھیک امیج)، جو آپ کو آر جی بی اور آر جی بی اے کلر اسپیس میں تصاویر کو بہت تیزی سے کمپریس کرنے کی اجازت دیتا ہے۔ PNG فارمیٹ کے ساتھ کارکردگی کا موازنہ کرتے وقت، C زبان میں QOI فارمیٹ کا سنگل تھریڈڈ حوالہ نفاذ، جو SIMD ہدایات اور اسمبلی آپٹیمائزیشنز استعمال نہیں کرتا، libpng اور stb_image لائبریریوں کے مقابلے انکوڈنگ کی رفتار میں 20-50 گنا تیز ہے، اور 3۔ ضابطہ کشائی کی رفتار میں -4 گنا تیز۔ کمپریشن کی کارکردگی کے لحاظ سے، QOI زیادہ تر ٹیسٹوں میں libpng کے قریب ہے (کچھ ٹیسٹوں میں یہ تھوڑا آگے ہے، اور دوسروں میں یہ کمتر ہے)، لیکن عام طور پر یہ stb_image (20% تک کا فائدہ) سے نمایاں طور پر آگے ہے۔

C میں QOI کا حوالہ نفاذ صرف 300 لائنوں کا کوڈ ہے۔ سورس کوڈ MIT لائسنس کے تحت تقسیم کیا جاتا ہے۔ مزید برآں، شائقین نے Go، Zig اور Rust زبانوں میں انکوڈرز اور ڈیکوڈرز کے نفاذ کو تیار کیا ہے۔ یہ پروجیکٹ ڈومینک زیبلوسکی تیار کر رہا ہے، جو ایک گیم ڈویلپر ہے جو MPEG1 ویڈیو کو ڈی کوڈنگ کے لیے لائبریری بنانے کا تجربہ رکھتا ہے۔ QOI فارمیٹ کا استعمال کرتے ہوئے، مصنف یہ ظاہر کرنا چاہتا تھا کہ زیادہ پیچیدہ جدید تصویری انکوڈنگ فارمیٹس کا ایک مؤثر اور آسان متبادل بنانا ممکن ہے۔

QOI کارکردگی انکوڈ شدہ تصویر (O(n)) کی ریزولوشن اور نوعیت سے آزاد ہے۔ انکوڈنگ اور ڈی کوڈنگ ایک پاس میں کی جاتی ہے - ہر پکسل کو صرف ایک بار پروسیس کیا جاتا ہے اور اسے 4 طریقوں میں سے کسی ایک میں انکوڈ کیا جا سکتا ہے، جو پچھلے پکسلز کی قدروں کے لحاظ سے منتخب کیا جاتا ہے۔ اگر اگلا پکسل پچھلے والے کے ساتھ میل کھاتا ہے، تو تکرار کاؤنٹر صرف بڑھتا ہے۔ اگر پکسل 64 ماضی کے پکسل بفر میں سے کسی ایک قدر سے میل کھاتا ہے، تو قیمت کو ماضی کے پکسل میں 6 بٹ آفسیٹ سے بدل دیا جاتا ہے۔ اگر پچھلے پکسل کا رنگ تھوڑا سا مختلف ہے تو فرق کو مختصر شکل میں ظاہر کیا جاتا ہے (رنگ اجزاء میں فرق کی مختصر انکوڈنگ جو 2,4، 5 اور XNUMX بٹس میں فٹ ہوتے ہیں)۔ اگر آپٹمائزیشن لاگو نہیں ہوتی ہے، تو پوری rgba قدر فراہم کی جاتی ہے۔

ماخذ: opennet.ru

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