KR100938100B1 - 2치 인코딩 시스템, 사진 복사기, 문서 스캐너, 광학 문자 인식 시스템, pda, 팩시밀리 장치, 디지털 카메라, 디지털 비디오 카메라, 세그먼트 계층적 화상 시스템, 비디오 게임을 기록한 컴퓨터 판독가능 매체, 태블릿 개인용 컴퓨터, 2치 인코딩 방법, 컴퓨터 판독가능 매체 - Google Patents

2치 인코딩 시스템, 사진 복사기, 문서 스캐너, 광학 문자 인식 시스템, pda, 팩시밀리 장치, 디지털 카메라, 디지털 비디오 카메라, 세그먼트 계층적 화상 시스템, 비디오 게임을 기록한 컴퓨터 판독가능 매체, 태블릿 개인용 컴퓨터, 2치 인코딩 방법, 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR100938100B1
KR100938100B1 KR1020030021361A KR20030021361A KR100938100B1 KR 100938100 B1 KR100938100 B1 KR 100938100B1 KR 1020030021361 A KR1020030021361 A KR 1020030021361A KR 20030021361 A KR20030021361 A KR 20030021361A KR 100938100 B1 KR100938100 B1 KR 100938100B1
Authority
KR
South Korea
Prior art keywords
cluster
dictionary
page
encoding
binary
Prior art date
Application number
KR1020030021361A
Other languages
English (en)
Other versions
KR20030084600A (ko
Inventor
에린엘. 렌쇼
페트리스와이. 시마드
말바엔리케에스.
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20030084600A publication Critical patent/KR20030084600A/ko
Application granted granted Critical
Publication of KR100938100B1 publication Critical patent/KR100938100B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/4115Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures involving the recognition of specific patterns, e.g. by symbol matching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/97Matching pursuit coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)

Abstract

잉크 클러스터의 명확한 표현을 가지는 2치 화상의 압축을 용이하게 하는 시스템 및 방법이 제공된다. 본 발명은, 접속 콤포넌트 정보의 분석, 클러스터의 추 출, 및 클러스터의 글로벌 사전, 페이지 사전 또는 언클러스터링된 형태의 스토어에의 기억을 행하는 클러스터 형태 추정기를 포함한다. 클러스터 콤포넌트로부터의 비트맵 추정부는 글로벌 사전에 기억된 클러스터에 대한 사전 위치를 결정하며, 이 사전 위치는 그 다음에 인코딩된다. 클러스터 위치 추정기는 글로벌 사전 및/또는 페이지 사전의 클러스터의 페이지 위치를 결정하며, 이 사전 위치는 그 다음에 인코딩되다. 또한, 글로벌 사전, 페이지 사전 및 언클러스터링된 형태의 스토어가 인코딩된다.
Figure R1020030021361
클러스터, 2치 화상, 글로벌 사전, 페이지 사전, 언클러스터링된 형태

Description

