जेबीआईजी2

From Vigyanwiki
Revision as of 12:56, 12 December 2023 by alpha>Arti Shah (Arti Shah moved page बीबीजे to जेबीआईजी2 without leaving a redirect)
JBIG2
Developed byJoint Bi-level Image Experts Group
Latest release
2
Contained byPortable Document Format, FAX
StandardITU T.88 & ISO/IEC 14492

JBIG2 द्विआधारी छवि |द्वि-स्तरीय छवियों के लिए एक छवि संपीड़न मानक है, जिसे संयुक्त द्वि-स्तरीय छवि विशेषज्ञ समूह द्वारा विकसित किया गया है। यह दोषरहित डेटा संपीड़न और हानिरहित डेटा संपीड़न संपीड़न दोनों के लिए उपयुक्त है। एक प्रेस विज्ञप्ति के अनुसार[1] समूह से, अपने दोषरहित मोड में JBIG2 आम तौर पर समूह 4 संपीड़न से 3-5 गुना छोटी और समूह द्वारा जारी पिछले द्वि-स्तरीय संपीड़न मानक जेबीआईजी से 2-4 गुना छोटी फ़ाइलें उत्पन्न करता है। JBIG2 को 2000 में अंतर्राष्ट्रीय मानक ITU T.88 के रूप में प्रकाशित किया गया था,[2] और 2001 में अंतर्राष्ट्रीय मानकीकरण संगठन/अंतर्राष्ट्रीय इंटरनेशनल इलेक्ट्रोटेक्नीकल कमीशन के रूप में।[3]


कार्यक्षमता

आदर्श रूप से, एक JBIG2 एनकोडर इनपुट पेज को टेक्स्ट के क्षेत्रों, आंशिक रंग छवियों के क्षेत्रों और अन्य डेटा के क्षेत्रों में विभाजित करेगा। वे क्षेत्र जो न तो पाठ हैं और न ही हाफ़टोन हैं, आमतौर पर एमक्यू कोडर नामक संदर्भ-निर्भर अंकगणितीय कोडिंग एल्गोरिदम का उपयोग करके संपीड़ित होते हैं। पाठ्य क्षेत्रों को निम्नानुसार संपीड़ित किया जाता है: क्षेत्रों में अग्रभूमि पिक्सेल को प्रतीकों में समूहीकृत किया जाता है। प्रतीकों का एक शब्दकोश तब बनाया और एन्कोड किया जाता है, आमतौर पर संदर्भ-निर्भर अंकगणितीय कोडिंग का भी उपयोग किया जाता है, और क्षेत्रों को यह बताकर एन्कोड किया जाता है कि कौन से प्रतीक कहां दिखाई देते हैं। आमतौर पर, एक प्रतीक पाठ के एक चरित्र के अनुरूप होगा, लेकिन संपीड़न विधि के लिए इसकी आवश्यकता नहीं है। हानिपूर्ण संपीड़न के लिए समान प्रतीकों (उदाहरण के लिए, एक ही अक्षर के थोड़े भिन्न प्रभाव) के बीच अंतर को नजरअंदाज किया जा सकता है; दोषरहित संपीड़न के लिए, एक टेम्पलेट के रूप में दूसरे का उपयोग करके एक समान प्रतीक को संपीड़ित करके इस अंतर को ध्यान में रखा जाता है। हाफ़टोन छवियों को हाफ़टोन उत्पन्न करने के लिए उपयोग की जाने वाली ग्रेस्केल छवि का पुनर्निर्माण करके और फिर इस छवि को हाफ़टोन पैटर्न के शब्दकोश के साथ भेजकर संपीड़ित किया जा सकता है।[4] कुल मिलाकर, पाठ को संपीड़ित करने के लिए JBIG2 द्वारा उपयोग किया जाने वाला एल्गोरिदम बाइनरी छवियों को कोड करने के लिए DjVu फ़ाइल प्रारूप में उपयोग की जाने वाली JB2 संपीड़न योजना के समान है।

