Elias gamma coding
الیاس کوڈ یا الیاس گاما کوڈ ایک عالمگیر کوڈ انکوڈنگ مثبت عدد ہے جسے پیٹر الیاس نے تیار کیا ہے۔ یہ سب سے زیادہ عام طور پر انٹیجرز کوڈنگ کرتے وقت استعمال ہوتا ہے جن کے اوپری باؤنڈ کا تعین پہلے سے نہیں کیا جا سکتا ہے۔ ایک عدد کو کوڈ کرنے کے لیے انکوڈنگ x ≤ 1: فرض کریں کہ اس میں موجود 2 کی سب سے زیادہ طاقت ہو، تو 2N ≤ x <2N + 1۔ صفر بٹس لکھیں، پھر بائنری نمبر کی بائنری شکل شامل کریں۔ اسی عمل کو ظاہر کرنے کا ایک مساوی طریقہ: یونیری میں انکوڈ کریں ؛ یعنی صفر کے بعد ایک کے طور پر۔ کے بقیہ بائنری ہندسوں کو اس نمائندگی میں شامل کریں۔ کسی عدد کی نمائندگی کرنے کے لیے الیاس گاما (γ) بٹس کا استعمال کرتا ہے۔ کوڈ شروع ہوتا ہے (کوڈ کے لیے مضمر امکان کی تقسیم کو وضاحت کے لیے شامل کیا جاتا ہے): ڈیکوڈنگ الیاس گاما کوڈ والے عدد کو ڈی کوڈ کرنے کے لیے: اسٹریم سے 0s کو پڑھیں اور گن لیں جب تک کہ آپ پہلے 1 تک نہ پہنچ جائیں۔ صفر کی اس گنتی کو N کہیں۔ اس عدد کو مدنظر رکھتے ہوئے جو 2N کی قدر کے ساتھ عدد کے پہلے ہندسے تک پہنچ گیا تھا، عدد کے بقیہ N ہندسوں کو پڑھیں۔ گاما کوڈنگ کا استعمال ان ایپلی کیشنز میں کیا جاتا ہے جہاں سب سے بڑی انکوڈ شدہ قیمت وقت سے پہلے معلوم نہیں ہوتی ہے، یا ڈیٹا کو کمپریس کرنے کے لیے جس میں چھوٹی اقدار بڑی اقدار سے کہیں زیادہ کثرت سے ہوتی ہیں۔ گاما کوڈنگ الیاس ڈیلٹا کوڈ میں ایک بلڈنگ بلاک ہے۔ عمومی گاما کوڈنگ صفر یا منفی عدد کو کوڈ نہیں کرتی ہے۔ صفر کو سنبھالنے کا ایک طریقہ یہ ہے کہ کوڈنگ سے پہلے 1 کا اضافہ کیا جائے اور پھر ڈیکوڈنگ کے بعد 1 کو گھٹا دیا جائے۔ دوسرا طریقہ یہ ہے کہ ہر غیر صفر کوڈ کو 1 سے پہلے لگائیں اور پھر صفر کو ایک ہی 0 کے طور پر کوڈ کریں۔ تمام انٹیجرز کو کوڈ کرنے کا ایک طریقہ یہ ہے کہ کوڈنگ سے پہلے انٹیجرز (0، −1، 1، −2، 2، −3، 3،) سے (1، 2، 3، 4، 5، 6، 7،) کی نقشہ سازی کرتے ہوئے بیجیکشن ترتیب دیا جائے۔ سافٹ ویئر میں، یہ سب سے زیادہ آسانی سے غیر منفی ان پٹ کو عجیب آؤٹ پٹ پر، اور منفی ان پٹ کو یکساں آؤٹ پٹ پر نقشہ بنا کر کیا جاتا ہے، لہذا کم سے کم اہم بٹ الٹا سائن بٹ بن جاتا ہے: ایکسپونینشل-گولمب کوڈنگ گاما کوڈ کو "چپٹے" پاور لا ڈسٹری بیوشن کے ساتھ انٹیجرز میں عام کرتی ہے، جس طرح گولمب کوڈنگ یونری کوڈ کو عام کرتی ہے۔ اس میں نمبر کو مثبت تقسیم کار سے تقسیم کرنا، عام طور پر 2 کی طاقت، حصص سے زیادہ ایک کے لیے گاما کوڈ لکھنا، اور بقیہ کو عام بائنری کوڈ میں لکھنا شامل ہے۔ الیاس ڈیلٹا (δ) کوڈنگ الیاس اومیگا (ω) کوڈنگ پوزیٹ (نمبر فارمیٹ) حوالہ جات مزید پڑھنا اینٹروپی کوڈنگ عددی نظام مضامین مثال سی کوڈ کے ساتھ