2치 인코딩 시스템, 사진 복사기, 문서 스캐너, 광학 문자 인식 시스템, PDA, 팩시밀리 장치, 디지털 카메라, 디지털 비디오 카메라, 세그먼트 계층적 화상 시스템, 비디오 게임을 기록한 컴퓨터 판독가능 매체, 태블릿 개인용 컴퓨터, 2치 인코딩 방법, 컴퓨터 판독가능 매체{COMPRESSION OF BI-LEVEL IMAGES WITH EXPLICIT REPRESENTATION OF INK CLUSTERS}
도 1은 본 발명의 일 태양에 따른 2치 인코딩 시스템의 블록도.
도 2는 4 접속성 속성을 나타내는 도.
도 3은 8 접속성 속성을 나타내는 도.
도 4는 본 발명의 일 태양에 따른 예시적인 접속 콤포넌트 바운딩 박스를 나타내는 도.
도 5는 본 발명의 일 태양에 따른 예시적인 글로벌 사전 데이터 구조를 나타내는 도.
도 6은 본 발명의 일 태양에 따른 2치 인코딩 시스템의 블록도.
도 7은 본 발명의 일 태양에 따른 선택가능 2치 인코딩 시스템의 블록도.
도 8은 본 발명의 일 태양에 따른 2치 디코딩 시스템의 블록도.
도 9는 본 발명의 일 태양에 따른 2치 인코딩을 행하는 방법을 나타내는 플로우차트.
도 10은 본 발명의 일 태양에 따른 2치 인코딩을 행하는 방법을 나타내는 플로우차트.
도 11은 도 10의 방법의 후속 단계를 나타내는 플로우차트.
도 12는 본 발명의 일 태양에 따른 클러스터 분석을 행하는 방법을 나타내는 플로우차트.
도 13은 도 12의 방법의 후속 단계를 나타내는 플로우차트.
도 14는 본 발명의 일 태양에 따른 2치 디코딩을 행하는 방법을 나타내는 플로우차트.
도 15는 본 발명을 구현할 수 있는 예시적인 오퍼레이팅 환경을 나타내는 도.
<도면의 주요부분에 대한 부호의 설명>
100, 600 : 2치 인코딩 시스템,
110 : 클러스터 형태 추정기,
120 : 클러스터 콤포넌트로부터의 비트맵 추정부,
130 : 클러스터 위치 추정기,
140 : 제1 인코더,
150 : 제2 인코더,
160 : 제3 인코더,
170 : 제4 인코더,
172 : 형태의 글로벌 사전,
174 : 형태의 페이지 사전,
176 : 언클러스터링된 형태의 스토어,
400 : 바운딩 박스,
500 : 글로벌 사전 데이터 구조,
510 : 제1 필드,
520 : 제2 필드,
530 : 제3 필드,
540 : 제4 필드,
550 : 글로벌 클러스터 엔트리,
610 : 클러스터링 시스템,
620 : 활동 검출 시스템,
700 : 선택가능 2치 인코딩 시스템,
710 : 무손실 2치 인코더,
720 : 선택 콤포넌트,
1512 : 컴퓨터,
1514 : 처리부,
1516 : 시스템 메모리,
1518 : 시스템 버스,
1520 : 휘발성 메모리,
1522 : 비휘발성 메모리,
1524 : 디스크 기억 장치,
1526 : 인터페이스,
1528 : 운영 체제,
1530 : 시스템 애플리케이션,
1532 : 프로그램 모듈,
1534 : 프로그램 데이터,
1536 : 입력 장치,
1538 : 인터페이스 포트,
1540 : 출력 장치,
1542 : 출력 어댑터,
1544 : 원격 컴퓨터,
1546 : 메모리 기억 장치,
1548 : 네트워크 인터페이스,
1550 : 통신 접속부.
본 발명은, 일반적으로 디지털 화상 처리에 관한 것으로서, 특히, 잉크 클러스터의 명확한 표현을 가지는 2치(bi-level) 화상의 압축을 용이하게 하는 시스템 및 방법에 관한 것이다.
컴퓨터를 통해 입수가능한 정보량이 컴퓨터 네트워크, 인터넷 및 디지털 기억 수단의 넓은 보급에 따라 극적으로 증가하였다. 이러한 정보량의 증가에 따라, 정보를 신속하게 전송하고 이 정보를 효과적으로 기억하는 기술이 요구되었다. 데 이터 압축은, 정보의 효과적인 전송 및 기억을 용이하게 하는 기술이다.
데이터 압축은, 정보를 표현하기 위해 필요한 공간을 축소시키고, 다수의 정보 형태에 사용될 수 있다. 화상, 텍스트, 오디오 및 비디오를 포함하는 디지털 정보의 압축에 대한 요구는 점점 증가하고 있다. 통상, 데이터 압축은 표준 컴퓨터 시스템에 사용되지만, 디지털 텔레비전, 위성 방송 텔레비전, 셀룰러폰, 디지털폰과 같은 다른 기술이 데이터 압축을 사용하고, 이에 한정되지 않는다.
대량의 정보의 취급, 전송 및 처리에 대한 요구가 증가함에 따라, 이러한 데이터의 압축에 대한 요구도 증가하였다. 저장 장치 용량이 상당히 증가하였지만, 정보에 대한 요구는 저장 장치 용량의 발전을 앞서갔다. 예를 들어, 미압축 디지털 화상은 5 메가바이트의 공간을 필요로 하는 반면에, 동일한 화상이 무손실 압축되면 2.5 메가바이트의 공간만을 필요로 한다. 따라서, 데이터 압축은 대량의 정보의 전송을 용이하게 한다. 광대역, DSL, 케이블 모뎀, 인터넷 등과 같은 전송 레이트의 증가에도 불구하고, 미압축 정보를 이용하면 전송 한계에 쉽게 도달된다. 예를 들어, 미압축 화상을 DSL 회선을 통해 전송하면, 10분이 걸릴 수 있다. 그러나, 동일한 화상을 압축하면, 약 1분 내에 전송할 수 있고, 이에 따라, 데이터 처리량에서 10배의 이득을 얻을 수 있다.
통상, 압축의 형태에는, 2개의 형태, 즉, 무손실 및 손실 압축이 있다. 무손실 압축은 압축후에 본래 데이터와 동일한 데이터를 복원시키는 반면에, 손실 압축은 압축후에 본래 데이터와는 다른 데이터를 복원시킨다. 어느 정도의 데이터 완전성에 대한 손상이 허용되기 때문에, 손실 압축이 무손실 압축보다 높은 압축률을 제공하는 점에서, 2개의 압축 모드간에 트레이드오프(tradeoff)가 존재한다. 예를 들어, 중요한 문서를 압축할 때에는, 데이터의 정확한 복원의 실패가 그 문서의 품질 및 가독성(readability)에 큰 영향을 주기 때문에, 무손실 압축을 사용할 수 있다. 어느 정도의 왜곡 또는 노이즈가 허용되는 경우 또는 인간의 감각으로는 감지될 수 없을 경우에는, 화상 또는 중요하지 않은 문서에 손실 압축을 사용할 수 있다.
2치 화상은, 텍스트 및 그림을 포함하는 흑백 문서의 간결한 표현에 대한 가능성을 제공하기 때문에, 디지털 문서 처리에 흔히 사용된다. 이러한 화상에서, 이들 화상의 화소(픽셀)가 2진 소스(예, 흰색="0" 및 흑색="1")로부터 오는 것으로서 인식될 수 있다. 화상은 대개 상당한 흰색 공간 및 반복되는 잉크 패턴을 포함하기 때문에, 이러한 화상을 효과적으로 인코딩하는 기본적인 접근방식 중 하나는, 화상을 래스터 순서로, 예를 들어, 상부로부터 하부로, 및 좌측으로부터 우측으로 스캔하고, 각각의 픽셀을 적응적 산술 코딩(AC)으로 인코딩하는 것이며, 각각의 픽셀의 상태(또는 확률표)는, 이전에 인코딩된 픽셀을 포함하는 작은 템플릿(template)의 픽셀값에 의해 형성된 콘텍스트(context)에 의해 제어된다. 이러한 개념은, 가장 최근의 2치 화상 압축 시스템의 기본이다.
통상, 팩시밀리 화상은, 각각이 이하, 그룹 3(이하, 'G3'이라고 함) 및 그룹 4(이하, 'G4'라고 함)라고 하는 종래의 CCITT 표준 T.4 및 T.6을 사용하여 전송된다. 통상, G3은 화상을 MH(modified Huffman) 코드(즉, 흑색 또는 백색 픽셀의 진행에 대한 허프만 코딩)로 인코딩하고, G4는 MMR(modified modified read) 코딩을 사용한다. MH 및 MMR은 콘텍스트 적응성 AC만큼 효과적이지는 않지만, 구현하기에 더 간단하다. 시간이 흐름에 따라, G3 및 G4는 JBIG(joint bi-level image group)(권고 T.82라고도 함)를 통한 인코딩을 포함하도록 개발되었다. JBIG는 콘텍스트 적응성 AC, 적응성 템플릿 및 유효 QM 2진 산술 인코더를 사용한다. JBIG-2 표준은, 텍스트 및 하프톤(halftone) 데이터에 대한 패턴 매칭, 및 손실 인코딩에 대한 소프트 패턴 매칭(SPM;soft pattern matching)을 포함함으로써, JBIG를 확장한다. 또한, JB2 인코더는 SPM을 기초로 하지만, 2진 인코딩에 대해 Z 코더를 사용한다. JBIG, JBIG-2 및 JB2는 G4를 통한 압축 성능의 상당한 향상을 제공할 수 있다.
본 발명의 목적은, 잉크 클러스터의 명확한 표현을 가지는 2치 화상의 압축을 용이하게 하는 시스템 및 방법을 제공하는데 있다.
본 발명의 태양에 대한 기초적인 이해를 제공하기 위해, 다음과 같이, 본 발명의 간단한 요약을 제공한다. 이 요약은 본 발명의 광범위한 개관이 아니다. 이 요약은, 본 발명의 중요한/핵심적 구성요소를 확인하거나 본 발명의 범위를 나타내기 위한 것이 아니다. 단지, 이 요약은, 후술하는 상세한 설명에 대한 도입부로서 본 발명의 개념을 간단한 형태로 제공하기 위한 것이다.
본 발명은, 비트맵이 상당한 양의 텍스트를 포함할 수 있는 스캔된 문서에 대응한다고 미리 가정을 함으로써, 현재의 2치 코딩 기술을 확장하는 2치 인코딩 시스템을 제공한다. 스캔된 문서는 흑색 픽셀의 클러스터(들)에 대응하는 문자(들)에 대한 비트맵 패턴을 포함할 수 있다. 설명을 위해, 문서의 배경이 대체로 흰색이고 텍스트가 대체로 흑색이라고 가정한다. 그러나, 본 발명의 실시예에 적절한 2치 색 표현은 어느 것이든지 첨부된 특허청구범위의 범주 내에 있다고 의도된 것이다.
2치 인코딩 시스템은 비트맵을 (예를 들어, 좌측으로부터 우측으로, 및 상부로부터 하부로) 스캔한다. 잉크의 클러스터가 최초로 발견되면, 이 클러스터를 클러스터의 사전(dictionary)에 추가한다. 그 후, 그 클러스터에 대한 픽셀을 인코딩하는 대신에, 사전으로의 포인터 P, 및 클러스터가 페이지 상에 나타나는 {X,Y} 위치 좌표를 인코딩한다. 그 후, 동일한 클러스터 또는 충분히 유사한 클러스터가 비트맵에서 두 번째로 발견되면, 픽셀을 다시 인코딩하지 않고, 단지 이 {P,X,Y} 좌표를 인코딩한다. 클러스터가 충분한 픽셀을 포함하면, 발명의 명칭 "2치 화상의 적응성 인코딩 및 디코딩(Adaptive Encoding and Decoding of Bi-level Images)"이고, 고객 서류 번호가 제MS158314.1호인 계류 중인 미국 특허출원에 기재된 2치 코덱(BLC;bi-level codec)과 같은 무손실 인코더로 픽셀을 인코딩하는 것보다는 {P,X,Y} 좌표를 인코딩하는 것이 더욱 효과적이다. 클러스터 사전이 모든 페이지들 간에 공용되기 때문에, 다수 페이지 문서에 대한 압축 이득이 더 높아져, 사전 자체를 인코딩하는 오버헤드는 무시할 수 있다.
2치 인코딩 시스템은 무손실 모드 또는 손실 모드에서 동작할 수 있다. 무손실 모드에서, 비트맵의 클러스터가 사전의 클러스터의 제1 임계량 내에 있으면, {P,X,Y} 데이터는, 실제 클러스터와 사전의 클러스터간의 작은 차이(들)인 "클러스터링 잔류(clustering residual)"와 함께 전송된다. 이 클러스터링 잔류는 무손실 2치 인코더를 사용하여 인코딩할 수 있다. 손실 모드에서, 비트맵의 클러스터가 사전의 클러스터의 제2 임계량 내에 있으면, 트리플릿(triplet) {P,X,Y}을 인코딩하지만, 클러스터링 잔류는 인코딩하지 않는다.
본 발명의 2치 인코딩 시스템은, 예를 들어, 종래의 스캐너(예, CCITT G4)에 의해 생성되는 파일보다 상당히 작은 파일을 가져올 수 있다. 따라서, 2치 인코딩 시스템은, 예를 들어, 디지털 도서관 및 디지털 문서 데이터베이스와 같은 문서 전송 및/또는 저장소 애플리케이션(들)에 상당한 영향을 줄 수 있다.
본 발명의 일 태양에 따르면, 2치 인코딩 시스템은, 클러스터 형태 추정기, 클러스터 콤포넌트로부터의 비트맵 추정부, 클러스터 위치 추정기, 제1 인코더, 제2 인코더, 제3 인코더 및 제4 인코더를 포함할 수 있다. 클러스터 형태 추정기는 비트맵과 관련된 접속 콤포넌트 정보(예, 색, 수평 크기, 수직 크기, 수평 위치 및/또는 수직 위치)를 분석한다. 클러스터 형태 추정기는 클러스터를 추출하여 형태의 글로벌 사전, 형태의 페이지 사전 및 언클러스터링된 형태의 기억 장치 중 적어도 하나에 기억시킨다.
손실 모드에서, 클러스터 형태 추정기는, 클러스터가 글로벌 사전의 클러스터의 제2 임계량 내에 있는지의 여부를 판정할 수 있다. 일례에서, 클러스터가 제2 임계량 내에 있으면, 페이지상의 클러스터의 존재가 표시된다. 다른 예에서, 클러스터가 제2 임계량 내에 있으면, 페이지상의 클러스터의 존재가 표시되고 글로벌 사전에 기억된 클러스터가 적어도 부분적으로는 이 클러스터에 기초하여 수정된다. 예를 들어, 클러스터 형태 추정기가 글로벌 사전에 기억된 클러스터와 이 클러스터의 가중된 평균화를 행함으로써, 글로벌 사전에 기억된 클러스터를 수정한다. 이에 의해, 디코딩된 비트맵을 본래의 비트맵과 비교해 볼 때 명확한 텍스트가 될 수 있다. 또다른 예에서, 제1 임계량(예를 들어, 무손실 모드에 대해 사용됨) 및 제2 임계량(예를 들어, 손실 모드에 대해 사용됨)은 거의 동일한 값을 가질 수 있다.
형태의 글로벌 사전은 글로벌 클러스터를 포함한다. 이 글로벌 클러스터는, 현재의 비트맵(예, 페이지)상에서 1회 이상 발생하고/거나 동일한 문서의 일부로서 미리 처리된 클러스터이다.
형태의 페이지 사전은 페이지 레벨 클러스터(들), 즉, 현재의 비트맵(예, 페이지)상에서 1회 발견된 클러스터(들)를 포함한다. 예를 들어, 클러스터 형태 추정기가 현재의 비트맵(예, 페이지)을 거의 완전하게 분석하면, 현재의 비트맵(예, 페이지)상에서 1회만 발견된 클러스터(들)를 포함하는 형태의 페이지 사전의 일부는 (예를 들어, 인코딩된 파일에 포함되어) 전송될 수 있다. 페이지 사전은 페이지상의 클러스터 외형에 의해 오더링(ordering)되고, 페이지 레벨 클러스터는 정의에 의해 페이지 상에서 1회만 발생하기 때문에, 페이지 사전으로의 인덱스(예, 포인터)는 인코딩될 필요가 없다.
형태의 페이지 사전이 이전 비트맵(예, 페이지)상에서 1회만 발생한 클러스터를 기억함으로써, 거의 유사한 클러스터의 두 번째 발생이 후속 비트맵 상에서 발견되면, 클러스터는 글로벌 사전에 기억되고 페이지 사전으로부터 소거될 수 있다. 언클러스터링된 형태의 스토어(store)는, 텍스트 문자가 되기에는 너무 작거나(예를 들어, 제3 임계량보다 작음) 너무 커서(예를 들어, 제4 임계량보다 큼) 양호하게 클러스터링되지 않는 접속 콤포넌트(들)를 기억한다.
클러스터 콤포넌트로부터의 비트맵 추정부는, 글로벌 사전에 기억된 클러스터에 대한 사전 위치를 결정한다. 클러스터 콤포넌트로부터의 비트맵 추정부는 클러스터 형태 추정기로부터의 정보(예, 포인터)를 이용할 수 있다. 그 후, 포인터는 제2 인코더에 의해 인코딩된다. 클러스터가 페이지상의 위치에 의해 소팅(sorting)되기 때문에, 인덱스(예, 포인터)는 텍스트 스트링형 순서를 형성하는 경향이 있고, 일례에서, 제2 인코더는 텍스트 스트링에 적당한 압축 알고리즘(예, LZX 인코딩)을 사용할 수 있다.
무손실 모드에서, 클러스터 콤포넌트로부터의 비트맵 추정부는 클러스터링 잔류(들)를 결정할 수 있다. 클러스터 콤포넌트로부터의 비트맵 추정부는 이러한 정보를 제4 인코더에 제공할 수 있고, 제4 인코더는 이 정보를 언클러스터링된 형태의 스토어와 함께 인코딩할 수 있다(예를 들어, 무손실 2치 인코딩을 사용함).
클러스터 위치 추정기는, 접속 콤포넌트 정보를 사용하여 글로벌 사전 및/또는 페이지 사전의 클러스터의 페이지 위치를 결정한다. 따라서, 글로벌 사전 및/또는 페이지 사전의 클러스터에 대해, 페이지상의 클러스터의 위치는, 접속 콤포넌트 정보, 및 글로벌 사전 또는 페이지 사전의 사전 엔트리로부터의 속성을 사용하여 결정된다. 그 후, 페이지 위치는 제1 인코더에 의해 인코딩된다.
일례에서, 클러스터가 특히 단어 내에서 규칙적으로 간격을 두기(spaced) 때문에, 한 라인상의 클러스터들간의 수평(x 방향) 갭이 인코딩된다. 또한, 한 라인에 대해, 평균 수평 갭이 계산, 인코딩되어, 평균 수평 갭과 실제 수평 갭간의 차이에 기초한 갭 정보가 될 수 있다.
다른 예에서, 평균 수직(y 방향) 값이 계산된다. 한 라인에 대한 평균 수직값이 인코딩된 후, 한 클러스터에 대해, 클러스터의 수직값과 평균 수직값간의 차이가 인코딩된다. 로마자 알파벳의 문자가 상부 에지보다 하부 에지를 따라 더 많이 정렬되기 때문에, 클러스터의 바운딩 박스의 하부 에지를 사용할 수 있다. 그 결과, 소정의 클러스터와 평균간의 차이는 작은 경향이 있다. 제1 인코더가 라인 단위로(line-by-line basis) 인코딩하기 때문에, 제1 수평값(x 방향) 및 라인당 평균 Y 값이 인코딩될 수 있다.
제1 인코더는 클러스터 위치 추정기로부터 수신된 페이지 위치를 인코딩한다. 예를 들어, 제1 인코더는 비트평면(bit-plane) 인코딩을 사용할 수 있다. 제2 인코더는 클러스터 콤포넌트의 비트맵 추정부로부터 수신된 사전 위치를 인코딩한다(예를 들어, LZX 인코딩).
제3 인코더는 페이지 사전 및/또는 글로벌 사전의 비트맵 패턴을 인코딩하고, 무손실 2치 비트맵 인코딩을 사용할 수 있다. 제4 인코더는 언클러스터링된 형태의 기억을 인코딩하고, 무손실 2치 비트맵 인코딩을 사용할 수 있다.
통상적으로 종이 형태 문서로부터 전자 형태 문서로의 전환을 의미하는 "종이를 쓰지 않는 사무 처리 시스템(paperless office)"에 중점을 두는 것이 증가되고 있다. 종래의 기술을 사용하여 전환된 문서는, 사용자로 하여금 전자 문서를 스캔, 기억 및/또는 조작할 수 있지만, 파일이 커지게 한다. 예를 들어, 다수의 스캐너로, 20장 정도의 스캔된 페이지에 대해 1 메가바이트의 데이터가 생성되기 쉽다. 그러면 사용자는 스캔된 문서를, 예를 들어, 전자 메일을 통해 전송하기가 곤란해지는데, 여기서, 이렇게 발생한 큰 파일이 문제가 될 수 있다. 그러나, 본 발명의 시스템 및/또는 방법을 사용하는 스캐너는, 예를 들어, 200장의 스캔된 페이지당 1 메가바이트만큼 적게 기억 요구사항을 감소시킴으로써, 50 페이지의 법률 문서는, 예를 들어, 단지 250 킬로바이트의 ".bic" 파일을 생성할 수 있고, 이 파일을 전자 메일을 통해 신속하게 전송할 수 있다.
또한, 순수(clean) 문서상에, 일반적인 G4 포맷 보다 우수한 본 발명의 시스템 및/또는 방법의 이득은, 예를 들어, 10배가 될 수 있다. 노이지(noisy) 문서에 대하여, G4 보다 우수한 본 압축의 이득은 5배, 또는 매우 짧은 문서(1 페이지)의 한계 내에서는 3배일 수 있다.
본 발명의 다른 태양은, 클러스터링 시스템 및/또는 활동 검출 시스템을 더 포함하는 2치 인코딩 시스템을 제공한다.
클러스터링 시스템은, 복수의 클러스터(예, 접속 콤포넌트)와 관련된 정보를 식별한다. 예를 들어, 이 정보는, 복수의 클러스터(예, 접속 콤포넌트)의 폭(예, x 크기), 높이(예, y 크기), 색, 수평 위치(예, 절대 위치 및/또는 상대 위치) 및/또는 수직 위치(예, 절대 위치 및/또는 상대 위치)를 포함할 수 있다.
활동 검출 시스템은 2치 화상 입력을 수신한다. 예를 들어, 2치 화상 입력은 마스크 분리 콤포넌트(도시하지 않음)로부터 수신된 2진 마스크 또는 (예를 들어, 문서 스캐너 및/또는 팩시밀리 장치로부터) 스캔된 화상일 수 있다. 활동 검출 시스템은 디더링(dithering)/하프토닝(halftoning) 및/또는 노이즈에 대해 2치 화상을 분석한다. 활성 검출 시스템은 2치 화상 입력에 기초한 2치 화상 출력을 제공하지만, 디더링/하프토닝 및/또는 노이즈를 감소시킨다.
통상, 디더링/하프토닝을 가지는 문서 화상(들)에 기초한 2치 화상은 영역 내에 및/또는 영역과 교차하는 상당량의 접속 콤포넌트(들)를 가진다. 또한, 노이즈를 가지는 2치 화상(들)은 영역 내에 및/또는 영역과 교차하는 콤포넌트(들)를 거의 가지지 못한다. 따라서, 영역 내에 및/또는 영역과 교차하는 접속 콤포넌트(들)의 양을 결정함으로써, 활동 검출 시스템은 디더링/하프토닝 및/또는 노이즈가 존재할 수 있는 구역을 검출할 수 있다.
상술한 디더링을 검출하는 것에 더하여, 활동 검출 시스템은 2치 화상 입력의 노이즈를 검출하도록 더 구성될 수 있다. "노이즈"는, 제거한다면 2치 화상의 완전성을 거의 손상시키지 않는 이질적인 정보(예, 마크(들))를 나타낸다. 2치 화상 입력에서 노이즈를 제거하면, 더 평활해진 화상에 의해 데이터 압축을 향상시킬 수 있다. 통상, 노이즈를 가지는 2치 화상의 영역은 비교적 작은 접속성을 나타낸다. 예를 들어, 흰색 배경 상에 접속 스트레이(stray) 마크 만을 포함하는 영역은 하나의 접속 콤포넌트를 가질 수 있다.
본 발명의 또다른 태양은, 2치 인코딩 시스템, 무손실 2치 인코더 및 선택 콤포넌트를 가지는 선택가능 2치 인코딩 시스템을 제공한다.
무손실 2치 인코더는 무손실 2치 인코딩 기술(들)을 사용할 수 있다. 선택 콤포넌트는, 무손실 2치 인코더를 사용하는 무손실 2치 인코딩과, 2치 인코딩 시스템(예를 들면, (무손실 또는 손실) 클러스터를 사용함)) 중에서 선택하게 한다. 예를 들어, 사용자의 선호도에 기초하거나 2치 인코딩 시스템내의 클러스터링 시스템에 의해 선택할 수 있다.
본 발명의 다른 태양은, 제1 디코더, 제2 디코더, 제3 디코더, 제4 디코더, 클러스터 생성기 및 결합기를 가지는 2치 디코딩 시스템을 제공한다.
제1 디코더는 (예를 들어, 대응하는 인코더에 의해 생성된) 비트스트림 입력의 적어도 일부를 디코딩하고, 클러스터(들)의 페이지 위치(들)를 제공한다. 제2 디코더는 (예를 들어, 대응하는 인코더에 의해 생성된) 비트스트림 입력의 적어도 일부를 디코딩하고 디코딩된 사전 위치를 제공한다. 제3 디코더는 (예를 들어, 대응하는 인코더에 의해 생성된) 비트스트림 입력의 적어도 일부를 디코딩하고 디코딩된 형태의 글로벌 사전 및/또는 디코딩된 형태의 페이지 사전을 제공한다. 제4 디코더는 (예를 들어, 대응하는 인코더에 의해 생성된) 비트스트림 입력의 적어도 일부를 디코딩하고 언클러스터링된 형태의 기억을 제공한다.
클러스터 생성기는, 적어도 부분적으로는, 페이지 위치, 사전 위치, 및 적어도 하나의 글로벌 사전 및 페이지 사전에 적어도 일부 기초하여 클러스터를 생성한다. 결합기는, 적어도 부분적으로는, 클러스터 생성기에 의해 생성된 클러스터 및/또는 언클러스터링된 형태(들)의 스토어에 기초하여 2치 출력을 제공한다.
본 발명의 다른 태양은, 태블릿(tablet) 개인용 컴퓨터, 세그먼트 계층적 화상 시스템, 사진 복사기, 문서 스캐너, 광학 문자 인식 시스템, PDA(personal digital assistants), 팩시밀리 장치, 디지털 카메라, 디지털 비디오 카메라 및/또는 비디오 게임을 포함하지만, 이에 한정되지 않는 다양한 문서 화상 애플리케이션에 사용될 수 있는 2치 인코딩 시스템을 제공한다.
본 발명의 다른 태양은, 2치 인코딩, 클러스터 분석 및 2치 디코딩을 행하는 방법을 제공한다. 또한, 2치 인코딩 시스템에 대한 컴퓨터 실행가능 명령어를 가지는 컴퓨터 판독가능 매체, 및 2치 디코딩 시스템에 대한 컴퓨터 실행가능 명령어를 가지는 컴퓨터 판독가능 매체를 제공한다. 또한, 2치 인코딩을 용이하게 하는 2개 이상의 컴퓨터 콤포넌트들간에 전송되도록 구성된 데이터 패킷으로서, 인코딩된 페이지 위치를 포함하는 제2 데이터 필드, 인코딩된 사전 위치를 포함하는 제2 데이터 필드, 인코딩된 글로벌 사전 및 인코딩된 페이지 사전 중 적어도 하나를 포함하는 제3 데이터 필드, 및 언클러스터링된 형태의 인코딩된 기억을 포함하는 제4 데이터 필드를 포함하는 데이터 패킷을 제공한다.
상술한 목적 및 관련 목적을 달성하기 위해, 본원에서는 본 발명의 구체적인 예시적인 태양을 다음과 같은 상세한 설명 및 첨부 도면을 통해 설명한다. 그러나, 이들 태양은 본 발명의 원리를 사용할 수 있는 다양한 방식들 중 일부를 나타낼 뿐이고, 본 발명은 이러한 모든 태양 및 동등물을 포함하도록 의도된 것이다. 본 발명의 다른 이점 및 새로운 특성은, 도면을 참조하여 고려되는 본 발명의 이하 상세한 설명을 통해 명백해질 수 있다.
이제 본 발명을 도면을 참조하여 설명하며, 도면 전체를 통해 동일 참조 부호는 동일 요소를 나타내는 데에 이용된다. 다음과 같은 설명에서, 설명을 위해, 다수의 구체적인 설명을 본 발명의 철저한 이해를 제공하기 위해 기재한다. 그러나, 본 발명은 이러한 구체적인 설명없이 실시할 수 있다는 것이 명백하다. 다른 경우, 본 발명을 용이하게 설명하기 위해 공지된 구조 및 장치가 블록도 형태로 도시된다.
본 명세서에서 사용되는 "컴퓨터 콤포넌트"라는 용어는 컴퓨터 관련 실체, 즉, 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어 중 하나를 나타내기 위한 것이다. 예를 들어, 컴퓨터 콤포넌트는, 프로세서 상에서 실행중인 프로세스, 프로세서, 개체, 실행파일, 실행의 스레드(thread), 프로그램 및/또는 컴퓨터일 수 있지만, 이에 한정되지 않는다. 예로서, 서버 상에 실행중인 애플리케이션 및 서버는 둘 다 컴퓨터 콤포넌트일 수 있다. 하나 이상의 컴퓨터 콤포넌트는 프로세스 및/또는 실행의 스레드 내에 존재할 수 있고, 콤포넌트는 하나의 컴퓨터에 국한될 수 있거나 2개 이상의 컴퓨터만에 분산될 수 있다.
도 1에서는, 본 발명의 일 태양에 따른 2치 인코딩 시스템(100)을 나타낸다. 2치 인코딩 시스템(100)은 클러스터 형태 추정기(110), 클러스터 콤포넌트로부터의 비트맵 추정부(120), 클러스터 위치 추정기(130), 제1 인코더(140), 제2 인코더(150), 제3 인코더(160) 및 제4 인코더(170)를 포함한다.
2치 인코딩 시스템(100)은, 비트맵이 상당한 양의 텍스트를 포함할 수 있는 스캔된 문서에 대응한다는 것을 먼저 가정함으로써, 현행 2치 코딩 기술을 확장한다. 스캔된 문서는 흑색 픽셀의 클러스터(들)에 대응하는 문자(들)에 대한 비트맵 패턴을 포함할 수 있다. 설명을 위해, 문서의 배경은 대체로 흰색이고 텍스트는 대체로 흑색이라고 가정한다. 그러나, 본 발명에 관련하여 사용하기에 적절한 2치 색 표현은 어느 것이든지 첨부된 특허청구범위의 범주 내에 포함되도록 의도된 것이다.
2치 인코딩 시스템(100)은 비트맵을 (예를 들어, 좌측으로부터 우측으로, 및 상부로부터 하부로) 스캔한다. 잉크의 클러스터가 최초로 발견되면, 이 클러스터를 클러스터의 사전에 추가한다. 그 후, 그 클러스터에 대한 픽셀을 인코딩하는 대신에, 사전으로의 포인터 P, 및 클러스터가 페이지 상에 나타나는 {X,Y} 위치 좌표를 인코딩한다. 동일한 클러스터 또는 충분히 유사한 클러스터가 비트맵에서 두 번째로 발견되면, 픽셀을 다시 인코딩하지 않고, 단지 이 {P,X,Y} 좌표만을 인코딩한다. 클러스터가 충분한 픽셀을 포함하면, 픽셀을 무손실 BLC로 인코딩하는 것보다 {P,X,Y} 좌표를 인코딩하는 것이 더욱 효과적이다. 클러스터 사전이 모든 페이지들 간에 공용되기 때문에, 다수 페이지 문서에 대한 압축 이득이 더 높아져, 사전 자체를 인코딩하는 오버헤드는 무시할 수 있다.
2치 인코딩 시스템(100)은 무손실 모드 또는 손실 모드에서 동작할 수 있다. 무손실 모드에서, 비트맵의 클러스터가 사전의 클러스터의 제1 임계량 내에 있으면, {P,X,Y} 데이터는, 실제 클러스터와 사전의 클러스터간의 작은 차이(들)인 "클러스터링 잔류"와 함께 전송된다. 이 클러스터링 잔류는 무손실 2치 인코더를 사용하여 인코딩할 수 있다. 손실 모드에서, 비트맵의 클러스터가 사전의 클러스터의 제2 임계량 내에 있으면, 트리플릿 {P,X,Y}을 인코딩하지만, 클러스터링 잔류는 인코딩하지 않는다.
본 발명의 2치 인코딩 시스템(100)은, 예를 들어, 종래의 스캐너(예, CCITT G4)에 의해 생성되는 파일보다 상당히 작은 파일을 가져올 수 있다. 따라서, 2치 인코딩 시스템(100)은, 예를 들어, 디지털 도서관 및 디지털 문서 데이터베이스와 같은 문서 전송 및/또는 저장소 애플리케이션(들)에 상당한 영향을 줄 수 있다.
클러스터 형태 추정기(110)는 비트맵과 관련된 접속 콤포넌트 정보를 분석한다. 예를 들어, 이 접속 콤포넌트 정보는, 접속 콤포넌트의 색, 수평 크기, 수직 크기, 수평 위치 및/또는 수직 위치를 포함할 수 있다. 클러스터 형태 추정기(110)는 클러스터를 추출하여 형태의 글로벌 사전(172), 형태의 페이지 사전(174) 및 언클러스터링된 형태의 스토어(176) 중 적어도 하나에 기억시킨다.
도 2를 간단히 참조하면, 4 접속성 속성을 나타내는 다이어그램(200)이 도시된다. 4 접속성 속성은 오직 4개의 주요 나침반 방향으로만 접속 픽셀을 식별한다. 도 2는 4개의 주요 나침반 방향에 있는 4개의 픽셀에 의해 둘러싸인 픽셀을 도시함으로써, 4 접속성 속성을 나타낸다. 그 다음, 도 3을 참조하면, 8 접속성 속성을 나타내는 다이어그램(300)이 도시된다. 도 3은 8개의 주요 방향에 있는 8개의 픽셀에 의해 둘러싸인 픽셀을 도시함으로써, 8 접속성 속성을 나타낸다. 접속 콤포넌트는 텍스트 및 논텍스추얼(non-textual) 마크를 포함할 수 있다. 본 발명의 시스템 및 방법은 임의의 적당한 정도의 접속성을 가지는 접속 콤포넌트를 사용할 수 있고 4 접속성 또는 8 접속성의 접속 콤포넌트에 한정되지 않음을 인식한다.
도 4를 간단히 참조하면, 본 발명의 일 태양에 따른 예시적인 접속 콤포넌트 바운딩 박스(400)가 도시된다. 통상, 바운딩 박스(400)는 x 크기(폭) 및 y 크기(높이)를 가지는 접속 콤포넌트를 포함하는 직사각형을 구비한다.
도 1을 다시 참조하면, 손실 모드에서, 클러스터 형태 추정기(110)는, 클러스터 형태가 글로벌 사전(172)의 클러스터의 제2 임계량 내에 있는지의 여부를 판정한다. 일 구현예에서, 후보 형태를 사전 형태로 정렬시킨 후, 사전 형태의 픽셀과는 값(흑색 또는 백색)이 다른 후보 형태의 픽셀의 일부를 카운팅함으로써, 형태 근접치를 결정할 수 있다. 일례에서, 클러스터가 제2 임계량 내에 있으면, 페이지상의 클러스터의 존재가 표시된다. 다른 예에서, 클러스터가 제2 임계량 내에 있으면, 페이지상의 클러스터의 존재가 표시되고, 글로벌 사전(172)에 기억된 클러스터가 적어도 부분적으로는 이 클러스터에 기초하여 수정된다. 예를 들어, 클러스터 형태 추정기(110)가 글로벌 사전(172)에 기억된 클러스터와 이 클러스터의 가중된 평균화를 행함으로써, 글로벌 사전(172)에 기억된 클러스터를 수정한다. 이에 의해, 디코딩된 비트맵은 본래의 비트맵과 비교해볼 때 명확한 텍스트가 될 수 있다.
형태의 글로벌 사전(172)은 글로벌 클러스터를 포함한다. 글로벌 클러스터는, 현재의 비트맵(예, 페이지)상에서 1회 이상 발생하거나 동일한 문서의 일부로서 미리 처리된 클러스터이다. 도 5를 간단히 참조하면, 본 발명의 일 태양에 따른 예시적인 글로벌 사전 데이터 구조(500)가 도시된다. 이 글로벌 사전 데이터 구조(500)는, 인덱스를 데이터 구조(500)로의 인덱스를 기억하는 제1 필드(510), 폭(예, x 크기)을 기억하는 제2 필드, 높이(예, y 크기)를 기억하는 제3 필드(530), 및 글로벌 클러스터의 비트맵을 기억하는 제4 필드(540)를 가진다. 예를 들어, x 크기는 접속 콤포넌트의 최대 폭일 수 있고, y 크기는 접속 콤포넌트의 최대 높이일 수 있다. 데이터 구조(500)는 복수의 글로벌 클러스터 엔트리(550)를 포함할 수 있다.
데이터 구조(500)는 단지 예시적인 것이고, 본 발명에 따른 2치 인코딩을 용이하게 하는데 공헌하는 복수의 데이터 유형의 기억 및 구성을 제공하는 다수의 다른 구조가 고려될 수 있음을 인식해야 한다. 본 발명에 관련하여 사용하기에 적절한 이러한 데이터 구조는 어느 것이든지 첨부된 특허청구범위의 범주 내에 포함되도록 의도된 것이다. 이러한 데이터 구조는, 메모리, 디스크 및 반송파를 포함하지만 이에 한정되지 않는 컴퓨터 판독가능 매체에 기억될 수 있다.
도 1을 다시 참조하면, 형태의 페이지 사전(174)은 페이지 레벨 클러스터(들), 즉, 현재의 비트맵(예, 페이지)상에서 1회 발견된 클러스터(들)를 포함한다. 예를 들어, 클러스터 형태 추정기(110)가 현재의 비트맵(예, 페이지)을 거의 완전하게 분석하면, 현재의 비트맵(예, 페이지)상에서 1회만 발견된 클러스터(들)를 포함하는 형태의 페이지 사전(174)의 일부는 (예를 들어, 인코딩된 파일에 포함되어) 전송될 수 있다. 페이지 사전(174)으로의 인덱스(예, 포인터)는, 페이지 사전(174)이, 페이지 상에서 1회만 발생하는 것으로 정의된 페이지 레벨 클러스터 및 페이지상의 클러스터 외형에 의해 오더링되기 때문에, 인코딩될 필요가 없다.
일례에서, 각각의 페이지는, 페이지가 처리된 후에 인코딩된 고유의 페이지 사전(174)을 가진다. 따라서, 이전의 페이지 사전(174)의 엔트리는 결코 소거되지 않는다. 페이지가 처리되면, 페이지 사전(174)은 인코딩되고 결코 수정되지 않는다.
형태의 페이지 사전(174)이 이전 비트맵(예, 페이지)상에서 1회만 발생한 클러스터를 기억함으로써, 거의 유사한 클러스터의 두 번째 발생이 후속 비트맵 상에서 발견되면, 클러스터는 글로벌 사전(172)에 기억되고 페이지 사전(174)으로부터 소거될 수 있다. 언클러스터링된 형태의 스토어(176)는, 텍스트 문자가 되기에는 너무 작거나(예를 들어, 제3 임계량보다 작음) 너무 커서(예를 들어, 제4 임계량보다 큼) 양호하게 클러스터링되지 않는 접속 콤포넌트(들)를 기억한다.
따라서, 클러스터 형태 추정기(110)는 클러스터를 추출하고 이 클러스터를 형태의 글로벌 사전(172), 형태의 페이지 사전(174) 및 언클러스터링된 형태의 스토어(176) 중 적어도 하나에 기억시킨다. 클러스터 형태 추정기(110)는 정보(예, 형태의 글로벌 사전(172)으로의 포인터)를 클러스터 콤포넌트로부터의 비트맵 추정부(120)에 제공할 수 있다.
클러스터 콤포넌트로부터의 비트맵 추정부(120)는, 글로벌 사전에 기억된 클러스터에 대한 사전 위치를 결정한다. 클러스터 콤포넌트로부터의 비트맵 추정부(120)는 클러스터 사전 정보에 더하여 클러스터 형태 추정기(110)로부터의 정보(예, 포인터)를 이용할 수 있다. 그 후, 포인터는 제2 인코더(150)에 의해 인코딩된다. 클러스터가 텍스트의 문자를 캡쳐링하는 경향이 있기 때문에, 인덱스(예, 포인터)는 순서의 텍스트 스트링에 밀접하게 매핑되는 스트링형 순서를 형성하는 경향이 있다. 따라서, 일례에서, 제2 인코더(150)는 텍스트 스트링에 적당한 압축 알고리즘을 사용할 수 있다. 예를 들어, 제2 인코더(150)는 LZX 인코딩을 사용할 수 있다.
무손실 모드에서, 클러스터 콤포넌트로부터의 비트맵 추정부(120)는 클러스터링 잔류(들)를 결정할 수 있다. 클러스터 콤포넌트로부터의 비트맵 추정부(120)는 이러한 정보를 제4 인코더(170)에 제공할 수 있고, 제4 인코더는 이 정보를 언클러스터링된 형태의 스토어(176)와 함께 인코딩할 수 있다(예를 들어, 무손실 2치 인코딩을 사용함).
클러스터 위치 추정기(130)는, 접속 콤포넌트 정보를 이용하여 글로벌 사전(172) 및/또는 페이지 사전(174)의 클러스터의 페이지 위치를 결정한다. 따라서, 글로벌 사전(172) 및/또는 페이지 사전(174)의 클러스터에 대해, 페이지상의 클러스터의 위치는, 접속 콤포넌트 정보, 및 글로벌 사전(172) 또는 페이지 사전(174)의 사전 엔트리로부터의 속성을 사용하여 결정된다. 그 후, 페이지 위치는 제1 인코더(140)에 의해 인코딩된다. 클러스터가 페이지상의 위치에 의해 소팅되기 때문에, 페이지 위치는 단조롭게 증가하는 경향이 있다. 따라서, 일 구현예에서, 제1 인코더(140)는, 위치 차이(예, X(현재)-X(이전) 및 Y(현재)-Y(이전))를 계산함으로써, 또한 작은 값을 가정할 수 있는 정수에 적절한 엔트로피 인코더로 이러한 위치 차이를 인코딩함으로써, 위치를 인코딩할 수 있으며, 이러한 비트평면 인코더는, 발명의 명칭이 "유한 알파벳 데이터의 무손실 적응성 인코딩(Lossless Adaptive Encoding of Finite Alphabet Data)"이며, 고객 서류 번호가 제MS127658.1호인 미국 특허출원에 기재되어 있다.
일례에서, 클러스터가 특히 단어 내에서 규칙적으로 간격을 두기 때문에, 한 라인상의 클러스터들간의 수평(x 방향) 갭이 인코딩된다. 또한, 한 라인에 대해, 평균 수평 갭이 계산, 인코딩되어, 평균 수평 갭과 실제 수평 갭간의 차이에 기초한 갭 정보로 될 수 있다.
다른 예에서, 평균 수직(y 방향) 값이 계산된다. 한 라인에 대한 평균 수직값이 인코딩된 후, 한 클러스터에 대해, 클러스터의 수직값과 평균 수직값간의 차이가 인코딩된다. 로마자 알파벳의 문자가 상부 에지보다 하부 에지를 따라 더 많이 정렬되기 때문에, 클러스터의 바운딩 박스의 하부 에지를 사용할 수 있다. 그 결과, 소정의 클러스터와 평균간의 차이는 작은 경향이 있다. 제1 인코더(140)가 라인 단위로 인코딩하기 때문에, 제1 수평값(x 방향) 및 라인당 평균 Y 값이 인코딩될 수 있다.
제1 인코더(140)는 클러스터 위치 추정기(130)로부터 수신된 페이지 위치를 인코딩한다. 예를 들어, 제1 인코더(140)는 비트평면 인코딩을 사용할 수 있다. 제2 인코더(150)는 클러스터 콤포넌트의 비트맵 추정부(120)로부터 수신된 사전 위치를 인코딩한다(예를 들어, LZX 인코딩).
제3 인코더(160)는 페이지 사전 및/또는 글로벌 사전의 비트맵 패턴을 인코딩하고, 무손실 2치 비트맵 인코딩을 사용할 수 있다. 제4 인코더(170)는 언클러스터링된 형태의 기억을 인코딩하고, 무손실 2치 비트맵 인코딩을 사용할 수 있다.
도 1은 2치 인코딩 시스템(100)에 대한 콤포넌트를 나타내는 블록도이지만, 클러스터 형태 추정기(110), 클러스터 콤포넌트로부터의 비트맵 추정부(120), 클러스터 위치 추정기(130), 제1 인코더(140), 제2 인코더(150), 제3 인코더(160) 및/또는 제4 인코더(170)를, 본 명에서에 정의된 용어인 하나 이상의 컴퓨터 콤포넌트로서 구현할 수 있다. 따라서, 2치 인코딩 시스템(100), 클러스터 형태 추정기(110), 클러스터 콤포넌트로부터의 비트맵 추정부(120), 클러스터 위치 추정기(130), 제1 인코더(140), 제2 인코더(150), 제3 인코더(160) 및/또는 제4 인코더(170)를 구현하도록 동작가능한 컴퓨터 실행가능 콤포넌트를, 본 발명에 따라 ASIC(application specific integrated circuit), CD, DVD, ROM, 플로피 디스크, 하드 디스크, EEPROM 및 메모리 스틱을 포함하지만 이에 한정되지 않는 컴퓨터 판독가능 매체에 기억시킬 수 있다.
그 다음 도 6을 참조해 보면, 본 발명의 일 태양에 따른 2치 인코딩 시스템(600)이 도시된다. 2치 인코딩 시스템(600)은 클러스터 형태 추정기(110), 클러스터 콤포넌트로부터의 비트맵 추정부(120), 클러스터 위치 추정기(130), 제1 인코더(140), 제2 인코더(150), 제3 인코더(160) 및/또는 제4 인코더(170)를 포함한다. 또한, 2치 인코딩 시스템(600)은 클러스터링 시스템(610) 및/또는 활동 검출 시스템(620)을 더 포함한다.
클러스터링 시스템(610)은, 복수의 클러스터(예, 접속 콤포넌트)와 관련된 정보를 식별한다. 예를 들어, 이 정보는, 복수의 클러스터(예, 접속 콤포넌트)의 폭(예, x 크기), 높이(예, y 크기), 색, 수평 위치(예, 절대 위치 및/또는 상대 위치) 및/또는 수직 위치(예, 절대 위치 및/또는 상대 위치)를 포함할 수 있다.
활동 검출 시스템(620)은 2치 화상 입력을 수신한다. 예를 들어, 2치 화상 입력은 마스크 분리 콤포넌트(도시하지 않음)로부터 수신된 2진 마스크 또는 (예를 들어, 문서 스캐너 및/또는 팩시밀리 장치로부터) 스캔된 화상일 수 있다. 활동 검출 시스템(620)은 디더링/하프토닝 및/또는 노이즈에 대해 2치 화상을 분석한다. 활동 검출 시스템(620)은 2치 화상 입력에 기초한 2치 화상 출력을 제공하지만, 디더링/하프토닝 및/또는 노이즈를 감소시킨다.
통상, 디더링/하프토닝을 가지는 문서 화상(들)에 기초한 2치 화상은 영역 내에 및/또는 영역과 교차하는 상당량의 접속 콤포넌트(들)를 가진다. 또한, 노이즈를 가지는 2치 화상은 영역 내에 및/또는 영역과 교차하는 콤포넌트(들)를 거의 가지지 못한다. 따라서, 영역 내에 및/또는 영역과 교차하는 접속 콤포넌트(들)의 양을 결정함으로써, 활동 검출 시스템(620)은 디더링/하프토닝 및/또는 노이즈가 존재할 수 있는 구역을 검출할 수 있다.
상술한 디더링을 검출하는 것에 더하여, 활동 검출 시스템(620)은 2치 화상 입력의 노이즈를 검출하도록 더 구성될 수 있다. "노이즈"는, 제거한다면 2치 화상의 완전성을 거의 손상시키지 않는 이질적인 정보(예, 마크(들))를 나타낸다. 2치 화상 입력에서 노이즈를 제거하면, 더 평활해진 화상에 의해 데이터 압축을 향상시킬 수 있다. 통상, 노이즈를 가지는 2치 화상의 영역은 비교적 작은 접속성을 나타낸다. 예를 들어, 흰색 배경 상에 접속 스트레이 마크만을 포함하는 영역은 하나의 접속 콤포넌트를 가질 수 있다.
클러스터링 시스템(610) 및/또는 활동 검출 시스템(620)을, 본 명세서에서 정의된 용어인 하나 이상의 컴퓨터 콤포넌트로서 구현할 수 있음을 인식해야 한다.
그 다음 도 7을 참조하면, 본 발명의 일 태양에 따른 선택가능 2치 인코딩 시스템(700)이 도시된다. 선택가능 2치 인코딩 시스템(700)은 2치 인코딩 시스템(600), 무손실 2치 인코더(710) 및 선택 콤포넌트(720)를 포함한다.
무손실 2치 인코더(710)는 무손실 2치 인코딩 기술(들)을 사용할 수 있다. 예를 들어, 무손실 2치 인코더(710)는 산술 코딩을 사용하지 않는 인코딩 처리(BLC)를 사용할 수 있지만, 이 인코딩 처리의 성능은 JBIG, JBIG-2, JB2와 같은 종래의 코더의 성능과 유사하다. 통상, 2치 코더(BLC;bi-level coder)는 2개의 콘텍스트 기반 적응성 모듈, 즉, 1) 본래 픽셀을 예측 에러 픽셀로 명백하게 매핑하는데 사용되는 저해상 확률 추정에 의해 제어되는 적응성 예측기, 및 2) 예측 에러 픽셀을 인코딩하는 백워드 적응성(backward-adaptive) 진행 길이 라이스(Run-Length-Rice)(이하, 'RLR'이라고 함) 코더를 사용한다. 이는, 콘텍스트 종속 확률 추정이 픽셀 예측 및 적응성 엔트로피 코딩을 모두 제어하는 통상의 접근방식과는 대조적이다. 이러한 단순성 때문에, 다수의 애플리케이션에서, BLC는 다른 종래의 코더보다 좋은 선택일 수 있다.
2치 화상 압축 인코딩은 픽셀 예측 및 예측 에러 발생 과정으로 시작한다. 통상, 픽셀 예측은 주위의 픽셀에 기초한 픽셀값(예, 0 또는 1)의 예측을 가져온다. 구체적으로 말하면, 픽셀 예측은, 콘텍스트 종속 확률 추정을 계산함으로써 달성된다. 콘텍스트는, 본질적으로, 템플릿이라고 하는 패턴을 형성하는 미리 인코딩된 픽셀에 이웃한다. 어떠한 표준 템플릿이라도 본 발명의 목적을 위해 채택될 수 있다. 콘텍스트는 래스터 순서로 소정의 수의 픽셀값의 벡터 목록으로서 관찰될 수 있다. 이 값은 콘텍스트를 고유하게 식별하는 2진 워드를 형성한다. 이 2진 워드를 콘텍스트 인덱스라고 한다.
콘텍스트 종속 확률 추정치는, 먼저 픽셀 확률표를 만들고 초기화함으로써 계산된다. 이는, 초기 확률을 가능한 콘텍스트 인덱스 각각에 할당함으로써 달성된다. 바람직하게는, 초기 확률은 0.5(즉, 콘텍스트 인덱스와 관련된 픽셀이 흑색 또는 흰색일 확률과 동일한 확률)일 수 있다. 그러나, 확률값은 인코더와 디코더간의 임의의 라운드 오프(round-off) 문제를 방지하도록 스케일링(scale)된다. 바람직하게는, 이러한 스케일링은, 픽셀이 흰색인 확률이 100%임을 나타내는 정수값을 선택함으로써 행해진다. 예를 들어, 본 발명의 테스팅된 실시예에서, 숫자 "8"을 사용하였다. 따라서, 상술한 초기값을 표현하는 스케일링된 확률은 "4"일 수 있다.
래스터 순서로 각각의 픽셀에 대해, 미리 인코딩된 픽셀의 패턴과 관련된 콘텍스트 인덱스가 식별되고, 스케일링된 확률이 픽셀 확률표로부터 판독된다. 확률이 0.5 이상(즉, 상술한 예에서, 4 이상의 스케일링된 확률)이면, 고려중인 픽셀이 흰색이라고 예측되고 적당한 2진값(예를 들어, "0" 픽셀값이 바람직함)이 할당된다. 각각의 콘텍스트 인덱스를 만날 때마다, 4의 스케일링된 확률이 확률표의 각각의 콘텍스트 인덱스에 초기에 할당되었기 때문에, 예측은 항상 흰색 픽셀일 것이다. 그 후, 픽셀이 흰색이라고 예측되었으면, 스케일링된 예측값이 소정량만큼(예를 들어, 1만큼) 증가됨으로써 조정되거나, 또는 픽셀이 흑색이라고 예측되었으면, 소정량만큼(예를 들어, 1만큼) 감소됨으로써 조정된다. 스케일링된 확률 조정 동작의 결과가 0보다 작으면, 0값으로 올림하고, 최대 스케일링된 확률값이 - 1보다 크면, 최대 스케일링된 확률값을 - 1로 내림한다. 따라서, 확률은 인코딩되는 화상, 및 예측되는 픽셀 위치에 따라 변화할 수 있다. 이를 백워드 적응성(backward adaptive) 픽셀 예측이라고 하며, 디코더가 디코더로 전송되는 명확한 콘텍스트 확률 정보를 필요로 하지 않고 확률 추정에 대한 동일한 조정을 행할 수 있기 때문이다.
그 후, 예측 에러가 계산된다. 본질적으로는, 예측 에러는, 2치 화상의 각각의 픽셀에 대해 흑색 또는 흰색 중 하나의 예측된 픽셀값을 실제 픽셀값과 비교함으로써 계산된다. 그러면, 부정확한 예측에 관한 데이터만이 전송될 필요가 있다. 대부분의 경우, 예측이 정확하므로, 데이터량의 상당한 절약을 실현시킬 수 있다. 후술하는 바와 같이, 디코더는 동일한 예측 처리를 행하고 에러를 포함하는 동일한 결과를 얻을 것이기 때문에 이는 도움이 된다. 따라서, 픽셀이 경우에 따라 흰색으로부터 흑색으로 또는 흑색으로부터 흰색으로 변화되어 화상을 복원할 수 있도록, 모든 디코더는 예측된 픽셀값 중 어느 것에 에러가 있는지를 알아야 할 필요가 있다. XOR(exclusive OR) 논리를 사용하여 화상의 각각의 픽셀의 실제값이 예측값과 비교될 수 있도록, 2진 기술을 사용하여 예측 에러가 구체적으로 계산된다. 따라서, 실제 픽셀값이 예측값과 일치하면(예를 들어, 모두 0이거나 모두 1이면), "0"이 소위 예측 에러 화상의 일부로서 그 픽셀 위치에 할당된다. 그러나, 실제 픽셀값이 예측값과 다르면, "1"이 예측 에러 화상의 관련된 픽셀 위치에 할당된다.
2치 화상 인코딩의 후속 단계는, 콘텍스트 종속 백워드 적응성 RLR 코딩 과정의 사용을 포함한다. 대개는 예측값이 실제값과 일치함이 발견되었으므로, 예측 에러 화상은 대부분 0으로 이루어진다. 이는, 예측 에러 화상을 그 이상으로 압축할 수 있게 함으로써, 전송될 정보를 더 줄일 수 있다. 예측 에러 화상을 인코딩하기 위해, RLR 인코딩 기술을 사용하는 것이 바람직하다. 통상, RLR 코더는, 2k개의 0의 연속된 진행은 하나의 "0"에 의해 형성된 코드워드에 의해 표현되고, r개(r<2k)의 0의 부분적인 진행 및 후속의 1은 1 및 그 뒤에 오는 r의 k비트 2진 워드 표현에 의해 형성된 코드워드에 의해 표현되는 변수 대 변수 길이 엔트로피 코더이다. 변수 k는, 코드워드가 전송되기 전에 예측 에러 화상에서 발생할 수 있는 0의 최대 진행 길이를 정의한다. 이러한 변수를 조정함으로써, 코딩 동작의 효율을 제어한다. 바람직한 기술은, k를 조정하기 위해 백워드 적응성 접근방식을 사용하는 것이다. 이 접근방식은 k에 대한 초기값을 선택하는 단계, 및 "0" 코드워드가 생성되었는지 또는 "1 + k비트 2진 워드" 코드가 생성되었는지 여부에 따라 인크리먼트(increment)의 증가 또는 감소를 조정하는 단계를 포함한다. 본 발명에 따른 RLR 인코딩 기술은 또한 상술한 콘텍스트에 따라 행해질 수 있다. 구체적으로 말하면, k 변수를 각각의 콘텍스트 인덱스에 할당하는 인코딩 표를 설립한다. 이 인코딩 표는, 후술하는 바와 같이, 2치 화상의 인코딩시 발생할 수 있는 k값에 대한 변화를 반영하도록 갱신된다.
상술한 콘텍스트 종속 백워드 적응성 RLR 인코딩 기술은, 먼저 각각의 콘텍스트 인덱스와 관련된 k값을 소정의 초기값(예, k=2)으로 설정함으로써, 상술한 인코딩 테이블을 초기화하는 단계를 포함한다. 또한, 라이스(Rice) 파라미터 k'로서 정의된 k 변수의 스케일링된 버전을 각각의 콘텍스트에 할당한다. 예를 들어, 단순 스케일링 계수에 현재의 k값을 곱하여, k값보다 클 수 있는 현재의 k'값을 만든다.
예측 에러값이 픽셀 위치에 대해 설립되면, 본 발명에 따른 RLR 코더는, 상술한 예측 에러 결정 처리에서 결정되는 바와 같이, 픽셀 위치와 관련된 콘텍스트 인덱스를 식별한다. 그 후, 이 콘텍스트 인덱스에 현재 할당된 k값은 인코딩 표로부터 판독된다. 고려중인 픽셀 위치가 화상의 래스터 순서에서의 제1 픽셀(즉, 좌측 상부 코너 픽셀)인 경우, 인코딩 테이블로부터 판독된 관련된 k값을 사용하여 진행 길이를 계산하며, 여기서, 진행 길이는 2k인 것이 바람직하다. 이 진행 길이는, "0" 코드워드를 생성하기 위해 존재하여야만 하는 래스터 순서의 연속적인 흰색 픽셀의 수를 표현한다. 후속 예측 에러값이 계산되면, 이 예측 에러값이 "1"인지 "0"인지가 판정된다. 예측 에러값이 "0"이면, 이 예측 에러값이 이전에 계산된 고려중인 진행 길이의 "중간"인지 또는 이 진행 길이의 끝을 표현하는지를 판정한다. 진행 길이의 끝을 표현하지 않으면, 어떠한 코드워드도 생성되지 않는다. 그러나, 예측 에러값이 진행 길이의 끝을 표현하면, "0" 코드워드가 전송된다. 물론, 예측 에러값이 현재 진행 길이의 끝을 표현하는지의 여부를 인식하기 위해, 본 발명에 따른 RLR 코더는 얼마나 많은 "0"을 만났는지 추적해야 한다. 또한, 이는, 인코딩 표에 진행 카운터를 포함함으로써, 행해지는 것이 바람직하다. 구체적으로 말하면, 별도의 진행 카운터가 각각의 콘텍스트 인덱스에 할당될 수 있다. 일 실시예에서, 진행 카운터는 계산된 진행 길이 값으로 초기에 설정될 수 있다. 그 후, 상술한 바와 같이, 시리즈(series)의 첫 번째 것을 포함하는, "0"을 만날 때마다, 카운터는 1씩 감소된다. 카운터가 0에 도달하면, 현재 처리중인 예측 에러값은 현재 진행 길이의 끝이라고 여겨진다. 한편, 진행시 어느 때라도 "1"의 예측 에러값을 만나면, 본 발명에 따른 RLR 코더는 "1 + k비트 2진 워드 코드"를 생성하며, 여기서, k비트 2진 워드는 "1"을 만나기 전에 현재 진행 중에 만난 "0"의 개수를 표현한다. 인카운터링된 "0"의 수는, 진행이 시작한 픽셀 위치와 관련된 콘텍스트 인덱스에 할당된 상술한 진행 카운터를 사용하여 용이하게 결정될 수 있다. 코드워드가 생성되면, 코드워드가 "0"인지 "1 + k비트 2진 워드"인지 간에, 생성된 바로 후속의 예측 에러값을 사용하여 다른 진행을 시작한다. 이는, 예측 에러값의 픽셀 위치와 관련된 콘텍스트 인덱스를 식별함으로써, 또한 상술한 처리를 반복함으로써 이전에 제1 픽셀 위치에 대해 처리했던 것처럼 수행될 수 있다.
또한, 코드워드가 생성될 때마다, 대체로 코드워드를 발생시킨 진행과 관련된 k값이 조정된다. 이는, 다음과 같이 달성되는 것이 바람직하다. 생성된 코드워드가 "0"이었다면, 파라미터 k'는 소정량만큼 증가된다. 이와는 반대로, 코드워드가 "0"이 아니었다면, 파라미터 k'는 소정량만큼 감소된다. 이 소정량은, 원한다면, k'의 현재 값에 따라 변화할 수 있다. 새로운 k'값을 상술한 스케일링 요소로 나눔으로써, 새로운 k값을 계산한다. 그 후, k'의 새로운 값을 인코딩 테이블에 이전의 값 대신 기억시킨다. k'를 정수개의 단계만큼 조정함으로써, RLR 파라미터 k의 미세 조정을 달성할 수 있는데, 이는 최적의 인코딩 성능에 필요하지만, 디코더가 k 조정 단계를 정확하게 추적하게 하는데 필요한 정수 산술만을 유지한다.
선택 콤포넌트(720)는, 무손실 2치 인코더(710)를 사용하는 무손실 2치 인코딩과 2치 인코딩 시스템(예, (무손실 또는 손실) 클러스터를 사용함) 중에서 선택하게 한다. 예를 들어, 사용자의 선호도에 기초하고/거나 2치 인코딩 시스템(600)내의 클러스터링 시스템(610)에 의해 선택할 수 있다. 일례에서, 클러스터링 시스템(610)은 무손실 2치 인코딩으로 처리하는 것이 더 효과적일 것이라 판정하고, 선택 콤포넌트(720)에 무손실 2치 인코더(710)의 선택을 용이하게 하는 출력을 제공한다.
예를 들어, 손수 기입한 표시 또는 다른 그래픽에 대해, 클러스터링 시스템(610)은 (예를 들어, 다수의 반복되는 클러스터가 없기 때문에) 클러스터링이 무손실 2치 인코딩보다 덜 효과적이라고 판정할 수 있다. 따라서, 선택 콤포넌트(720)는 무손실 2치 인코더(710)를 사용하게 한다.
무손실 2치 인코더(710) 및/또는 선택 콤포넌트(720)를, 본 명세서에서 정의된 용어인 하나 이상의 컴퓨터 콤포넌트로서 구현할 수 있다고 인식해야 한다.
그 다음 도 8을 참조해 보면, 본 발명의 태양에 따른 2치 디코딩 시스템(800)을 나타낸다. 2치 디코딩 시스템(800)은, 제1 디코더(810), 제2 디코더(820), 제3 디코더(830), 제4 디코더(840), 클러스터 생성기(850) 및 결합기(860)를 포함한다.
제1 디코더(810)는 (예를 들어, 대응하는 인코더에 의해 생성된) 비트스트림 입력의 적어도 일부를 디코딩하고, 클러스터(들)의 페이지 위치(들)(864)를 제공한다. 예를 들어, 제1 디코더(810)는 비트평면 디코딩을 사용할 수 있다.
제2 디코더(820)는 (예를 들어, 대응하는 인코더에 의해 생성된) 비트스트림 입력의 적어도 일부를 디코딩하고, 디코딩된 사전 위치(868)를 제공한다. 예를 들어, 제2 디코더(820)는 LZX 디코딩을 사용할 수 있다.
제3 디코더(830)는 (예를 들어, 대응하는 인코더에 의해 생성된) 비트스트림 입력의 적어도 일부를 디코딩하고, 디코딩된 형태의 글로벌 사전(872) 및/또는 디코딩된 형태의 페이지 사전(876)을 제공한다. 예를 들어, 제3 디코더(830)는 무손실 2치 디코딩을 사용할 수 있다.
제4 디코더(840)는 (예를 들어, 대응하는 인코더에 의해 생성된) 비트스트림 입력의 적어도 일부를 디코딩하고 언클러스터링된 형태의 스토어(880)를 제공한다. 예를 들어, 제4 디코더(840)는 무손실 2치 디코딩을 사용할 수 있다.
클러스터 생성기(850)는, 적어도 부분적으로는, 페이지 위치, 사전 위치, 및 글로벌 사전 및 페이지 사전 중 적어도 하나에 기초하여 클러스터를 생성한다.
결합기(860)는, 적어도 부분적으로는, 클러스터 생성기(850)에 의해 생성된 클러스터 및/또는 언클러스터링된 형태(들)의 스토어(880)에 기초하여 2치 출력을 제공한다.
상술하고 도시한 예시적인 시스템의 관점에서, 본 발명에 따라 구현될 수 있는 방법을 도 9, 10, 11, 12, 13 및 14의 플로우차트를 참조하면 보다 잘 인식될 것이다. 설명을 간단하게 하기 위해, 이 방법을 일련의 블록으로서 도시하고 설명하지만, 본 발명이 이 블록의 순서에 의해 한정되는 것이 아니고, 본 발명에 따라, 일부 블록은 다른 순서로 발생하고/거나 본 명세서에서 도시하고 설명한 다른 블록과 동시에 발생할 수 있음을 이해해야 한다. 또한, 설명하는 모든 블록이 본 발명에 따른 방법을 구현하는데 필요한 것은 아니다.
본 발명을, 프로그램 모듈과 같이, 하나 이상의 콤포넌트에 의해 실행되는 컴퓨터 실행가능 명령의 일반적인 관점에서 설명한다. 통상, 프로그램 모듈은, 소정의 작업을 행하거나 소정의 추상 데이터형을 구현하는 루틴, 프로그램, 개체, 데이터 구조 등을 포함한다. 통상, 프로그램 모듈의 기능은 다양한 실시예에서 원하는 바에 따라 결합되거나 분산될 수 있다.
도 9를 참조해 보면, 본 발명의 일 태양에 따른 2치 인코딩을 행하는 방법(900)이 나타난다. 910에서, 클러스터 분석을 행한다. 예를 들어, 비트맵과 관련된 접속 콤포넌트 정보를 (예를 들어, 클러스터 형태 추정기(110)에 의해) 분석한다. 접속 콤포넌트 정보는 접속 콤포넌트의 색, 수평 크기, 수직 크기, 수평 위치 및/또는 수직 위치를 포함할 수 있다. 914에서, 클러스터(들)를 추출한다. 예를 들어, 추출된 클러스터(들)를 글로벌 사전, 페이지 사전 및 언클러스터링된 형태의 스토어에 기억시킬 수 있다.
그 다음 920에서, 언클러스터링된 형태(들)를 인코딩한다. 예를 들어, 언클러스터링된 형태(들)는 텍스트 문자가 되기에는 너무 작거나(예를 들어, 제3 임계량보다 작음) 너무 커서(예를 들어, 제4 임계량보다 큼) 양호하게 클러스터링되지 않는 접속 콤포넌트(들)를 포함할 수 있다. 언클러스터링된 형태(들)를 무손실 2치 인코딩을 사용하여 인코딩할 수 있다.
930에서, 글로벌 사전으로의 포인터(들)를 식별한다. 적어도 부분적으로는, 클러스터 분석 및/또는 접속 콤포넌트 정보에 기초하여 포인터(들)를 식별할 수 있다. 940에서, 포인터(들)를 인코딩한다. 일례에서, 클러스터가 페이지상의 위치에 의해 소팅되기 때문에, 인덱스(예, 포인터)는 텍스트 스트링에 적당한 압축 알고리즘(예, LZX 인코딩)을 사용하여 행해지는 텍스트 스트링형 순서 인코딩을 형성하는 경향이 있다.
950에서, 페이지 위치(들)를 식별한다. 이 페이지 위치(들)는 글로벌 사전 및/또는 페이지 사전의 클러스터에 대한 페이지 위치(들)이며, 접속 콤포넌트 정보를 사용하여 페이지 위치를 식별할 수 있다. 따라서, 글로벌 사전 및/또는 페이지 사전의 클러스터에 대해, 접속 콤포넌트 정보, 및 글로벌 사전 또는 페이지 사전으로부터의 사전 엔트리로부터의 특성을 사용하여 페이지상의 클러스터의 위치를 결정할 수 있다. 960에서, 페이지 위치를, 예를 들어, 비트평면 인코딩을 사용하여 인코딩한다.
970에서, 무손실 모드가 바람직한지의 여부를 판정한다. 970에서의 판정이 예라면, 980에서, 잔류 화상(들)을 인코딩하고 처리는 990으로 진행한다. 970에서의 판정이 아니오라면, 처리는 990으로 진행한다. 990에서, 페이지 사전을 인코딩한다. 992에서, 글로벌 사전을 (예를 들어, 무손실 2치 인코딩을 사용하여) 인코딩한다.
그 다음 도 10 및 11을 참조해 보면, 본 발명의 일 태양에 따른 2치 인코딩을 행하는 방법(1000)이 나타난다. 1004에서, 클러스터에 관한 정보(예, 색, 수평 크기, 수직 크기, 수평 위치 및/또는 수직 위치)를 수신한다.
1008에서, 클러스터가 글로벌 사전에 있는지의 여부를 판정한다. 예를 들어, 무손실 모드에서, 클러스터가 글로벌 사전의 클러스터의 제1 임계량 내에 있는지의 여부에 기초하여 판정한다. 또한, 손실 모드에서, 클러스터가 글로벌 사전의 클러스터의 제2 임계량 내에 있는지의 여부에 기초하여 판정한다.
1008에서의 판정이 예라면, 처리는 1012로 진행한다. 1008에서의 판정이 아니오라면, 처리는 1016을 진행하여, 클러스터가 페이지 사전에 있는지의 여부를 판정한다. 1016에서의 판정이 아니오라면, 처리는 1020으로 진행하여, 클러스터를 페이지 사전에 기억시키고, 처리는 1012로 진행한다. 1016에서의 판정이 예라면, 처리는 1024로 진행하여, 클러스터를 글로벌 사전에 기억시킨다. 1028에서, 클러스터를 페이지 사전으로부터 소거하고, 처리는 1012로 진행한다.
1012에서, 클러스터를 비트맵으로부터 추출한다. 그 다음, 1032에서, 더 많은 클러스터(들)가 페이지 상에 있는지의 여부를 판정한다. 1032에서의 판정이 예라면, 처리는 1004로 진행한다. 1032에서의 판정이 아니오라면, 처리는 1036으로 진행하여, 페이지 사전을 인코딩한다. 1040에서, 페이지상의 클러스터(들)에 대한 글로벌 사전 포인터(들)를 식별한다. 1044에서, 페이지상의 클러스터(들)에 대한 글로벌 사전 포인터(들)를 인코딩한다. 그 후, 1048에서, 더 많은 페이지(들)가 있는지의 여부를 판정한다. 1048에서의 판정이 예라면, 처리는 1004로 진행한다. 1048에서의 판정이 아니오라면, 처리는 1052로 진행하여, 글로벌 사전을 인코딩한다.
도 12 및 13를 참조해 보면, 본 발명의 일 태양에 따른 클러스터 분석을 행하는 방법(1200)이 나타난다. 1204에서, 클러스터(들)를 식별한다. 1208에서, 활동 검출을 행한다. 1212에서, 클러스터 분석을 행한다. 1216에서, 언클러스터링된 형태(들)를 인코딩한다. 1220에서, 글로벌 사전으로의 포인터(들)를 식별한다. 1224에서, 포인터(들)를 인코딩한다. 1228에서, 페이지 위치(들)를 식별한다. 1232에서, 페이지 위치(들)를 인코딩한다. 1236에서, 무손실 모드가 바람직한지의 여부를 판정한다. 1236에서의 판정이 예라면, 처리는 1240으로 진행하여, 잔류 화상(들)을 인코딩하고, 처리는 1244로 진행한다. 1236에서의 판정이 아니오라면, 처리는 1244로 진행한다. 1244에서, 페이지 사전을 인코딩한다. 1248에서, 글로벌 사전을 인코딩한다.
도 14를 참조해 보면, 본 발명의 일 태양에 따른 2치 디코딩을 행하는 방법(1400)이 나타난다. 1410에서, 페이지 위치(들)를 디코딩한다. 1420에서, 사전 위치(들)를 디코딩한다. 1430에서, 글로벌 사전을 디코딩한다. 1440에서, 페이지 사전을 디코딩한다. 1450에서, 언클러스터링된 형태(들)를 디코딩한다. 1460에서, 적어도 부분적으로는, 페이지 위치(들), 사전 위치(들) 및 글로벌 사전 및/또는 페이지 사전에 기초하여 클러스터(들)를 생성한다. 1470에서, 생성된 클러스터(들) 및 언클러스터링된 형태(들)를 결합하여, 예를 들어, 2치 화상을 형성한다.
본 발명의 시스템 및/또는 방법은 텍스트, 핸드라이팅, 그림, 화상 등의 압축을 용이하게 하는 전체 압축 시스템에 사용될 수 있다는 것을 인식해야 한다. 또한, 당업자는 본 발명의 시스템 및/또는 방법이, 태블릿 개인용 컴퓨터, 광복사기, 문서 스캐너, 광학 문자 인식 시스템, PDA, 팩시밀리 장치, 디지털 카메라, 디지털 비디오 카메라 및/또는 비디오 게임을 포함하지만 이에 한정되지 않는 다양한 문서 화상 애플리케이션에 사용될 수 있다는 것을 인식할 수 있다.
본 발명의 다양한 태양에 대한 추가적인 내용을 제공하기 위해, 도 15 및 다음과 같은 설명은, 본 발명의 다양한 태양을 구현할 수 있는 적당한 오퍼레이팅 환경(1510)의 간단하고 통상적인 설명을 제공하기 위한 것이다. 본 발명을 프로그램 모듈과 같이 하나 이상의 컴퓨터 또는 다른 장치에 의해 실행되는 컴퓨터 실행가능 명령어의 관점에서 설명하지만, 당업자는 본 발명이 다른 프로그램 모듈과 함께 및/또는 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다는 것을 인식할 수 있다. 그러나, 통상, 프로그램 모듈은, 소정의 작업을 행하거나 소정의 데이터형을 구현하는 루틴, 프로그램, 개체, 콤포넌트, 데이터 구조 등을 포함한다. 오퍼레이팅 환경(1510)은 적당한 오퍼레이팅 환경의 일례일 뿐이고, 본 발명의 사용 또는 기능의 범위를 한정하고자 하는 것은 아니다. 본 발명에 사용하기 적당할 수 있는 다른 공지의 컴퓨터 시스템, 환경 및/또는 구성은, 개인용 컴퓨터, 휴대형 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 프로그래밍가능 소비자 가전 제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상술한 시스템 또는 장치를 포함하는 분산 컴퓨팅 환경 등을 포함하지만, 이에 한정되지 않는다.
도 15를 참조하면, 본 발명의 다양한 태양을 구현하기 위한 예시적인 환경(1510)은 컴퓨터(1512)를 포함한다. 이 컴퓨터(1512)는 처리부(1514), 시스템 메모리(1516) 및 시스템 버스(1518)를 포함한다. 이 시스템 버스(1518)는 시스템 메모리(1516)를 포함하지만 이에 한정되지 않는 시스템 콤포넌트를 처리부(1514)에 접속시킨다. 처리부(1514)는 다양한 입수가능한 프로세서 중 어떠한 프로세서도 될 수 있다. 또한, 듀얼 마이크로프로세서 및 다른 멀티프로세서 아키텍쳐가 처리부(1514)로서 사용될 수 있다.
시스템 버스(1518)는, 15비트 버스, 산업 표준 아키텍쳐(ISA;Industrial Standard Architecture), 마이크로 채널 아키텍쳐(MSA;Micro-Channel Architecture), 확장된 ISA(EISA;Extended ISA), 지능 드라이브 일렉트로닉스(IDE;Intelligent Drive Electronics), VESA 로컬 버스(VLB;VESA Local Bus), 주변 콤포넌트 상호접속(PCI;Peripheral Component Interconnect), 범용 시리얼 버스(USB;Universal Serial Bus), 향상된 그래픽 포트(AGP;Advanced Graphics Port), 국제 개인용 컴퓨터 메모리 카드 협회(PCMCIA;Personal Computer Memory Card International Association) 버스, 및 소형 컴퓨터 시스템 인터페이스(SCSI;Small Computer Systems Interface)를 포함하지만 이에 한정되지 않는 다양한 입수가능한 버스 아키텍쳐를 사용하는 메모리 버스 또는 메모리 제어기, 주변 버스 또는 외부 버스, 및/또는 로컬 버스를 포함하는 수 개 형태의 버스 구조 중 임의의 버스 구조(들)일 수 있다.
시스템 메모리(1516)는 휘발성 메모리(1520) 및 비휘발성 메모리(1522)를 포함한다. 시동 중과 같이, 컴퓨터(1512)내의 구성요소들간의 정보 전송을 위한 기본 루틴을 포함하는 기본 입출력 시스템(BIOS)이 비휘발성 메모리(1522)에 기억되어 있다. 설명을 위해, 비휘발성 메모리(1522)는 ROM, PROM, EPROM, EEPROM 또는 플래시 메모리를 포함하지만, 이에 한정되지 않는다. 비휘발성 메모리(1520)는 외부의 캐시 메모리로서 기능하는 RAM을 포함한다. 설명을 위해, RAM은, SRAM, DRAM, SDRAM, DDR SDRAM, ESDRAM, SLDRAM, 및 DRRAM과 같은 다수의 형태로 입수가능하지만, 이에 한정되지 않는다.
또한, 컴퓨터(1512)는 이동식/비이동식, 휘발성/비휘발성 컴퓨터 기억 매체를 포함한다. 예를 들어, 도 15는 디스크 기억 장치(1524)를 나타낸다. 이 디스크 기억 장치(1524)는, 자기 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 재즈(Jazz) 드라이브, 집(Zip) 드라이브, LS-100 드라이브, 플래시 메모리 카드, 메모리 스틱과 같은 장치를 포함하지만, 이에 한정되지 않는다. 또한, 디스크 기억 장치(1514)는, CD-ROM, CD-R 드라이브, CD-RW 드라이브, 또는 DVD-ROM과 같은 광 디스크 드라이브를 포함하지만 이에 한정되지 않는 다른 기억 매체와 결합한 기억 매체 또는 별도의 기억 매체를 포함할 수 있다. 디스크 기억 장치(1524)의 시스템 버스(1518)에의 접속을 용이하게 하기 위해, 통상적으로 인터페이스(1526)와 같은 이동식 또는 비이동식 인터페이스를 사용한다.
도 15는, 사용자와 적당한 오퍼레이팅 환경(1510)에 나타낸 기본 컴퓨터 자원간의 중재자로서 기능하는 소프트웨어를 나타낸다고 인식할 것이다. 이러한 소프트웨어는 운영 체제(1528)를 포함한다. 디스크 기억 장치(1524)에 기억될 수 있는 운영 체제(1528)는 컴퓨터 시스템(1512)의 자원을 제어, 할당하는 기능을 한다. 시스템 애플리케이션(1530)은 시스템 메모리(1516) 또는 디스크 기억 장치(1524)에 기억된 프로그램 모듈(1532) 및 프로그램 데이터(1534)를 통해 운영 체제(1528)에 의한 자원의 관리를 이용한다. 본 발명은 다양한 운영 체제 또는 운영 체제의 조합으로 구현될 수 있다고 인식되어야 한다.
사용자는 입력 장치(들)(1536)를 통해 명령 또는 정보를 컴퓨터(1512)에 입력한다. 입력 장치(1536)는, 마우스와 같은 포인팅 장치, 트랙볼, 스타일러스, 터치 패드, 키보드, 마이크로폰, 조이 스틱, 게임 패드, 위성 안테나, 스캐너, TV 튜너 카드, 디지털 카메라, 디지털 비디오 카메라, 웹 카메라 등을 포함하지만, 이에 한정되지 않는다. 이러한 입력 장치 및 그 외의 입력 장치는 시스템 버스(1518)를 통해 인터페이스 포트(들)(1538)를 거쳐 처리부(1516)에 접속된다. 예를 들어, 인터페이스 포트(들)(1538)는, 직렬 포트, 병렬 포트, 게임 포트, 범용 시리얼 버스(USB)를 포함한다. 출력 장치(들)(1540)는 입력 장치(들)(1536)와 동일한 형태의 포트의 일부를 사용한다. 따라서, 예를 들어, 입력을 컴퓨터(1512)에 제공하기 위해, 또한 컴퓨터(1512)로부터 출력 장치(1540)로 정보를 출력하기 위해 USB 포트를 사용할 수 있다. 특수한 어댑터를 필요로 하는 다른 출력 장치(1540) 사이에 모니터, 스피커, 프린터와 같은 일부 출력 장치(1540)가 있다는 것을 나타내기 위해 출력 어댑터(1542)가 제공된다. 설명을 위해, 출력 어댑터(1542)는, 출력 장치(1540)와 시스템 버스(1518)간의 접속 수단을 제공하는 비디오 및 사운드 카드를 포함하지만, 이에 한정되지 않는다. 원격 컴퓨터(들)(1544)와 같이, 다른 장치 및/또는 장치의 시스템이 입력 및 출력 기능을 제공한다는 것을 유의한다.
컴퓨터(1512)는, 원격 컴퓨터(들)(1544)와 같은 하나 이상의 원격 컴퓨터에의 논리 접속을 사용하는 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(들)(1544)는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 워크스테이션, 마이크로프로세서 기반 가전제품, 피어 장치 또는 다른 공통 네트워크 노드 등일 수 있고, 컴퓨터(1512)에 대해 설명한 구성요소의 다수 또는 전체를 포함한다. 간단하게 설명하기 위해, 메모리 기억 장치(1546)만이 원격 컴퓨터(들)(1544)에 나타낸다. 원격 컴퓨터(들)(1544)는 네트워크 인터페이스(1548)를 통해 컴퓨터(1512)에 논리적으로 접속되고, 통신 접속부(1550)를 통해 물리적으로 접속된다. 네트워크 인터페이스(1548)는, LAN 및 WAN과 같은 통신 네트워크를 포함한다. LAN 기술은, 광섬유 분산 데이터 인터페이스(FDDI;Fiber Distributed Data Interface), 동선 분산 데이터 인터페이스(CDDI;Copper Distributed Data Interface), 이더넷/IEEE 1502.3, 토큰 링/IEEE 1502.5 등을 포함한다. WAN 기술은, 포인트 투 포인트 링크, ISDN(Integrated Services Digital Network)과 같은 회로 스위칭 네트워크 및 변형물, 패킷 스위칭 네트워크, 및 디지털 가입자 회선(DSL;Digital Subscriber Lines)을 포함하지만, 이에 한정되지 않는다.
통신 접속부(들)(1550)는 네트워크 인터페이스(1548)를 시스템 버스(1518)에 접속시키기 위해 사용되는 하드웨어/소프트웨어를 나타낸다. 명확하게 설명하기 위해, 통신 접속부(1550)를 컴퓨터(1512) 내부에 도시하였지만, 컴퓨터(1512) 외부에 있을 수도 있다. 네트워크 인터페이스(1548)에의 접속에 필요한 하드웨어/소프트웨어는, 예시적인 설명만을 위해, 일반적인 전화 등급 모뎀, 케이블 모뎀 및 DSL 모뎀을 포함하는 모뎀, ISDN 어댑터, 및 이더넷 카드와 같은 내부 및 외부 기술을 포함한다.
상술한 설명은 본 발명의 실시예를 포함한다. 물론, 본 발명을 설명하기 위한 콤포넌트 또는 방법의 모든 인지가능한 조합을 설명할 수는 없지만, 당업자는 본 발명의 다수의 다른 조합 및 치환이 가능하다는 것을 인식할 수 있다. 따라서, 본 발명은 첨부된 특허청구범위의 사상 및 범위 내에서 이러한 모든 대체, 변형 및 변화를 포함하는 것으로 의도된 것이다. 또한, 상세한 설명 또는 특허청구범위에서 "includes"라는 용어를 사용하는 한, 이러한 용어는, 청구항에서 전이부로서 "comprising"이 사용될 때 해석되는 바와 같이, "comprising"이라는 용어와 유사하게 포괄적인 것으로서 의도된 것이다.
본 발명에 따른 시스템 및 방법은, 잉크 클러스터의 명확한 표현을 가지는 2치 화상의 압축을 용이하게 할 수 있다.

