JBIG2 суретке тарту форматы: екі деңгейлі кескіндерді сығу стандарты. Fax Group 4-тен 3-5 есе, JBIG-ден 2-4 есе кіші файлдарды жасауға мүмкіндік береді.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Сурет файл форматы
Image file format
JBIG2 – екі деңгейлі суреттерге арналған сурет сығымдау стандарты, оны Біріккен екі деңгейлі сурет сарапшылар тобы әзірледі. Ол жоғалтусыз және жоғалтулы сығымдау үшін де қолайлы. Топтың баспасөз хабарламасына сәйкес, жоғалтусыз режимінде JBIG2 әдетте факс тобы 4 форматынан 3-5 есе кіші, ал JBIG форматынан 2-4 есе кіші файлдарды жасайды, бұл Топтың бұрынғы екі деңгейлі сығымдау стандарты. JBIG2 2000 жылы ITU T.88 халықаралық стандарты ретінде және 2001 жылы ISO/IEC 14492 ретінде жарияланды.
JBIG2 is an image compression standard for bi level images, developed by the Joint Bi level Image Experts Group. It is suitable for both lossless and lossy compression. According to a press release from the Group, in its lossless mode JBIG2 typically generates files 3–5 times smaller than Fax Group 4 and 2–4 times smaller than JBIG, the previous bi level compression standard released by the Group. JBIG2 was published in 2000 as the international standard ITU T.88, and in 2001 as ISO/IEC 14492.
Функционалдылығы
Идеалды жағдайда, JBIG2 кодегі кіріс бетін мәтін аймақтарына, жарты тонды кескіндер аймақтарына және басқа деректер аймақтарына бөледі. Мәтін де, жарты тон да емес аймақтар әдетте MQ кодері деп аталатын, контекстке тәуелді арифметикалық кодтау алгоритмін пайдаланып сығылады. Мәтіндік аймақтар келесідей сығылады: аймақтардағы көрінетін пиксельдер символдарға топтастырылады. Содан кейін символдар сөздігі құрылып, кодталады, әдетте контекстке тәуелді арифметикалық кодтау қолданылады, ал аймақтар қай символдардың қай жерде пайда болатынын сипаттау арқылы кодталады. Әдетте, символ мәтіннің бір таңбасына сәйкес келеді, бірақ бұл сығысу әдісімен міндетті емес. Жоғалтулы сығысуда ұқсас символдар арасындағы айырмашылықты (мысалы, бір әріптің сәл әр түрлі басылуын) елемеуге болады; жоғалтусыз сығысуда бұл айырмашылықты бір ұқсас символды екіншісін үлгі ретінде пайдаланып сығу арқылы ескеріледі. Жарты тонды кескіндерді жарты тонды жасау үшін қолданылған сұр түсті кескінді қайта құру және осы кескінді жарты тон үлгілерінің сөздігімен бірге жіберу арқылы сығылуы мүмкін. Жалпы, JBIG2 мәтінді сығыстыру үшін қолданатын алгоритм, DjVu файл форматында бинарлық кескіндерді кодтау үшін қолданылатын JB2 сығыстыру схемасына өте ұқсас. 1.4 және одан жоғары нұсқадағы PDF файлдары JBIG2 сығылған деректерді қамтуы мүмкін. JBIG2 үшін ашық кодты декодерлер: jbig2dec (AGPL), Java негізіндегі jbig2 imageio (Apache 2), JavaScript негізіндегі jbig2.js (Apache 2) және Glyph & Cog LLC компаниясының Xpdf және Poppler-де (екеуі де GPL) кездесетін декодері. Ашық кодты кодер – jbig2enc (Apache 2).
Ideally, a JBIG2 encoder will segment the input page into regions of text, regions of halftone images, and regions of other data. Regions that are neither text nor halftones are typically compressed using a context dependent arithmetic coding algorithm called the MQ coder. Textual regions are compressed as follows: the foreground pixels in the regions are grouped into symbols. A dictionary of symbols is then created and encoded, typically also using context dependent arithmetic coding, and the regions are encoded by describing which symbols appear where. Typically, a symbol will correspond to a character of text, but this is not required by the compression method. For lossy compression the difference between similar symbols (e. g., slightly different impressions of the same letter) can be neglected; for lossless compression, this difference is taken into account by compressing one similar symbol using another as a template. Halftone images may be compressed by reconstructing the grayscale image used to generate the halftone and then sending this image together with a dictionary of halftone patterns. Overall, the algorithm used by JBIG2 to compress text is very similar to the JB2 compression scheme used in the DjVu file format for coding binary images. PDF files versions 1.4 and above may contain JBIG2 compressed data. Open source decoders for JBIG2 are jbig2dec (AGPL), the java based jbig2 imageio (Apache 2), the JavaScript based jbig2. js (Apache 2), and the decoder by Glyph & Cog LLC found in Xpdf and Poppler (both GPL). An open source encoder is jbig2enc (Apache 2).
Техникалық мәліметтер
Әдетте, екі деңгейлі кескін негізінен көп көлемде мәтіндік және жарты тонды деректерден тұрады, онда бірдей пішіндер жиі қайталанады. Екі деңгейлі кескін үш аймаққа бөлінеді: мәтін, жарты тон және жалпы аймақтар. Әр аймақ әртүрлі кодталады және кодтау әдістемелері төменде сипатталған.
Typically, a bi level image consists mainly of a large amount of textual and halftone data, in which the same shapes appear repeatedly. The bi level image is segmented into three regions: text, halftone, and generic regions. Each region is coded differently and the coding methodologies are described in the following passage.
Мәтіндік бейне деректері
Мәтіндік кодтау адамның визуалды түсіну қабілетіне негізделген. Адам көзі екі деңгейлі кескіндегі бірдей әріптердің екі данасы арасындағы айырмашылықты байқамайды, тіпті олар пикселдер бойынша дәлме-дәл сәйкес келмесе де. Сондықтан, әрбір әріптің жеке-жеке бит картасын кодтаудың орнына, тек бір өкілдік данасының бит картасын кодтау жеткілікті. Әрбір әріп данасы үшін, кодталған данасы "символдар сөздігіне" сақталады. Мәтіндік бейне деректерін кодтаудың екі әдісі бар: үлгіні сәйкестендіру және алмастыру (PM&S) және жұмсақ үлгіні сәйкестендіру (SPM). Үлгіні сәйкестендіру және алмастыру (PM&S) – классикалық кодтау әдісі. Кодтаушы суретті сегменттеу арқылы әріп өлшемді кескіндерді бөліп алады. Әрбір кескіндік бөлік үшін, бит карта сөздігінде сәйкестік ізделеді. Егер сәйкестік табылса, сөздіктегі сәйкес бит картасының индексі және парақтағы әріптің орны кодталады. Орын әдетте бұрын кодталған басқа әріпке қатысты болады. Егер сәйкестік табылмайтын болса, сегменттелген пиксель блогы тікелей кодталып, сөздікке қосылады. Үлгіні сәйкестендіру және алмастыру алгоритмінің стандартты процедуралары жоғарыдағы суреттің сол жақ блок-схемасында көрсетілген. PM&S әдісі өте жақсы қысылуға қол жеткізе алады, бірақ егер суреттің ажыратымдылығы төмен болса, алмастыру қателіктері болуы мүмкін. SPM сөздіктегі әріптердің өте ұқсас болуын қажет ететіндіктен, тек аз ғана деректерді қосады.
Text coding is based on the nature of human visual interpretation. A human observer cannot tell the difference between two instances of the same characters in a bi level image even though they may not exactly match pixel by pixel. Therefore, only the bitmap of one representative character instance needs to be coded instead of coding the bitmaps of each occurrence of the same character individually. For each character instance, the coded instance of the character is then stored into a "symbol dictionary". There are two encoding methods for text image data: pattern matching and substitution (PM&S) and soft pattern matching (SPM). Pattern matching and substitution (PM&S) is the more classic coding method. The encoder performs image segmentation to isolate character sized chunks. For each individual chunk, the encoder looks for a match in the bitmap dictionary. If a match exists, we code an index of the corresponding representative bitmap in the dictionary and the position of the character on the page. The position is usually relative to another previously coded character. If a match is not found, the segmented pixel block is coded directly and added into the dictionary. Typical procedures of pattern matching and substitution algorithm are displayed in the left block diagram of the figure above. Although the method of PM&S can achieve outstanding compression, substitution errors could be made during the process if the image resolution is low. Since the dictionary match requires that the actual character and the dictionary character are highly similar, SPM only adds a tiny amount of data.
JBIG2 кейбір нұсқалары жоғалтулы сығымдауды қолдану арқылы PDF форматына сканерленген құжаттардағы әріптерді өзгертуге мүмкіндік береді. Басқа алгоритмдерден айырмашылығы, оларда сығымдау артефакттары, мысалы, бұлыңғырлық немесе «шірек» шуы сияқты көрінеді, JBIG2-нің «үлгіні тану» функциясы ұқсас көрінетін символдарды салыстырады. Егер салыстыру нашар орындалса, әсіресе төмен ажыратымдылықтағы сканерлерде, онда әріптер жақсырақ көрінбейтін жағдайда, ұқсас әріптер қателікпен алмастырылуы мүмкін. Бірақ, осы мәселені анықтаған компьютер ғалымы Дэвид Кризельдің айтуынша, «мұның себебі JBIG2 емес». 2013 жылы көптеген Xerox Workcentre көшіргіш және принтерлерінде түрлі алмастырулар (соның ішінде «6»-ны «8»-бен алмастыру) тіркелді. Сканерленген (бірақ OCR өңдемеген) құжаттардағы сандар өзгертілген болуы мүмкін. Бұл құрылыс сызбаларында және сандық кестелерде байқалды; мұндай алмастыру қателерінің медициналық рецепттер сияқты құжаттарға тигізетін ықтимал әсері туралы қысқаша айтылды. Неміс компьютер ғалымы Дэвид Кризель және Xerox осы мәселені зерттеді. Кейіннен Xerox бұл бағдарламалық жасақтаманың ұзақ жылдар бойына болған кемшілік екенін мойындады және бастапқыда тек заводтық емес параметрлер ғана алмастыруға себеп болуы мүмкін деген мәлімдемелері дұрыс емес еді. Зақымдалған құрылғыларды қайтарып алуға немесе жаңартуды міндеттеуге әрекет жасалмады – бұл оннан астам өнім отбасыларына әсер еткенін мойындады. Дегенмен, 2013 жылдың тамызында бағдарламалық жасақтама жаңарту шығарылды, ол орнатылған кезде үлгіні тану функциясын автоматты түрде өшіріп тастады. Бұрын сканерленген құжаттарда қателер болуы мүмкін, сондықтан олардың дұрыстығын растау қиын. Қателерге мүмкіндік туралы жариялылықтан кейін кейбір елдердің билік органдары JBIG2 қолдануға тыйым салды. Германияда Ақпараттық қауіпсіздік жөніндегі федералды кеңсе JBIG2 кодегін «қайта сканерлеу» үшін «қолдануға болмайды» деп техникалық нұсқаулық шығарды. Швейцарияда Электрондық құжаттарды тұрақты мұрағаттауды үйлестіру кеңсесі (Koordinationsstelle für die dauerhafte Archivierung elektronischer Unterlagen) PDF құжаттарын жасау кезінде JBIG2 пайдаланудан бас тартуды ұсынды.
Some implementations of JBIG2 using lossy compression can potentially alter the characters in documents that are scanned to PDF. Unlike some other algorithms where compression artifacts are obvious, such as blurring or mosquito noise, JBIG2's "pattern matching" matches up similar looking symbols. If the matching is implemented poorly, especially in low resolution scans where characters are less clearly defined, similar characters may get erroneously swapped. But as noted by computer scientist David Kriesel, who discovered such a problem as described below, "the error cause is not JBIG2 itself". In 2013, various substitutions (including replacing "6" with "8") were reported to happen on many Xerox Workcentre photocopier and printer machines. Numbers printed on scanned (but not OCR ed) documents had potentially been altered. This has been demonstrated on construction blueprints and some tables of numbers; the potential impact of such substitution errors in documents such as medical prescriptions was briefly mentioned. German computer scientist David Kriesel and Xerox were investigating this. Xerox subsequently acknowledged that this was a long standing software defect, and their initial statements in suggesting that only non factory settings could introduce the substitution were incorrect. No attempt was made to recall or mandate updates to the affected devices – which was acknowledged to affect more than a dozen product families. However, in August 2013 a software patch was made available, that when installed, automatically disabled pattern matching. Documents previously scanned continue to potentially contain errors making their veracity difficult to substantiate. Following publicity about the potential for errors authorities in some countries made statements to prevent the use of JBIG2. In Germany the Federal Office for Information Security has issued a technical guideline that says the JBIG2 encoding "MUST NOT be used" for "replacement scanning". In Switzerland the Coordination Office for the Permanent Archiving of Electronic Documents (Koordinationsstelle für die dauerhafte Archivierung elektronischer Unterlagen) has recommended against the use of JBIG2 when creating PDF documents.
Пайдалану
Apple-дің iOS операциялық жүйесінде қолданылатын Xpdf-тің JBIG2 әлеуетті осалдығы, Pegasus шпиондық бағдарламасы тарапынан iPhone-дарға нөлдік кликпен шабуыл жасау үшін пайдаланылды. Бұл шабуыл JBIG2 ағыны ішінде эмуляцияланған компьютерлік архитектура құру арқылы іске асырылды. Apple компаниясы 2021 жылдың қыркүйек айында iOS 14.8 жаңартуында "FORCEDENTRY" осалдығын жойды.
A vulnerability in the Xpdf implementation of JBIG2, re used in Apple's iOS phone operating software, was used by the Pegasus spyware to implement a zero click attack on iPhones by constructing an emulated computer architecture inside a JBIG2 stream. Apple fixed this "FORCEDENTRY" vulnerability in iOS 14.8 in September 2021.