पोर्टेबल दस्तावेज़ प्रारूप फ़ाइल संस्करण 1.4 और उससे ऊपर में JBIG2-संपीड़ित डेटा हो सकता है। खुला स्रोत सॉफ्टवेयर|JBIG2 के लिए ओपन-सोर्स डिकोडर jbig2dec हैं[5] (मैं जीएनयू जनरल पब्लिक लाइसेंस लाता हूं), जावा-आधारित jbig2-imageio[6] (अपाचे लाइसेंस|अपाचे-2), जावास्क्रिप्ट-आधारित jbig2.js[7] (अपाचे लाइसेंस|अपाचे-2), और ग्लिफ़ एंड कॉग एलएलसी द्वारा डिकोडर एक्सपीडीएफ और पॉपलर (सॉफ्टवेयर) में पाया गया[8] (दोनों जीपीएल)। एक ओपन-सोर्स एनकोडर jbig2enc है[9] (अपाचे लाइसेंस|अपाचे-2)।

तकनीकी विवरण

आमतौर पर, एक द्वि-स्तरीय छवि में मुख्य रूप से बड़ी मात्रा में पाठ्य और हाफ़टोन डेटा होता है, जिसमें समान आकृतियाँ बार-बार दिखाई देती हैं। द्वि-स्तरीय छवि को तीन क्षेत्रों में विभाजित किया गया है: पाठ, हाफ़टोन और सामान्य क्षेत्र। प्रत्येक क्षेत्र को अलग-अलग कोडित किया गया है और कोडिंग पद्धतियों का वर्णन निम्नलिखित अनुच्छेद में किया गया है।

पाठ छवि डेटा

टेक्स्ट कोडिंग मानव दृश्य व्याख्या की प्रकृति पर आधारित है। एक मानव पर्यवेक्षक द्वि-स्तरीय छवि में समान वर्णों के दो उदाहरणों के बीच अंतर नहीं बता सकता है, भले ही वे पिक्सेल दर पिक्सेल बिल्कुल मेल न खाते हों। इसलिए, एक ही चरित्र की प्रत्येक घटना के बिटमैप को अलग-अलग कोड करने के बजाय केवल एक प्रतिनिधि चरित्र उदाहरण के बिटमैप को कोड करने की आवश्यकता होती है। प्रत्येक वर्ण उदाहरण के लिए, वर्ण का कोडित उदाहरण फिर एक प्रतीक शब्दकोश में संग्रहीत किया जाता है।[10] टेक्स्ट छवि डेटा के लिए दो एन्कोडिंग विधियाँ हैं: पैटर्न मिलान और प्रतिस्थापन (पीएम एंड एस) और सॉफ्ट पैटर्न मिलान (एसपीएम)।[11]

(बाएं) पैटर्न मिलान और प्रतिस्थापन विधि और (दाएं) सॉफ्ट पैटर्न मिलान विधि के ब्लॉक आरेख

पैटर्न मिलान और प्रतिस्थापन (पीएम एंड एस) अधिक क्लासिक कोडिंग विधि है। एनकोडर चरित्र-आकार के हिस्सों को अलग करने के लिए छवि विभाजन करता है। प्रत्येक व्यक्तिगत हिस्से के लिए, एनकोडर बिटमैप शब्दकोश में एक मिलान की तलाश करता है। यदि कोई मिलान मौजूद है, तो हम शब्दकोश में संबंधित प्रतिनिधि बिटमैप की एक अनुक्रमणिका और पृष्ठ पर चरित्र की स्थिति को कोड करते हैं। स्थिति आमतौर पर पहले से कोडित किसी अन्य वर्ण से संबंधित होती है। यदि कोई मिलान नहीं मिलता है, तो खंडित पिक्सेल ब्लॉक को सीधे कोडित किया जाता है और शब्दकोश में जोड़ा जाता है। पैटर्न मिलान और प्रतिस्थापन एल्गोरिदम की विशिष्ट प्रक्रियाएं उपरोक्त चित्र के बाएं ब्लॉक आरेख में प्रदर्शित की गई हैं। यद्यपि पीएम एंड एस की विधि उत्कृष्ट संपीड़न प्राप्त कर सकती है, यदि छवि रिज़ॉल्यूशन कम है तो प्रक्रिया के दौरान प्रतिस्थापन त्रुटियां हो सकती हैं।[11]