Claims (59)

  1. 2치 인코딩 시스템으로서,
    문서와 관련된 접속 콤포넌트 정보를 분석하고, 클러스터(cluster)를 추출하고, 상기 클러스터를 형태의 글로벌 사전, 형태의 페이지 사전 및 언클러스터링된(unclustered) 형태의 스토어(store) 중 적어도 하나에 기억시키는 클러스터 형태 추정기;
    상기 글로벌 사전에 기억된 클러스터들에 대한 사전 위치를 결정하는 클러스터 콤포넌트로부터의 비트맵 추정부; 및
    상기 문서상의 상기 글로벌 사전 및 상기 페이지 사전 중 적어도 하나의 클러스터들의 페이지 위치를 결정하는 클러스터 위치 추정기
    를 포함하는 2치 인코딩 시스템.
  2. 제1항에 있어서,
    상기 클러스터 위치 추정기로부터 수신된 상기 페이지 위치를 인코딩하는 제1 인코더를 더 포함하는 2치 인코딩 시스템.
  3. 제2항에 있어서,
    상기 클러스터 콤포넌트로부터의 비트맵 추정부로부터 수신된 상기 사전 위치를 인코딩하는 제2 인코더를 더 포함하는 2치 인코딩 시스템.
  4. 제3항에 있어서,
    상기 페이지 사전 및 상기 글로벌 사전 중 적어도 하나를 인코딩하는 제3 인코더를 더 포함하는 2치 인코딩 시스템.
  5. 제4항에 있어서,
    상기 언클러스터링된 형태의 스토어를 인코딩하는 제4 인코더를 더 포함하는 2치 인코딩 시스템.
  6. 제1항에 있어서,
    상기 접속 콤포넌트 정보는, 상기 접속 콤포넌트들의 색, 수평 크기, 수직 크기, 수평 위치 및 수직 위치 중 적어도 하나를 포함하는 2치 인코딩 시스템.
  7. 제1항에 있어서,
    상기 페이지 위치는 클러스터들간의 수평 갭(gap)을 포함하는 2치 인코딩 시스템.
  8. 제1항에 있어서,
    상기 페이지 위치는 평균 수직 위치를 포함하는 2치 인코딩 시스템.
  9. 제8항에 있어서,
    상기 페이지 위치는, 상기 평균 수직 위치와 클러스터의 수직 위치간의 차이를 더 포함하는 2치 인코딩 시스템.
  10. 제2항에 있어서,
    상기 제1 인코더는 비트평면 인코딩을 사용하는 2치 인코딩 시스템.
  11. 제3항에 있어서,
    상기 제2 인코더는 LZX 인코딩을 사용하는 2치 인코딩 시스템.
  12. 제4항에 있어서,
    상기 제3 인코더는 무손실 2치 인코딩을 사용하는 2치 인코딩 시스템.
  13. 제5항에 있어서,
    상기 제4 인코더는 무손실 2치 인코딩을 사용하는 2치 인코딩 시스템.
  14. 제1항에 있어서,
    상기 클러스터 형태 추정기는 클러스터와 상기 기억된 클러스터의 가중된 평균에 기초하여 상기 글로벌 사전에 기억된 클러스터를 수정하는 2치 인코딩 시스템.
  15. 제1항의 2치 인코딩 시스템을 사용하는 사진 복사기.
  16. 제1항의 2치 인코딩 시스템을 사용하는 문서 스캐너.
  17. 제1항의 2치 인코딩 시스템을 사용하는 광학 문자 인식 시스템.
  18. 제1항의 2치 인코딩 시스템을 사용하는 PDA(personal digital assistant).
  19. 제1항의 2치 인코딩 시스템을 사용하는 팩시밀리 장치.
  20. 제1항의 2치 인코딩 시스템을 사용하는 디지털 카메라.
  21. 제1항의 2치 인코딩 시스템을 사용하는 디지털 비디오 카메라.
  22. 제1항의 2치 인코딩 시스템을 사용하는 세그먼트 계층적 화상 시스템.
  23. 제1항의 2치 인코딩 시스템을 사용하는 비디오 게임을 기록한 컴퓨터 판독가능 매체.
  24. 제1항의 2치 인코딩 시스템을 사용하는 태블릿 개인용 컴퓨터.
  25. 2치 인코딩 시스템으로서,
    복수의 접속 콤포넌트와 관련된 정보를 식별하는 클러스터링 시스템;
    문서와 관련된 접속 콤포넌트 정보를 분석하고, 클러스터를 추출하고, 상기 클러스터를 형태의 글로벌 사전, 형태의 페이지 사전 및 언클러스터링된 형태의 스토어 중 적어도 하나에 기억시키는 클러스터 형태 추정기;
    상기 글로벌 사전에 기억된 클러스터들에 대한 사전 위치를 결정하는 클러스터 콤포넌트로부터의 비트맵 추정부; 및
    상기 문서상의 상기 글로벌 사전 및 상기 페이지 사전 중 적어도 하나의 클러스터들의 페이지 위치를 결정하는 클러스터 위치 추정기
    를 포함하는 2치 인코딩 시스템.
  26. 제25항에 있어서,
    상기 클러스터 위치 추정기로부터 수신된 상기 페이지 위치를 인코딩하는 제1 인코더를 더 포함하는 2치 인코딩 시스템.
  27. 제26항에 있어서,
    상기 클러스터 콤포넌트로부터의 비트맵 추정부로부터 수신된 상기 사전 위치를 인코딩하는 제2 인코더를 더 포함하는 2치 인코딩 시스템.
  28. 제27항에 있어서,
    상기 페이지 사전 및 상기 글로벌 사전 중 적어도 하나를 인코딩하는 제3 인코더를 더 포함하는 2치 인코딩 시스템.
  29. 제28항에 있어서,
    상기 언클러스터링된 형태의 스토어를 인코딩하는 제4 인코더를 더 포함하는 2치 인코딩 시스템.
  30. 제25항에 있어서,
    상기 접속 콤포넌트 정보는, 접속 콤포넌트들의 수평 크기, 수직 크기, 수평 위치 및 수직 위치 중 적어도 하나를 포함하는 2치 인코딩 시스템.
  31. 제25항에 있어서,
    2치 화상 입력에 기초하여 2치 화상 출력을 제공하는 활동 검출 시스템을 더 포함하며, 상기 2치 화상 출력은, 감소된 디더링(dithering)/하프토닝(half toning) 및 감소된 노이즈 중 적어도 하나를 갖는 2치 인코딩 시스템.
  32. 제26항에 있어서,
    상기 제1 인코더는 비트평면 인코딩을 사용하는 2치 인코딩 시스템.
  33. 제27항에 있어서,
    상기 제2 인코더는 LZX 인코딩을 사용하는 2치 인코딩 시스템.
  34. 제28항에 있어서,
    상기 제3 인코더는 무손실 2치 인코딩을 사용하는 2치 인코딩 시스템.
  35. 제29항에 있어서,
    상기 제4 인코더는 무손실 2치 인코딩을 사용하는 2치 인코딩 시스템.
  36. 2치 인코딩 방법으로서,
    클러스터 분석을 행하는 단계;
    언클러스터링된 형태를 인코딩하는 단계;
    글로벌 사전으로의 포인터를 식별하는 단계; 및
    상기 포인터를 인코딩하는 단계
    를 포함하는 2치 인코딩 방법.
  37. 제36항에 있어서,
    클러스터의 페이지 위치를 식별하는 단계;
    상기 페이지 위치를 인코딩하는 단계;
    페이지 사전을 인코딩하는 단계; 및
    상기 글로벌 사전을 인코딩하는 단계 중 적어도 한 단계를 더 포함하는 2치 인코딩 방법.
  38. 제36항에 있어서,
    잔류(residual) 화상을 인코딩하는 단계;
    클러스터를 식별하는 단계; 및
    활동 검출을 행하는 단계 중 적어도 한 단계를 더 포함하는 2치 인코딩 방법.
  39. 제37항에 있어서,
    상기 클러스터 분석을 행하는 단계는,
    클러스터가 상기 글로벌 사전에 있는지의 여부를 판정하는 단계;
    상기 클러스터가 상기 글로벌 사전에 있지 않으면, 상기 클러스터가 상기 페이지 사전에 있는지의 여부를 판정하는 단계;
    상기 클러스터가 상기 페이지 사전에 있으면, 상기 클러스터를 상기 글로벌 사전에 기억시키는 단계;
    상기 클러스터가 상기 페이지 사전에 있으면, 상기 클러스터를 상기 글로벌 사전으로부터 소거하는 단계;
    상기 클러스터가 상기 페이지 사전에 있지 않으면, 상기 클러스터를 상기 페이지 사전에 기억시키는 단계; 및
    상기 클러스터를 비트맵으로부터 추출하는 단계 중 적어도 한 단계를 포함하는 2치 인코딩 방법.
  40. 2치 인코딩 시스템의 컴퓨터 실행가능 콤포넌트를 기억하는 컴퓨터 판독가능 매체로서,
    상기 2치 인코딩 시스템은,
    문서와 관련된 접속 콤포넌트 정보를 분석하고, 클러스터를 추출하고, 상기 클러스터를 형태의 글로벌 사전, 형태의 페이지 사전 및 언클러스터링된 형태의 스토어 중 적어도 하나에 기억시키는 클러스터 형태 추정기;
    상기 글로벌 사전에 기억된 클러스터들에 대한 사전 위치를 결정하는 클러스터 콤포넌트로부터의 비트맵 추정부; 및
    상기 문서상의 상기 글로벌 사전 및 상기 페이지 사전 중 적어도 하나의 클러스터들의 페이지 위치를 결정하는 클러스터 위치 추정기
    를 포함하는 컴퓨터 판독가능 매체.
  41. 제40항에 있어서,
    상기 2치 인코딩 시스템은,
    상기 클러스터 위치 추정기로부터 수신된 상기 페이지 위치를 인코딩하는 제1 인코더를 더 포함하는 컴퓨터 판독가능 매체.
  42. 제41항에 있어서,
    상기 2치 인코딩 시스템은,
    상기 클러스터 콤포넌트로부터의 비트맵 추정부로부터 수신된 상기 사전 위치를 인코딩하는 제2 인코더를 더 포함하는 컴퓨터 판독가능 매체.
  43. 제42항에 있어서,
    상기 2치 인코딩 시스템은,
    상기 페이지 사전 및 상기 글로벌 사전 중 적어도 하나를 인코딩하는 제3 인코더를 더 포함하는 컴퓨터 판독가능 매체.
  44. 제43항에 있어서,
    상기 2치 인코딩 시스템은,
    상기 언클러스터링된 형태의 스토어를 인코딩하는 제4 인코더를 더 포함하는 컴퓨터 판독가능 매체.
  45. 2치 인코딩 시스템으로서,
    문서와 관련된 접속 콤포넌트 정보에 기초하여 클러스터 형태를 분석하기 위한 수단;
    클러스터를 추출하고, 상기 클러스터를 형태의 글로벌 사전, 형태의 페이지 사전 및 언클러스터링된 형태의 스토어 중 적어도 하나에 기억시키기 위한 수단;
    상기 글로벌 사전에 기억된 클러스터에 대한 사전 위치를 결정하기 위한 수단; 및
    상기 문서상의 상기 글로벌 사전 및 상기 페이지 사전 중 적어도 하나의 클러스터의 페이지 위치를 결정하기 위한 수단
    을 포함하는 2치 인코딩 시스템.
  46. 제45항에 있어서,
    상기 페이지 위치를 인코딩하기 위한 수단을 더 포함하는 2치 인코딩 시스템.
  47. 제46항에 있어서,
    상기 사전 위치를 인코딩하기 위한 수단을 더 포함하는 2치 인코딩 시스템.
  48. 제47항에 있어서,
    상기 페이지 사전 및 상기 글로벌 사전 중 적어도 하나를 인코딩하기 위한 수단을 더 포함하는 2치 인코딩 시스템.
  49. 제48항에 있어서,
    상기 언클러스터링된 형태의 스토어를 인코딩하기 위한 수단을 더 포함하는 2치 인코딩 시스템.
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
KR1020030021361A 2002-04-25 2003-04-04 2치 인코딩 시스템, 사진 복사기, 문서 스캐너, 광학 문자 인식 시스템, pda, 팩시밀리 장치, 디지털 카메라, 디지털 비디오 카메라, 세그먼트 계층적 화상 시스템, 비디오 게임을 기록한 컴퓨터 판독가능 매체, 태블릿 개인용 컴퓨터, 2치 인코딩 방법, 컴퓨터 판독가능 매체 KR100938100B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/133,532 2002-04-25
US10/133,532 US7206450B2 (en) 2002-04-25 2002-04-25 Compression of bi-level images with explicit representation of ink clusters

