JBIG2
JBIG2| 개발자 | 공동 Bi 레벨 이미지 전문가 그룹 |
|---|---|
| 최신 릴리즈 | 2 |
| 포함자 | 휴대용 문서 형식, FAX |
| 표준 | ITU T.88 & ISO/IEC 14492 |
JBIG2는 공동 Bi-level Image Experts 그룹에서 개발한 2단계 영상에 대한 이미지 압축 표준이다.무손실 압축과 손실 압축 모두에 적합하다.이 그룹의[1] 보도 자료에 따르면, 무손실 모드에서 JBIG2는 팩스 그룹 4보다 3~5배, JBIG보다 2~4배 작은 파일을 생성하는데, 이 그룹이 발표한 이전의 바이 레벨 압축 표준은 2000년에 국제 표준 ITU T.88로,[2] 2001년에는 ISO/IEC 14492로 발표되었다.[3]
기능
이상적으로는 JBIG2 인코더가 입력 페이지를 텍스트 영역, 중간 이미지 영역 및 기타 데이터 영역으로 세분화한다.텍스트나 중간 부분이 아닌 영역은 일반적으로 MQ 코더라는 컨텍스트 의존적 산술 코딩 알고리즘을 사용하여 압축된다.텍스트 영역은 다음과 같이 압축된다: 영역의 전경 픽셀은 기호로 그룹화된다.그런 다음 기호 사전이 만들어지고 인코딩되는데, 일반적으로 문맥에 의존하는 산술 코딩을 사용하기도 하며, 영역은 어떤 기호가 어디에 나타나는지 설명함으로써 인코딩된다.일반적으로 기호는 텍스트 문자에 해당하지만 압축 방법에서는 이것이 필요하지 않다.손실 압축의 경우 유사한 기호 간의 차이(예: 동일한 문자의 약간 다른 인상)를 무시할 수 있으며, 무손실 압축의 경우 템플릿으로 다른 기호를 사용하여 유사한 기호를 압축하여 이 차이를 고려한다.하프톤 이미지는 하프톤을 생성하는 데 사용되는 그레이스케일 이미지를 재구성하고 하프톤 패턴 사전과 함께 이 이미지를 전송함으로써 압축될 수 있다.[4]전체적으로 JBIG2가 텍스트를 압축하기 위해 사용하는 알고리즘은 바이너리 영상을 코딩하기 위해 DjVu 파일 형식에서 사용하는 JB2 압축 방식과 매우 유사하다.
PDF 파일 버전 1.4 이상에는 JBIG2 압축 데이터가 포함될 수 있다.JBIG2용 오픈소스 디코더는 Xpdf와 Poppler[7](둘 다 GPL)에서 발견된 Jbig2dec[5](Apache-2)와 Java 기반 jbig2-imageio[6](Apache-2) 및 Glyph & Cog LLC(Glippler)의 디코더다.오픈 소스 인코더는 jbig2enc[8](Apache-2)이다.
기술적 세부사항
전형적으로, 양 수준 이미지는 동일한 모양이 반복적으로 나타나는 대량의 텍스트와 하프톤 데이터로 구성된다.바이 레벨 영상은 텍스트, 하프톤 및 일반 영역의 세 영역으로 분할된다.각 지역은 다르게 코딩되며 코딩 방법론은 다음 절에 설명되어 있다.
텍스트 이미지 데이터
텍스트 코딩은 인간의 시각적 해석의 특성에 기초한다.인간 관찰자는 동일한 문자의 두 인스턴스(instance)가 픽셀 단위로 정확하게 일치하지 않을 수 있지만, 두 개의 인스턴스(instance)가 양 수준 영상에서 차이를 구별할 수 없다.따라서 동일한 문자가 발생할 때마다 비트맵을 개별적으로 코딩하는 대신 하나의 대표적인 문자 인스턴스의 비트맵만 코딩하면 된다.각 문자 인스턴스에 대해 코딩된 문자의 인스턴스는 "심볼 사전"[9]에 저장된다.텍스트 이미지 데이터에는 패턴 매칭과 대체(PM&S)와 소프트 패턴 매칭(SPM)의 두 가지 인코딩 방법이 있다.이 방법들은 다음의 하위 절에 제시되어 있다.[10]
- 패턴 매칭 및 대체
- 영상 분할 및 일치 검색을 수행한 후 일치하는 항목이 있는 경우 사전에서 해당 대표 비트맵의 인덱스와 페이지의 문자 위치를 코딩한다.이 위치는 일반적으로 이전에 코드화된 다른 문자에 상대적이다.일치 항목이 발견되지 않으면 분할된 픽셀 블록이 직접 코딩되어 사전에 추가된다.패턴 매칭 및 대체 알고리즘의 대표적인 절차가 위 그림의 왼쪽 블록 다이어그램에 표시된다.PM&S 방식은 뛰어난 압축을 달성할 수 있지만, 영상 해상도가 낮을 경우 공정 중 대체 오류가 발생할 수 있다.
- 소프트 패턴 매칭
- 캐릭터의 사전과 위치 정보에 대한 포인터 외에, 이미지 속의 원래 문자를 재구성하는 데 사용되는 중요한 정보 조각이기 때문에 정교화 데이터도 필요하다.정제 데이터의 배치로 인해 앞에서 언급한 성격-위헌 오류가 발생할 가능성이 매우 낮다.정제 데이터는 현재 원하는 문자 인스턴스(instance)를 포함하며, 사전에서 현재 문자와 일치하는 문자의 픽셀을 사용하여 코딩된다.현재 캐릭터 인스턴스는 일치된 캐릭터와 높은 상관관계가 있는 것으로 알려져 있기 때문에 현재 픽셀의 예측이 더 정확하다.
하프톤
하프톤 영상은 두 가지 방법으로 압축할 수 있다.그 방법 중 하나는 인접한 픽셀 간의 상관 관계를 얻기 위해 템플릿 픽셀을 적응적으로 배치하는 컨텍스트 기반 산술 코딩 알고리즘과 유사하다.두 번째 방법에서는 영상이 다시 그레이스케일로 변환되도록 하프톤 영상에 데스크레인을 수행한다.변환된 그레이스케일 값은 하프톤 비트맵 사전에 포함된 고정 크기의 작은 비트맵 패턴의 인덱스로 사용된다.이를 통해 디코더가 서로 인접한 인덱스 사전 비트맵 패턴을 제시해 하프톤 이미지를 성공적으로 렌더링할 수 있다.
산술 엔트로피 부호화
텍스트, 하프톤 및 일반 영역을 포함한 세 가지 영역 유형은 모두 산술 코딩을 사용할 수 있다.JBIG2는 특히 JPEG 2000에서 채택한 것과 동일한 엔트로피 인코더인 MQ 코더를 사용한다.
특허
JBIG2 특허는 IBM과 미쓰비시가 보유하고 있다.요청 후 무료 라이선스를 이용할 수 있어야 한다.JBIG와 JBIG2 특허는 같지 않다.[11][12][13]
단점들
손실 모드에서 사용할 경우 JBIG2 압축은 손상이라고 인식할 수 없는 방식으로 텍스트를 변경할 수 있다.이는 단순히 흐릿하게 분해되어 압축 아티팩트가 명백해지는 일부 다른 알고리즘과는 대조적이다.[14]JBIG2는 비슷하게 생긴 기호를 일치시키려고 하기 때문에 예를 들어 숫자 "6"과 "8"이 교체될 수 있다.
2013년, 많은 제록스 워크센트레 복사기와 프린터 기계에서 다양한 대체품("6"을 "8"로 대체하는 것을 포함)이 발생했다고 보고되었다. 여기서 스캔한 (OCRED는 아님) 문서에 인쇄된 숫자는 잠재적으로 변경될 수 있었다.이는 건설 청사진과 일부 숫자 표에 입증되었다. 의료 처방전과 같은 문서에 그러한 대체 오류가 미칠 수 있는 잠재적 영향에 대해 간략히 언급하였다.[15][16][17]데이비드 크라이셀과 제록스는 이것을 조사하고 있었다.[18][19]
제록스는 이후 이것이 오랫동안 지속된 소프트웨어 결함이라는 것을 인정했고, 비공장적 설정만이 대체품을 도입할 수 있다는 것을 제안하는 그들의 초기 진술은 부정확했다.이 문제를 포괄적으로 해결하는 패치는 8월 말에 발행되었지만, 영향을 받은 장치에 대한 업데이트를 리콜하거나 의무화하려는 시도가 전혀 없었으며, 이는 12개 이상의 제품군에 영향을 미친 것으로 인정되었다.이전에 스캔한 문서들은 사실성을 입증하기 어렵게 만드는 오류를 계속 포함하고 있다.일부 국가의 오류 가능성에 대한 홍보가 있은 후 JBIG2의 사용을 막기 위한 성명을 발표했다.[20]
독일 연방정보보안국은 JBIG2 인코딩 "교체 스캔"에 "MUST"를 사용해서는 안 된다는 기술 지침을 발표했다.[21]스위스에서는 전자문서 영구보관을 위한 조정국(Koordinationsstelle für die dauerhafte Archivierung elektronischer Unterlagen)이 PDF 문서를 작성할 때 JBIG2의 사용을 금지할 것을 권고했다.[22]
착취하다
애플의 iOS 전화 운영 소프트웨어에서 재사용되는 JBIG2의 Xpdf 구현의 취약성은 페가수스 스파이웨어에 의해 JBIG2 스트림 내에 에뮬레이트된 컴퓨터 아키텍처를 구축하여 아이폰에 제로 클릭 공격을 구현하는 데 사용되었다.애플은 2021년 9월 iOS 14.8에서 이 「FORCEDENT」 취약성을 고쳤다.[23]
참조
- ^ Wayback Machine에 보관된 2005-05-15 공동 Bi-level Image 전문가 그룹의 보도 자료.
- ^ "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.
- ^ "ISO/IEC 14492:2001 – Information technology – Lossy/lossless coding of bi-level images". Retrieved 2011-02-19.
- ^ JBIG2 - F에 의한 궁극적인 양 수준 이미지 코딩 표준.오노, W. 루클리지, R.아프스, 그리고 C.Constantinescu, Procedures, 2000년 이미지 처리 국제 회의(Vancouver, BC, Canada), vol. 1, 페이지 140–143.
- ^ jbig2decoder 홈 페이지.
- ^ Java 이미지용 jbig2-imageio 디코더 플러그인IO
- ^ 글리프&코그 LLC의 JBIG2Stream 디코더
- ^ jbig2p 인코더 홈 프로젝트.
- ^ F. 오노, W. 루클리지, R.아프스, 그리고 C.Constantineinescu, "JBIG2-최종 양 수준 이미지 코딩 표준", 이미지 처리, 2000.의사 진행.2000년 국제회의 , 제1, 페이지 140–143 제1, 2000.
- ^ P. 하워드, F. 코센티니, B.마틴스, S.Forchhammer, 그리고 W.Rucklidge, "신흥하는 JBIG2 표준", 비디오 기술을 위한 회로 및 시스템, IEEE Transactions on , vol. 8, 7, 페이지 838–848, 1998년 11월.
- ^ What is the patent situation with JBIG?, archived from the original on 2012-02-23
- ^ What is JBIG2?, archived from the original on 2012-04-14, retrieved 2012-04-07
- ^ JBIG2 patents, archived from the original on 2017-09-29, retrieved 2012-04-07
- ^ 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.
- ^ "Xerox scanners/photocopiers randomly alter numbers in scanned documents". 2013-08-02. Retrieved 2013-08-04.
- ^ "Confused Xerox copiers rewrite documents, expert finds". BBC News. 2013-08-06. Retrieved 2013-08-06.
- ^ "Xerox Scanners / Photocopiers Randomly Alter Numbers". The Font Feed. 5 August 2013. Archived from the original on 26 October 2017.
- ^ "Xerox investigating latest mangling test findings". 2013-08-11. Retrieved 2013-08-11.
- ^ 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
- ^ 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.
참고: 그 비디오는 영어로 더빙되어 있다; 만약 당신이 독일어를 이해한다면, 원본은 더 쉽게 따라할 수 있다: David Kriesel: Traue Keinem Scan, den du nicht selbst gefelscht haste. 트라우에 카이넴 스캔, 데른 뒤 - ^ "BSI Technical Guidelines 03138: Replacement Scanning" (PDF). Retrieved 28 December 2021.
- ^ "JBIG2 Compression". Retrieved 28 December 2021.
- ^ 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.
{{cite web}}: CS1 maint : url-status (링크)