JBIG2 वैकल्पिक सॉफ्ट पैटर्न मिलान (SPM) के साथ PM&S में सुधार करता है। समान विभाजन और खोज की जाती है, लेकिन प्रत्येक पाए गए मिलान के लिए, एनकोडर न केवल संबंधित शब्दकोश प्रविष्टि को बचाता है, बल्कि वास्तविक खंड और शब्दकोश खंड के बीच अंतर का वर्णन करने वाला शोधन डेटा भी बचाता है। ऐसा करने से प्रतिस्थापन त्रुटियाँ बहुत कम हो जाती हैं।[10][lower-alpha 1] चूंकि शब्दकोश मिलान के लिए आवश्यक है कि वास्तविक वर्ण और शब्दकोश वर्ण अत्यधिक समान हों, एसपीएम केवल थोड़ी मात्रा में डेटा जोड़ता है।[11]


हाफ़टोन

हाफ़टोन छवियों को दो विधियों का उपयोग करके संपीड़ित किया जा सकता है। तरीकों में से एक संदर्भ-आधारित अंकगणित कोडिंग एल्गोरिदम के समान है, जो आसन्न पिक्सल के बीच सहसंबंध प्राप्त करने के लिए टेम्पलेट पिक्सल को अनुकूल रूप से स्थित करता है। दूसरी विधि में, हाफ़टोन छवि पर डिसस्क्रीनिंग की जाती है ताकि छवि वापस ग्रेस्केल में परिवर्तित हो जाए। परिवर्तित ग्रेस्केल मानों को हाफ़टोन बिटमैप शब्दकोश में निहित निश्चित आकार के छोटे बिटमैप पैटर्न के सूचकांक के रूप में उपयोग किया जाता है। यह डिकोडर को एक-दूसरे के साथ अनुक्रमित शब्दकोश बिटमैप पैटर्न प्रस्तुत करके हाफ़टोन छवि को सफलतापूर्वक प्रस्तुत करने की अनुमति देता है।[10]


एन्ट्रॉपी कोडिंग

टेक्स्ट, हाफ़टोन और सामान्य क्षेत्रों सहित सभी तीन क्षेत्र प्रकार अंकगणित कोडिंग या हफ़मैन कोडिंग का उपयोग कर सकते हैं। JBIG2 विशेष रूप से MQ कोडर का उपयोग करता है, JPEG 2000 द्वारा नियोजित वही एन्ट्रापी एनकोडर।

पेटेंट

JBIG2 के पेटेंट का स्वामित्व IBM और मित्सुबिशी के पास है। अनुरोध के बाद निःशुल्क लाइसेंस उपलब्ध होना चाहिए। JBIG और JBIG2 पेटेंट समान नहीं हैं।[13][14][15]


स्कैन किए गए दस्तावेज़ों में वर्ण प्रतिस्थापन त्रुटियाँ