Publications (2)

Publication Number Publication Date
KR20030084600A KR20030084600A (ko) 2003-11-01
KR100938100B1 true KR100938100B1 (ko) 2010-01-21

Family

ID=29215619

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030021361A KR100938100B1 (ko) 2002-04-25 2003-04-04 2치 인코딩 시스템, 사진 복사기, 문서 스캐너, 광학 문자 인식 시스템, pda, 팩시밀리 장치, 디지털 카메라, 디지털 비디오 카메라, 세그먼트 계층적 화상 시스템, 비디오 게임을 기록한 컴퓨터 판독가능 매체, 태블릿 개인용 컴퓨터, 2치 인코딩 방법, 컴퓨터 판독가능 매체

Country Status (6)

Country Link
US (3) US7206450B2 (ko)
EP (1) EP1359544A3 (ko)
JP (1) JP4733911B2 (ko)
KR (1) KR100938100B1 (ko)
CN (1) CN100363924C (ko)
TW (1) TWI250787B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206450B2 (en) * 2002-04-25 2007-04-17 Microsoft Corporation Compression of bi-level images with explicit representation of ink clusters
JP4766230B2 (ja) * 2005-03-23 2011-09-07 富士ゼロックス株式会社 符号化装置、データ処理装置、復号化装置及びプログラム
JP4687263B2 (ja) * 2005-06-13 2011-05-25 富士ゼロックス株式会社 符号化装置、復号化装置、符号化方法、復号化方法及びこれらのプログラム
TWI257771B (en) * 2005-08-08 2006-07-01 Lite On Technology Corp Method for print quality enhancement by lossless image compression (JPEG-LS) technology and system thereof
US7599556B2 (en) * 2005-08-25 2009-10-06 Joseph Stanley Czyszczewski Apparatus, system, and method for scanning segmentation
JP4817821B2 (ja) 2005-12-01 2011-11-16 キヤノン株式会社 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP5082512B2 (ja) * 2007-03-08 2012-11-28 富士ゼロックス株式会社 情報処理装置、画像処理装置、画像符号化装置、情報処理プログラム、画像処理プログラム及び画像符号化プログラム
JP4881237B2 (ja) * 2007-06-29 2012-02-22 株式会社東芝 画面転送装置およびその方法ならびに画像転送のためのプログラム
KR101454208B1 (ko) * 2007-12-28 2014-10-24 삼성전자주식회사 하프톤 영상 인코딩 및 디코딩 방법 및 장치
JP2009188995A (ja) * 2008-02-08 2009-08-20 Toshiba Corp 画像処理装置および画像処理方法
CN102667863B (zh) * 2009-12-23 2017-03-29 诺基亚技术有限公司 使用二值化传感器确定颜色信息
US8676122B2 (en) * 2010-08-27 2014-03-18 Gregory H. Piesinger Secure satellite modem for personal digital assistant method and apparatus
CN102169497B (zh) * 2011-04-13 2013-04-17 浪潮(北京)电子信息产业有限公司 一种通过位图方式管理元数据的方法及装置
WO2014116262A1 (en) 2013-01-28 2014-07-31 Empire Technology Development Llc Communication using handwritten input
WO2014178840A1 (en) 2013-04-30 2014-11-06 Hewlett-Packard Development Company, L.P. Creation of a hierarchical dictionary
US9437236B2 (en) * 2013-11-04 2016-09-06 Michael Hugh Harrington Encoding data
TWI514840B (zh) * 2014-10-20 2015-12-21 Univ Nat Taipei Technology 半色調資料隱寫編碼系統及半色調資料隱寫解碼系統
WO2020129299A1 (ja) * 2018-12-18 2020-06-25 三井金属鉱業株式会社 積層シート及びその使用方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06339030A (ja) * 1993-05-31 1994-12-06 Nec Corp 領域形状符号化・復号化方式
JPH10164374A (ja) 1996-12-03 1998-06-19 Nec Corp パタン符号化方式及び復号化方式とこの方式を用いた符号化装置及び復号化装置
KR20010025113A (ko) * 1999-03-30 2001-03-26 요트.게.아. 롤페즈 이미지 압축
EP1246085A2 (en) 2001-03-28 2002-10-02 Eastman Kodak Company Event clustering of images using foreground/background segmentation

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS604373A (ja) * 1983-06-22 1985-01-10 Hitachi Ltd パタ−ン情報圧縮方式
JPS60210069A (ja) * 1984-04-02 1985-10-22 Ricoh Co Ltd 文書情報符号化方法
US4668995A (en) * 1985-04-12 1987-05-26 International Business Machines Corporation System for reproducing mixed images
JPH03157064A (ja) * 1989-11-15 1991-07-05 Nec Corp 画像情報圧縮伝送方式
US5696842A (en) * 1991-07-04 1997-12-09 Ricoh Company, Ltd. Image processing system for adaptive coding of color document images
JPH0537700A (ja) * 1991-07-26 1993-02-12 Ricoh Co Ltd フアクシミリ装置
JP2910000B2 (ja) * 1991-12-19 1999-06-23 国際電信電話 株式会社 2値画像混在静止自然画像の符号化方法
JPH06152983A (ja) * 1992-11-04 1994-05-31 Nippon Telegr & Teleph Corp <Ntt> 画像符号化方法
JP3231105B2 (ja) * 1992-11-30 2001-11-19 富士通株式会社 データ符号化方式及びデータ復元方式
JP3350118B2 (ja) * 1992-11-30 2002-11-25 富士通株式会社 データ符号化方式及びデータ復元方式
JPH06178124A (ja) * 1992-12-08 1994-06-24 Fuji Xerox Co Ltd 画像データ圧縮伸長装置
JPH06274311A (ja) * 1993-03-19 1994-09-30 Fujitsu Ltd データ圧縮装置及びデータ復元装置
JPH089166A (ja) * 1994-06-17 1996-01-12 Nec Corp 複写電送装置
US6104834A (en) * 1996-08-01 2000-08-15 Ricoh Company Limited Matching CCITT compressed document images
JP4260908B2 (ja) * 1997-06-25 2009-04-30 株式会社日本デジタル研究所 ランレングス符号化方法および画像処理装置
US6020972A (en) * 1997-11-14 2000-02-01 Xerox Corporation System for performing collective symbol-based compression of a corpus of document images
US6088478A (en) * 1998-02-13 2000-07-11 Xerox Corporation Method and apparatus for distinguishing bold face characters
EP0954181B1 (en) * 1998-04-28 2007-12-26 Canon Kabushiki Kaisha Data processing apparatus and method
US6256415B1 (en) * 1998-06-10 2001-07-03 Seiko Epson Corporation Two row buffer image compression (TROBIC)
US6477280B1 (en) 1999-03-26 2002-11-05 Microsoft Corporation Lossless adaptive encoding of finite alphabet data
JP4424845B2 (ja) * 1999-12-20 2010-03-03 本田 正 イメージデータ圧縮方法及び復元方法
US7218784B1 (en) * 2000-05-01 2007-05-15 Xerox Corporation Method and apparatus for controlling image quality and compression ratios
JP3636983B2 (ja) * 2000-10-23 2005-04-06 日本放送協会 符号化装置
US7206450B2 (en) * 2002-04-25 2007-04-17 Microsoft Corporation Compression of bi-level images with explicit representation of ink clusters
US7164797B2 (en) * 2002-04-25 2007-01-16 Microsoft Corporation Clustering

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06339030A (ja) * 1993-05-31 1994-12-06 Nec Corp 領域形状符号化・復号化方式
JPH10164374A (ja) 1996-12-03 1998-06-19 Nec Corp パタン符号化方式及び復号化方式とこの方式を用いた符号化装置及び復号化装置
KR20010025113A (ko) * 1999-03-30 2001-03-26 요트.게.아. 롤페즈 이미지 압축
EP1246085A2 (en) 2001-03-28 2002-10-02 Eastman Kodak Company Event clustering of images using foreground/background segmentation

