Binary Ordered Compression for Unicode
یونیکوڈ کے لیے بائنری آرڈرڈ کمپریشن (بی او سی یو) ایک ایم آئی ایم ای ہم آہنگ یونیکوڈ کمپریشن اسکیم ہے۔ بی او سی یو-1 یونیکوڈ (ایس سی ایس یو) کے لیے معیاری کمپریشن اسکیم کے کمپیکٹنس کے ساتھ یو ٹی ایف-8 کے وسیع اطلاق کو یکجا کرتا ہے۔ یہ یونیکوڈ انکوڈنگ مختصر تاروں کو کمپریس کرنے کے لیے مفید ہونے کے لیے ڈیزائن کی گئی ہے، اور کوڈ پوائنٹ آرڈر کو برقرار رکھتی ہے۔ بی او سی یو-1 کی وضاحت یونیکوڈ ٹیکنیکل نوٹ میں کی گئی ہے۔ موازنہ کے لیے ایس سی ایس یو کو معیاری یونیکوڈ کمپریشن اسکیم کے طور پر اپنایا گیا تھا جس میں بائٹ/کوڈ پوائنٹ تناسب زبان کے مخصوص کوڈ صفحات سے ملتا جلتا تھا۔ ایس سی ایس یو کو بڑے پیمانے پر اپنایا نہیں گیا ہے، کیونکہ یہ ایم آئی ایم ای "ٹیکسٹ" میڈیا اقسام کے لیے موزوں نہیں ہے۔ مثال کے طور پر، ایس سی ایس یو کو براہ راست ای میلز اور اسی طرح کے پروٹوکول میں استعمال نہیں کیا جا سکتا۔ ایس سی ایس یو کو اچھی کارکردگی کے لیے ایک پیچیدہ انکوڈر ڈیزائن کی ضرورت ہوتی ہے۔ عام طور پر زپ، بی زپ 2، اور دیگر صنعت کے معیاری الگورتھم یونیکوڈ متن کی بڑی مقدار کو زیادہ مؤثر طریقے سے مرتب کرتے ہیں۔ ایس سی ایس یو اور بی او سی یو-1 دونوں آئی اے این اے رجسٹرڈ چارسیٹ ہیں۔ تفصیلات اس حصے میں موجود تمام اعداد ہیکساڈیسیمل ہیں، اور تمام حدود شامل ہیں۔ U + 0000 سے U + 0020 تک کے کوڈ پوائنٹس کو متعلقہ بائٹ ویلیو کے طور پر BOCU-1 میں انکوڈ کیا جاتا ہے۔ دیگر تمام کوڈ پوائنٹس (یعنی U + D7FF کے ذریعے U + 0021 اور U + 10FFF کے ذریعے U + E000) کو کوڈ پوائنٹ اور حالیہ انکوڈ شدہ کوڈ پوائنٹ کے نارملائزڈ ورژن کے درمیان فرق کے طور پر انکوڈ کیا جاتا ہے جو کہ ASCII اسپیس (U + 0020) نہیں تھا۔ ابتدائی حالت U + 0040 ہے۔ نارملائزیشن میپنگ مندرجہ ذیل ہے: موجودہ کوڈ پوائنٹ اور نارملائزڈ پچھلے کوڈ پوائنٹ کے درمیان فرق مندرجہ ذیل طور پر انکوڈ کیا گیا ہے: ہر بائٹ رینج کو درج ذیل تیرہ بائٹ ویلیوز کے ساتھ ترتیب دیا گیا ہے: 00 07 08 09 0A 0B 0C 0D 0E 0F 1A 1B 20۔ مثال کے طور پر، بائٹ ترتیب ایف سی 06 ایف ایف، 1156 بی کے فرق کے لیے کوڈنگ، کے فورا بعد بائٹ ترتیب ایف سی 10 01، 1156 سی کے فرق کے لیے کوڈنگ ہوتی ہے۔ جگہ U + 0020 کو چھوڑ کر کوئی بھی ASCII ان پٹ U + 0000 سے U +07F انکوڈر کو U + 0040 پر ری سیٹ کرتا ہے۔ چونکہ مذکورہ بالا اقدار لائن اینڈ کوڈ پوائنٹس U + 000D اور U + 000A کا احاطہ کرتی ہیں جیسا کہ (0D 0A) ہے، انکوڈر ہر لائن کے آغاز میں ایک معروف حالت میں ہوتا ہے۔ اس لیے ایک واحد بائٹ کی بدعنوانی زیادہ سے زیادہ ایک لائن کو متاثر کرتی ہے۔ موازنہ کے لیے، یو ٹی ایف-8 میں ایک بائٹ کی بدعنوانی زیادہ سے زیادہ ایک کوڈ پوائنٹ کو متاثر کرتی ہے، ایس سی ایس یو کے لیے یہ پوری دستاویز کو متاثر کر سکتی ہے۔ بی او سی یو-1 خصوصی ری سیٹ کوڈ 0x ایف ایف کے ساتھ مذکورہ بالا اقدار کے بغیر ان پٹ ٹیکسٹ کے لیے بھی اسی طرح کی مضبوطی پیش کرتا ہے۔ جب ایک ڈیکوڈر کو یہ آکٹٹ ملتا ہے تو وہ لائن اینڈ کے لیے اپنی حالت کو U + 0040 پر ری سیٹ کرتا ہے۔ بی او سی یو-1 تفصیلات میں 0x ایف ایف ری سیٹ بائٹس کے استعمال کی سفارش نہیں کی جاتی ہے، کیونکہ یہ دوسرے بی او سی یو-1 ڈیزائن کے اہداف، خاص طور پر بائنری آرڈر سے متصادم ہے۔ BOCU-1 انکوڈ شدہ متن کے آغاز میں دستخط U + FEFF کا اختیاری استعمال، یعنی۔ BOCU-1 بائٹ سیکوینس FB EE 28، ابتدائی حالت U + 0040 کو U + FEC0 میں تبدیل کرتا ہے۔ دوسرے لفظوں میں، دستخط کو آسانی سے نہیں نکالا جا سکتا جیسا کہ زیادہ تر دیگر یونیکوڈ انکوڈنگ اسکیموں میں ہوتا ہے۔ دستخط کے بعد ری سیٹ بائٹ شامل کرنا (FB EE 28 FF) اس اثر سے بچ سکتا ہے، لیکن BOCU-1 تفصیلات اس عمل کی سفارش نہیں کرتی ہیں۔ نظریہ طور پر یو ٹی ایف-1 اور یو ٹی ایف-8 اصل یو سی ایس-4 سیٹ کو 31 بٹس کے ساتھ 7 ایف ایف ایف ایف ایف ایف تک انکوڈ کر سکتے ہیں۔ بی او سی یو-1 اور یو ٹی ایف-16 جدید یونیکوڈ سیٹ کو یو + 0000 سے یو + 10 ایف ایف ایف تک انکوڈ کر سکتے ہیں۔ سنگل آکٹٹس کے طور پر انکوڈ کیے گئے تیرہ محفوظ کوڈ پوائنٹس کو چھوڑ کر بی او سی یو-1 ملٹی بائٹ انکوڈنگ میں آکٹٹس کا استعمال کر سکتا ہے۔ بی او سی یو-1 کو زیادہ سے زیادہ چار بائٹس کی ضرورت ہوتی ہے جو لیڈ بائٹ اور ایک سے تین ٹریل بائٹس پر مشتمل ہوتے ہیں۔ ٹریل بائٹس بقیہ "ماڈیولو 243" (بیس 243) فرق کو انکوڈ کرتے ہیں، لیڈ بائٹ ٹریل بائٹس کی تعداد اور ابتدائی فرق کا تعین کرتا ہے۔ نوٹ کریں کہ ری سیٹ بائٹ 0xFF محفوظ نہیں ہے اور ٹریل بائٹ کے طور پر ہو سکتا ہے۔ پیٹنٹ 16 نومبر 2022 سے پہلے، جنرل بی او سی یو الگورتھم کا احاطہ یونائیٹڈ اسٹیٹس پیٹنٹ #6,737,994 نے کیا تھا، جس میں مخصوص بی او سی یو-1 کے نفاذ کا بھی ذکر ہے۔ یہ پیٹنٹ اب ختم ہو چکا ہے۔ آئی بی ایم، جس نے اس کی تخلیق کے وقت بی او سی یو-1 کے دونوں موجد کو ملازمت دی تھی، نے یونیکوڈ ٹیکنیکل نوٹ میں کہا کہ "بی او سی یو-1 کے مکمل تعمیل ورژن" کے نفاذ کاروں کو رائلٹی فری لائسنس کی درخواست کے لیے آئی بی ایم سے رابطہ کرنا پڑا۔ بی او سی یو-1 واحد یونیکوڈ کمپریشن اسکیم ہے جو یونیکوڈ ویب سائٹ پر بیان کی گئی ہے جو دانشورانہ املاک کی پابندیوں سے دوچار ہے۔ اس کے برعکس، آئی بی ایم نے یو ٹی ایف-ای بی سی ڈی آئی سی پر پیٹنٹ کے لیے بھی درخواست دائر کی، لیکن اس نے اس معاملے میں دستاویزات اور انکوڈنگ اسکیم کو "یو سی ایس معیارات کے حصے کے طور پر تبدیلی کی شکل بنانے کے لیے متعلقہ کسی بھی شخص کے لیے آزادانہ طور پر دستیاب کرنے" کا انتخاب کیا، بجائے اس کے کہ عمل درآمد کرنے والوں کو لائسنس کی درخواست کرنے کی ضرورت ہو۔ حوالہ جات یہ بھی دیکھیں کہ یو ٹی ایف-1 میں یونیکوڈ اے لائبریری کے لیے یو ٹی ایف-1، یو ٹی ایف-8، اور بی او سی یو-1 ڈیزائن کے بین الاقوامی اجزاء کا موازنہ ہے جو بی او سی یو-1 اور دیگر یونیکوڈ انکوڈنگ ڈیٹا کمپریشن یونیکوڈ ٹرانسفارمیشن فارمیٹس کے درمیان تبدیل ہو سکتا ہے۔