JBIG2 संपीड़न संभावित रूप से पीडीएफ में स्कैन किए गए दस्तावेज़ों में पाठ में वास्तविक वर्णों को बदल सकता है। यह कुछ अन्य एल्गोरिदम के विपरीत है, जो केवल धुंधलापन में बदल जाता है, जिससे संपीड़न कलाकृतियाँ स्पष्ट हो जाती हैं।[16] चूँकि JBIG2 समान दिखने वाले प्रतीकों का मिलान करके पैटर्न पहचान का उपयोग करता है, उदाहरण के लिए, संख्या 6 और 8 को प्रतिस्थापित किया जा सकता है, खासकर यदि अधिक आक्रामक (उच्च) संपीड़न विकल्प के रूप में उपयोग किया जाता है।[17] 2013 में, कई ज़ीरक्सा वर्कसेंटर फोटोकॉपियर और प्रिंटर मशीनों पर विभिन्न प्रतिस्थापन (6 को 8 से बदलने सहित) ज़ेरॉक्स#कैरेक्टर प्रतिस्थापन बग हुआ। स्कैन किए गए (लेकिन ऑप्टिकल कैरेक्टर मान्यता नहीं) दस्तावेज़ों पर मुद्रित नंबर संभावित रूप से बदल दिए गए थे। इसे निर्माण ब्लूप्रिंट और संख्याओं की कुछ तालिकाओं पर प्रदर्शित किया गया है; चिकित्सा नुस्खे जैसे दस्तावेजों में ऐसी प्रतिस्थापन त्रुटियों के संभावित प्रभाव का संक्षेप में उल्लेख किया गया था।[18][19][20] जर्मन कंप्यूटर वैज्ञानिक डेविड क्रिसेल और ज़ेरॉक्स इसकी जांच कर रहे थे।[21][22] ज़ेरॉक्स ने बाद में स्वीकार किया कि यह एक लंबे समय से चली आ रही सॉफ़्टवेयर खराबी थी, और यह सुझाव देने वाले उनके शुरुआती बयान कि केवल गैर-फ़ैक्टरी सेटिंग्स ही प्रतिस्थापन पेश कर सकती हैं, गलत थे। प्रभावित उपकरणों के अपडेट को वापस बुलाने या अनिवार्य करने का कोई प्रयास नहीं किया गया - जिसे एक दर्जन से अधिक उत्पाद परिवारों को प्रभावित करने के लिए स्वीकार किया गया था। हालाँकि, अगस्त 2013 में एक पैच (कंप्यूटिंग) उपलब्ध कराया गया था, जिसे स्थापित करने पर, पैटर्न मिलान स्वचालित रूप से अक्षम हो जाता था।[17]पहले स्कैन किए गए दस्तावेज़ों में संभावित रूप से त्रुटियां बनी रहती हैं जिससे उनकी सत्यता को प्रमाणित करना मुश्किल हो जाता है। त्रुटियों की संभावना के बारे में प्रचार के बाद कुछ देशों में अधिकारियों ने JBIG2 के उपयोग को रोकने के लिए बयान दिए।[23] जर्मनी में सूचना सुरक्षा के लिए संघीय कार्यालय ने एक तकनीकी दिशानिर्देश जारी किया है जिसमें कहा गया है कि प्रतिस्थापन स्कैनिंग के लिए JBIG2 एन्कोडिंग का उपयोग नहीं किया जाना चाहिए।[24] स्विट्जरलैंड में इलेक्ट्रॉनिक दस्तावेज़ों के स्थायी संग्रह के लिए समन्वय कार्यालय ने पीडीएफ दस्तावेज़ बनाते समय जेबीआईजी2 के उपयोग के खिलाफ सिफारिश की है।[25]


शोषण

JBIG2 के Xpdf कार्यान्वयन में एक भेद्यता, Apple के iOS फ़ोन ऑपरेटिंग सॉफ़्टवेयर में पुन: उपयोग किया गया, पेगासस (स्पाइवेयर) द्वारा JBIG2 स्ट्रीम के अंदर एक अनुकरणीय कंप्यूटर आर्किटेक्चर का निर्माण करके IPhone पर शून्य-क्लिक हमले को लागू करने के लिए उपयोग किया गया था। Apple ने सितंबर 2021 में iOS 14.8 में इस FORCEDENTRY भेद्यता को ठीक किया।[26]