Also Published As

Publication number Publication date
TW200306113A (en) 2003-11-01
EP1359544A3 (en) 2011-11-16
CN1453724A (zh) 2003-11-05
US20030202708A1 (en) 2003-10-30
CN100363924C (zh) 2008-01-23
JP4733911B2 (ja) 2011-07-27
US7206450B2 (en) 2007-04-17
KR20030084600A (ko) 2003-11-01
US20080175501A1 (en) 2008-07-24
EP1359544A2 (en) 2003-11-05
JP2003333341A (ja) 2003-11-21
US7317838B2 (en) 2008-01-08
TWI250787B (en) 2006-03-01
US20070242888A1 (en) 2007-10-18

Similar Documents

Publication Publication Date Title
US7317838B2 (en) Compression of bi-level images with explicit representation of ink clusters
US7164797B2 (en) Clustering
US7376266B2 (en) Segmented layered image system
KR100937542B1 (ko) 세그먼트된 계층화 이미지 시스템
JP4295537B2 (ja) マスクを利用して文書画像の圧縮を容易にするシステムおよび方法
Martins et al. Lossless, near-lossless, and refinement coding of bilevel images
JP3085932B2 (ja) マスクを用いた予測映像発生装置及びその装置を用いた2進映像の圧縮、伝送及び復元装置
Grailu et al. An improved pattern matching technique for lossy/lossless compression of binary printed Farsi and Arabic textual images
JPH10108011A (ja) データ処理装置
US7702154B2 (en) Method and apparatus indentifying halftone regions within a digital image
JP4743884B2 (ja) 画像符号化装置及びその制御方法
US7076109B2 (en) System and method of automatically determining the dominant periodicity in sequential binary data
Alegre Memory-efficient algorithms for raster document image compression
Figuera et al. A new approach to JBIG2 binary image compression
Alegre MEMORY-EFFICIENT ALGORITHMS FOR RASTER
JPH10126624A (ja) 画像符号化装置および画像復号装置
JP4743883B2 (ja) 画像符号化装置およびその制御方法
Domaszewicz Encoding algorithms for fractal compression
Kavitha et al. INTERNATIONAL ITU-T STANDARD STILL IMAGE COMPRESSION TECHNIQUES FOR GROUP 3 & GROUP 4 CODED IMAGES--A SURVEY
Zhang Document image compression via pattern matching
JP2002077627A (ja) 画像符号化方法、画像符号化装置、画像復号化方法、画像復号化装置、画像形成装置及び記録媒体
JPH11215381A (ja) 符号化装置、及び復号化装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131227

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 11