Кіріспе

Сурет файл форматы

JBIG2 – екі деңгейлі суреттерге арналған сурет сығымдау стандарты, оны Біріккен екі деңгейлі сурет сарапшылар тобы әзірледі. Ол жоғалтусыз және жоғалтулы сығымдау үшін де қолайлы. Топтың баспасөз хабарламасына сәйкес, жоғалтусыз режимінде JBIG2 әдетте факс тобы 4 форматынан 3-5 есе кіші, ал JBIG форматынан 2-4 есе кіші файлдарды жасайды, бұл Топтың бұрынғы екі деңгейлі сығымдау стандарты. JBIG2 2000 жылы ITU T.88 халықаралық стандарты ретінде және 2001 жылы 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).

Техникалық мәліметтер

Әдетте, екі деңгейлі кескін негізінен көп көлемде мәтіндік және жарты тонды деректерден тұрады, онда бірдей пішіндер жиі қайталанады. Екі деңгейлі кескін үш аймаққа бөлінеді: мәтін, жарты тон және жалпы аймақтар. Әр аймақ әртүрлі кодталады және кодтау әдістемелері төменде сипатталған.

Мәтіндік бейне деректері

Мәтіндік кодтау адамның визуалды түсіну қабілетіне негізделген. Адам көзі екі деңгейлі кескіндегі бірдей әріптердің екі данасы арасындағы айырмашылықты байқамайды, тіпті олар пикселдер бойынша дәлме-дәл сәйкес келмесе де. Сондықтан, әрбір әріптің жеке-жеке бит картасын кодтаудың орнына, тек бір өкілдік данасының бит картасын кодтау жеткілікті. Әрбір әріп данасы үшін, кодталған данасы "символдар сөздігіне" сақталады. Мәтіндік бейне деректерін кодтаудың екі әдісі бар: үлгіні сәйкестендіру және алмастыру (PM&S) және жұмсақ үлгіні сәйкестендіру (SPM). Үлгіні сәйкестендіру және алмастыру (PM&S) – классикалық кодтау әдісі. Кодтаушы суретті сегменттеу арқылы әріп өлшемді кескіндерді бөліп алады. Әрбір кескіндік бөлік үшін, бит карта сөздігінде сәйкестік ізделеді. Егер сәйкестік табылса, сөздіктегі сәйкес бит картасының индексі және парақтағы әріптің орны кодталады. Орын әдетте бұрын кодталған басқа әріпке қатысты болады. Егер сәйкестік табылмайтын болса, сегменттелген пиксель блогы тікелей кодталып, сөздікке қосылады. Үлгіні сәйкестендіру және алмастыру алгоритмінің стандартты процедуралары жоғарыдағы суреттің сол жақ блок-схемасында көрсетілген. PM&S әдісі өте жақсы қысылуға қол жеткізе алады, бірақ егер суреттің ажыратымдылығы төмен болса, алмастыру қателіктері болуы мүмкін. SPM сөздіктегі әріптердің өте ұқсас болуын қажет ететіндіктен, тек аз ғана деректерді қосады.

Сканерленген құжаттардағы таңбаларды ауыстыру қателері

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 пайдаланудан бас тартуды ұсынды.

Пайдалану

Apple-дің iOS операциялық жүйесінде қолданылатын Xpdf-тің JBIG2 әлеуетті осалдығы, Pegasus шпиондық бағдарламасы тарапынан iPhone-дарға нөлдік кликпен шабуыл жасау үшін пайдаланылды. Бұл шабуыл JBIG2 ағыны ішінде эмуляцияланған компьютерлік архитектура құру арқылы іске асырылды. Apple компаниясы 2021 жылдың қыркүйек айында iOS 14.8 жаңартуында "FORCEDENTRY" осалдығын жойды.