संदर्भ

  1. If the refinement data is used without any threshold of difference, encoding would be completely lossless. This could be less efficient than just tagging the whole page as a "generic region" for direct arithmetic coding.[12]
  1. Press release from the Joint Bi-level Image experts Group Archived 2005-05-15 at the Wayback Machine.
  2. "ITU-T Recommendation T.88 – T.88 : Information technology - Coded representation of picture and audio information - Lossy/lossless coding of bi-level images". Retrieved 2011-02-19.
  3. "ISO/IEC 14492:2001 – Information technology – Lossy/lossless coding of bi-level images". Retrieved 2011-02-19.
  4. JBIG2-the ultimate bi-level image coding standard, by F. Ono, W. Rucklidge, R. Arps, and C. Constantinescu, in Proceedings, 2000 International Conference on Image Processing (Vancouver, BC, Canada), vol. 1, pp. 140–143.
  5. jbig2dec decoder home page.
  6. jbig2-imageio decoder plugin for Java's ImageIO.
  7. jbig2.js decoder for PDF.js.
  8. JBIG2Stream decoder by Glyph & Cog LLC.
  9. jbig2enc encoder project home.
  10. 10.0 10.1 10.2 F. Ono, W. Rucklidge, R. Arps, and C. Constantinescu, "JBIG2-the ultimate bi-level image coding standard", Image Processing, 2000. Proceedings. 2000 International Conference on , vol. 1, pp. 140–143 vol. 1, 2000.
  11. 11.0 11.1 11.2 P. Howard, F. Kossentini, B. Martins, S. Forchhammer, and W. Rucklidge, "The emerging JBIG2 standard", Circuits and Systems for Video Technology, IEEE Transactions on , vol. 8, no. 7, pp. 838–848, Nov 1998.
  12. Langley, Adam. "jbig2enc: Documentation". GitHub. We can choose to do this for each symbol on the page, so we don't have to refine when we are only a couple of pixel off. If we refine whenever we [sic] a wrong pixel, we have lossless encoding using symbols.
  13. What is the patent situation with JBIG?, archived from the original on 2012-02-23
  14. What is JBIG2?, archived from the original on 2012-04-14, retrieved 2012-04-07
  15. JBIG2 patents, archived from the original on 2017-09-29, retrieved 2012-04-07
  16. Zhou Wang, Hamid R. Sheikh and Alan C. Bovik (2002). "No-reference perceptual quality assessment of JPEG compressed images". Proceedings 2002 International Conference on Image Processing (PDF). Archived from the original (PDF) on 2013-11-02.
  17. 17.0 17.1 Xerox Corporation. Scanning and Compression White Paper, 2013
  18. "Xerox scanners/photocopiers randomly alter numbers in scanned documents". 2013-08-02. Retrieved 2013-08-04.
  19. "भ्रमित ज़ेरॉक्स कॉपियर दस्तावेज़ों को फिर से लिखते हैं, विशेषज्ञ ने पाया". BBC News. 2013-08-06. Retrieved 2013-08-06.
  20. "Xerox Scanners / Photocopiers Randomly Alter Numbers". The Font Feed. 5 August 2013. Archived from the original on 26 October 2017.
  21. "ज़ेरॉक्स नवीनतम मैंगलिंग परीक्षण निष्कर्षों की जांच कर रहा है". 2013-08-11. Retrieved 2013-08-11.
  22. Update on Scanning Issue: Software Patches To Come, Xerox (blog), 2013-08-11, archived from the original on 2013-11-04, retrieved 2013-08-11
  23. Kriesel, David. "Video and Slides of my Xerox Talk at 31C3". D. Kriesel Data Science, Machine Learning, BBQ, Photos, and Ants in a Terrarium. Retrieved 31 July 2016.
    Note: The video there is dubbed over in English; if you understand German, the original might be easier to follow: David Kriesel: Traue keinem Scan, den du nicht selbst gefälscht hast
  24. "BSI Technical Guidelines 03138: Replacement Scanning" (PDF). Retrieved 28 December 2021.
  25. "JBIG2 Compression". Retrieved 28 December 2021.
  26. Beer, Ian; Groß, Samuel (2021-12-15). "Project Zero: A deep dive into an NSO zero-click iMessage exploit: Remote Code Execution". Google Project Zero. Retrieved 2021-12-16.


बाहरी संबंध