KR20070091178A - 디지털 화상 분할 및 콤팩트한 표현 생성 - Google Patents

디지털 화상 분할 및 콤팩트한 표현 생성 Download PDF

Info

Publication number
KR20070091178A
KR20070091178A KR1020077015120A KR20077015120A KR20070091178A KR 20070091178 A KR20070091178 A KR 20070091178A KR 1020077015120 A KR1020077015120 A KR 1020077015120A KR 20077015120 A KR20077015120 A KR 20077015120A KR 20070091178 A KR20070091178 A KR 20070091178A
Authority
KR
South Korea
Prior art keywords
color
pixels
tile
digital image
objects
Prior art date
Application number
KR1020077015120A
Other languages
English (en)
Other versions
KR100926193B1 (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
Priority claimed from AU2004242419A external-priority patent/AU2004242419A1/en
Priority claimed from AU2004242421A external-priority patent/AU2004242421A1/en
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20070091178A publication Critical patent/KR20070091178A/ko
Application granted granted Critical
Publication of KR100926193B1 publication Critical patent/KR100926193B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/16Image preprocessing
    • G06V30/162Quantising the image signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30176Document
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Abstract

컬러 문서의 콤팩트한 표현을 자동으로 생성하기 위한 방법(100), 장치, 및 컴퓨터 프로그램 제품이 개시되어 있다. 이 방법에서는, 컬러 문서 페이지의 디지털 화상이 원패스, 블록 래스터 순서로 연결 컴포넌트들로 분할된다(110). 페이지의 디지털 화상은 페이지 전체의 콤팩트한 연결 컴포넌트 통계에 기초한 레이아웃 분석(120)을 이용하여 전경 및 배경 화상들로 파티션된다. 전경 화상의 적어도 일부분이 배경 화상을 가리는 배경 화상의 적어도 일부분이 원패스 블록 래스터 순서로 인페인팅된다(520). 전경 및 배경 화상들이 결합(130)되어 콤팩트한 문서를 형성한다. 복수의 픽셀들을 포함하는 디지털 화상을 분할하기 위한 방법, 장치, 및 컴퓨터 프로그램 제품도 개시되어 있다.
디지털 화상, 픽셀, 분할, 연결 컴포넌트, 컬러 문서, 원패스 블록 래스터 순서

Description

디지털 화상 분할 및 콤팩트한 표현 생성{SEGMENTING DIGITAL IMAGE AND PRODUCING COMPACT REPRESENTATION}
<저작권 통지>
이 특허 명세서는 저작권 보호를 받는 자료를 포함한다. 저작권 소유자는 이 특허 명세서 또는 관련 자료를 검토의 목적으로 관련 특허청 파일들로부터 복사하는 것에 대해서는 이의가 없지만, 그렇지 않은 경우에는 모든 저작권을 보유한다.
<기술 분야>
본 발명은 일반적으로 디지털 화상 처리 분야에 관한 것으로 특히 디지털 화상의 고레벨 기술(high-level descriptions)에 관한 것이다.
화상 분할(image segmentation)은 하나의 화상을 의미적으로 또는 시각적으로 코히런트(coherent)한 영역들로 분할 또는 분리하는 처리이다. 각 영역은 유사한 속성 또는 속성들을 갖는 연결된 픽셀들의 그룹이다. 분할을 위한 기본 속성은 모노크롬 화상에 대한 휘도 진폭 및 컬러 화상에 대한 컬러 성분들이다.
점점 증가하는 계산 처리 능력과 결합된 스캐닝 기술의 확산으로 문서 분석 시스템들의 분야에서 많은 진보가 이루어졌다. 이들 시스템들은 스캔된 문서로부 터, 종종 OCR 기술에 의하여, 의미 정보(semantic information)를 추출하는 데 이용될 수 있다. 그러한 시스템들은 또한 페이지의 각 부분의 내용에 따라서 적절한 압축 방법을 선택적으로 이용함으로써 문서 화상의 압축을 향상시키는 데 이용될 수도 있다. 향상된 문서 압축은 기록 보존(archiving) 및 전자 배포(electronic distribution)와 같은 응용들에 적합하다.
분할은 문서 화상 분석을 위한 처리 단계로, 여기서는 영역 분류 및 레이아웃 분석과 같은 보다 고레벨의 처리들이 수행될 수 있기 전에 먼저 저레벨의 픽셀들이 프리미티브 오브젝트들로 분할되어야 한다. 레이아웃 분석은 문서 레이아웃에 관한 몇몇 미리 정해진 규칙들에 따라서 프리미티브 오브젝트들을 알려진 오브젝트 타입들로 분류한다. 전형적으로, 레이아웃 분석은 원래의 스캔된 화상 데이터를 분석하지 않고, 대신에 페이지의 분할로부터의 블롭(blob)들 또는 연결된 컴포넌트들과 같은 대체 데이터 세트를 가지고 작업한다. 레이아웃 분석은 개개의 오브젝트 속성들 외에 오브젝트 그룹화(object grouping)를 이용하여 그들의 분류(classification)를 결정할 수 있다.
이하에서 화상 분할을 위한 다수의 기존 방법들이 설명된다.
문턱치화(thresholding)는 분할을 위한 가장 간단한 방법이고 처리될 화상이 바이-레벨(bi-level)(예컨대, 흑백 문서 화상)이면 빠르고 효과적일 수 있다. 그러나, 화상이 다수의 휘도 또는 컬러 레벨들의 영역들로 복잡하다면, 이들 영역들의 일부는 이진화(binarisation) 중에 유실될 수 있다. 더욱 정교한 문턱치화 기법들은 적응적(adaptive) 또는 멀티-레벨(multilevel) 문턱치화를 채용하는데, 여 기서는 문턱치 추정 및 이진화가 로컬 레벨에서 수행된다. 그러나, 이들 방법들도 오브젝트들을 정확히 분할하지 못할 수 있다.
k-평균 및 벡터 양자화와 같은 클러스터링 기반 방법들은 양호한 분할 결과를 생성하는 경향이 있지만, 다수의 패스(pass)를 필요로 하는 반복 알고리즘들이다. 따라서, 그러한 방법은 느리고 구현하기 어려울 수 있다.
분할-및-병합(split-and-merge) 화상 분할 기법들은 쿼드트리(quadtree) 데이터 표현에 기초하는 것으로, 여기서는 원래의 화상 세그먼트의 속성이 균일하지 않으면 정사각형 화상 세그먼트가 4개의 쿼드런트(quadrant)들로 분할된다. 4개의 이웃 정사각형들이 균일한 것으로 확인되면, 이들 정사각형들은 그 4개의 이웃 정사각형들로 이루어진 단일 정사각형에 의해 병합된다. 분할 및 병합 처리는 통상적으로 완전한 화상 레벨에서 시작한다. 따라서, 전체 페이지가 버퍼링된 후에만 처리가 시작될 수 있어, 높은 메모리 대역폭을 필요로 한다. 더욱이, 이 접근법은 연산 집약적(computationally intensive)인 경향이 있다.
영역 확장(region-growing)은 화상 분할을 위한 잘 알려진 방법으로 개념적으로 가장 단순한 접근법들 중 하나이다. 유사한 속성 또는 속성들을 갖는 이웃 픽셀들이 함께 그룹화되어 세그먼트 영역을 형성한다. 그러나, 실제로는, 수용할 수 있는 결과를 달성하기 위해 확장 패턴에 상당히 복잡한 제약이 가해져야 한다. 기존의 영역 확장 방법들은 최초 시드(seed) 위치를 향하여 치우치는 경향이 있다는 점에서 몇몇 바람직하지 않은 결과를 가질 수 있다. 상이한 시드들의 선택은 상이한 분할 결과들을 낼 수 있고, 만일 시드 포인트(seed point)가 에지 상에 있 다면 문제가 생길 수 있다.
점점 증가하는 계산 처리 능력과 결합된 스캐닝 기술의 확산으로 문서 분석 시스템들의 분야에서 많은 진보가 이루어졌다. 이들 시스템들은, 종종 OCR 기술에 의하여, 스캔된 문서로부터 의미 정보를 추출하는 데 이용될 수 있다. 이 기술은 자동화 서식 판독(automated form reading)과 같은 증대하는 수의 애플리케이션들에서 이용되고, 또한 페이지의 각 부분의 내용에 따라서 적절한 압축 방법을 선택적으로 사용함으로써 문서의 압축을 향상시키는 데 이용될 수도 있다. 향상된 문서 압축은 기록 보존 및 전자 배포와 같은 애플리케이션들에 적합하다.
일부 문서 분석 시스템들은 문서를 그 내용에 따라서 분류된 영역들로 분해하기 위해 레이아웃 분석을 수행한다. 전형적으로, 레이아웃 분석은 원래의 스캔된 화상 데이터를 분석하지 않고, 페이지의 분할로부터의 블롭들 및 연결 컴포넌트(connected component)들과 같은 대체 데이터 세트를 가지고 작업한다. 레이아웃 분석은 개개의 오브젝트 속성들 외에 오브젝트 그룹화(object grouping)를 이용하여 그들의 분류를 결정할 수 있다.
일반적으로, 레이아웃 분석을 위한 데이터를 발생시키기 위해 페이지의 이진 분할이 수행되고, 이것은 단순히 원래의 화상을 문턱치화함으로써 얻어질 수 있다. 이 이진 분할의 하나의 이점은 분할된 오브젝트들이 레이아웃 분석을 돕는 단순한 포함 계층구조(containment hierarchy) 내에 있다는 점이다. 유감스럽게도, 다수의 복잡한 컬러 문서들의 레이아웃은 절대로 이진 화상에 의해 완전히 표현될 수 없다. 이진 화상 변환에 대한 컬러 고유의 정보 내용의 감소로 인해 중요한 특징 들이 퇴화할 수 있고 심지어는 문서의 상세 구조가 상실될 수 있다.
그러므로 페이지 문서 분석의 컬러 분할은 페이지의 내용을 보전하는 점에서 이점을 갖지만, 추가적인 복잡성을 가져온다. 첫째로, 분할 분석 자체가 더욱 복잡해지고 처리 요건들이 증가한다. 다음으로, 분할된 페이지 오브젝트들의 분석은 그 오브젝트들이 포함 계층구조를 형성하지 않는다는 사실 때문에 복잡해진다. 이것은 레이아웃 분석의 정확성 및 효율을 제한한다.
문서 레이아웃 분석 시스템들은 또한 문서의 영역의 텍스트 분류를 검증하기 위한 기법들을 채용할 수도 있다. 이들 방법들 중 일부는 픽셀 합들의 히스토그램 분석, 섀도잉 및 프로파일 투영(projected profiles)을 이용한다. 이들 방법들은 종종 신뢰할 수 없는데, 그 이유는 로버스트 통계(robust statistics)가 그러한 방법에 적용되기 어렵고 또한 단일 라인 또는 다수의 라인들일 수 있고 문서 내의 텍스트의 정렬 및 문자 세트가 알려지지 않은 텍스트에 대하여 조정(tune)하기가 어렵기 때문이다.
<발명의 요약>
본 발명의 제1 양태에 따르면, 복수의 픽셀들을 포함하는 디지털 화상을 분할하는 방법이 제공된다. 이 방법은, 상기 디지털 화상으로부터 복수의 픽셀들의 블록들을 발생시키는 단계와; 원패스 방식(one-pass manner)으로 상기 픽셀들의 블록들을 이용하여 각 블록에 대하여 적어도 하나의 연결 컴포넌트를 생성하는 단계를 포함한다. 그리고, 상기 생성하는 단계는, 픽셀들의 블록을 적어도 하나의 연결 컴포넌트로 분할하는 단계 - 각 연결 컴포넌트는 공간적으로 연결되고 의미적으 로 관련된 픽셀들의 그룹을 포함함 - 와; 상기 블록의 상기 적어도 하나의 연결 컴포넌트를 이전에 처리된 적어도 하나의 다른 블록으로부터 분할된 적어도 하나의 연결 컴포넌트와 병합하는 단계와; 상기 블록의 상기 연결 컴포넌트들의 상기 화상 내의 위치를 콤팩트한 형태로 저장하는 단계를 포함한다.
상기 의미적으로 관련된 픽셀들은 유사하게 채색된 픽셀들을 포함할 수 있다.
상기 발생시키는 단계는, 세부단계(sub-step)들로서, 상기 디지털 화상을 복수의 밴드(band)들로 배열하는 단계 - 각 밴드는 픽셀들의 미리 정해진 수의 연속적인 라인들을 포함함 - 와; 상기 밴드들을 하나씩 버퍼링 및 처리하는 단계를 포함할 수 있다. 그리고, 상기 처리하는 단계는, 각각의 현재 버퍼링된 밴드에 대하여 수행되는 세부단계들로서, 상기 현재의 밴드를 복수의 픽셀들의 블록들로 배열하는 단계와; 상기 생성하는 단계를 위하여 상기 현재의 밴드의 블록들을 하나씩 버퍼링 및 처리하는 단계를 포함한다.
상기 저장하는 세부단계는, M-1 이진 비트맵들을 저장하는 단계를 포함할 수 있고, 여기서 한 블록에는 M-연결 컴포넌트들이 있고, M은 정수이다.
상기 저장하는 세부단계는, 인덱스 맵을 저장하는 단계를 포함할 수 있다.
상기 분할하는 세부단계는, 각 블록에 대한 지배 컬러들의 수를 추정하는 단계와; 각 블록을 상기 지배 컬러들로 양자화하는 단계와; 각 양자화된 블록으로부터 연결 컴포넌트들을 형성하는 단계를 포함할 수 있다. 상기 분할하는 세부단계는, 형성되어 있는 상기 연결 컴포넌트들의 서브세트를 병합하는 단계를 더 포함할 수 있다. 상기 병합하는 세부단계는 상기 연결 컴포넌트들의 통계를 수집하는 단계를 포함할 수 있다. 상기 통계는 바운딩 박스(bounding boxes), 픽셀 카운트, 경계 길이(border length), 및 평균 컬러(average colour) 중 어느 하나 이상을 포함할 수 있다. 상기 방법은 노이즈인 것으로 생각되는 상기 형성된 연결 컴포넌트들을 제거하는 단계를 더 포함할 수 있다. 상기 노이즈는 미리 정의된 문턱값(threshold)보다 작은 픽셀 카운트 및 또 다른 미리 정의된 문턱값보다 큰 경계 길이 대 픽셀 카운트 비(border-length-to-pixel-count ratio)를 갖는 연결 컴포넌트들을 포함할 수 있다. 상기 병합하는 단계는, 블록의 연결 컴포넌트들을 왼쪽과 위쪽에 있는 블록의 연결 컴포넌트들과 병합하는 단계와; 상기 병합된 연결 컴포넌트들의 통계를 업데이트하는 단계를 포함할 수 있다. 상기 통계는 바운딩 박스, 픽셀 카운트, 채움 비율(fill ratio), 및 평균 컬러 중 어느 하나 이상을 포함할 수 있다.
상기 추정하는 세부단계는, 각 블록 내의 픽셀들의 YUV 데이터에 기초하여 복수의 컬러 빈(colour bin)들에 관련된 히스토그램을 형성하는 단계와; 히스토그램 통계에 기초하여 각 블록을 분류하는 단계와; 상기 블록 분류에 기초하여 상기 지배 컬러들을 형성하기 위해 빈 컬러들을 병합하는 단계를 포함할 수 있다. 상기 방법은 원패스로 각 픽셀에 대한 인덱스 맵을 형성하는 단계를 더 포함할 수 있다. 상기 양자화하는 단계는, 비어 있지 않은 빈들(non-empty bins)을 지배 컬러들로 양자화하는 단계와; 상기 지배 컬러들로의 빈 매핑(bin mapping)을 생성하는 단계와; 상기 빈 매핑을 이용하여 상기 인덱스 맵을 상기 지배 컬러들에 다시 매핑하는 단계를 포함할 수 있다. 상기 형성하는 세부단계는, Y 값에 기초하여 휘도 밴드(luminance band)를 결정하는 단계와; U 및 V 값에 기초하여 컬러 칼럼(colour column)을 결정하는 단계와; 상기 매핑된 빈에 상기 픽셀 컬러를 누산하는 단계와; 상기 매핑된 빈의 픽셀 카운트를 증가시키는 단계를 포함할 수 있다. 휘도 밴드를 결정하는 상기 단계는 휘도 밴드 앤티 에일리어싱(anti-aliasing)을 더 포함할 수 있다. 컬러 칼럼을 결정하는 상기 단계는 컬러 칼럼 앤티 에일리어싱을 더 포함할 수 있다.
상기 병합하는 단계는, 상기 왼쪽 및 위쪽 경계에 접촉하는 현재의 블록 내의 각 연결 컴포넌트에 대하여 수행되는 세부단계들로서, 공통 경계를 따라서 상기 현재의 연결 컴포넌트에 접촉하는 연결 컴포넌트들의 리스트를 찾는 단계와; 병합하기 위한 최량의 후보를 결정하는 단계를 포함할 수 있다.
본 발명의 다른 양태에 따르면, 전술한 방법의 양태들 중 어느 하나에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 분할하기 위한 프로세서 및 메모리를 포함하는 장치가 제공된다.
본 발명의 또 다른 양태에 따르면, 전술한 방법의 양태들 중 어느 하나에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 분할하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 또 다른 양태에 따르면, 컬러 문서의 콤팩트한 표현(compact representation)을 자동으로 생성하는 방법이 제공된다. 이 방법은, 원패스의 블 록 래스터 순서(one-pass, block raster order)로 컬러 문서 페이지의 디지털 화상을 연결 컴포넌트들로 분할하는 단계와; 상기 페이지의 디지털 화상을 상기 페이지 전체의 콤팩트한 연결 컴포넌트 통계에 기초한 레이아웃 분석을 이용하여 전경 및 배경 화상들로 파티션(partitioning)하는 단계와; 상기 전경 화상의 적어도 일부분이 상기 배경 화상을 가리는 상기 배경 화상의 적어도 일부분을 원패스 블록 래스터 순서로 인페인팅(inpainting)하는 단계와; 상기 전경 및 배경 화상들을 결합하여 콤팩트한 문서를 형성하는 단계를 포함한다.
상기 방법은 상기 배경 화상을 다운샘플링(downsampling)하는 단계를 더 포함할 수 있다. 또한, 상기 방법은 상기 배경 화상을 압축하는 단계를 더 포함할 수 있다. 상기 압축하는 단계는 손실 압축(lossy compression)을 수반할 수 있다. 또한, 상기 방법은 상기 손실 압축된 배경 화상의 상이한 압축을 포함할 수 있다.
본 발명의 다른 양태에 따르면, 전술한 방법의 양태들 중 어느 하나에 따라서 컬러 문서의 콤팩트한 표현을 자동으로 생성하기 위한 프로세서 및 메모리를 포함하는 장치가 제공된다.
본 발명의 또 다른 양태에 따르면, 전술한 방법의 양태들 중 어느 하나에 따 라서 컬러 문서의 콤팩트한 표현을 자동으로 생성하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 또 다른 양태에 따르면, 복수의 픽셀들을 포함하는 디지털 화상을 분석하는 방법이 제공된다. 이 방법은, 상기 디지털 화상을 오브젝트들로 분할하 는 단계 - 여기서 분할은 3 이상의 라벨들에 의해 표현됨 - 와; 각 오브젝트에 대한 속성들의 세트를 제공하는 단계와; 상기 오브젝트들의 서브세트에 대하여, 포함의 측정(measure of containment)을 이용하여 경계를 공유하는 인접한 오브젝트들 간에 부모-자식 관계가 존재하는지를 판정하는 단계와; 오브젝트 속성들에 기초하여 공통 부모를 공유하는 오브젝트들의 그룹들을 형성하는 단계와; 오브젝트들을 그들의 속성들 및 그룹화에 따라서 분류하는 단계를 포함한다.
상기 포함은 각 오브젝트 주위의 바운딩 박스들 및 오브젝트들 간의 접촉 관계를 기술하는 정보를 이용하여 결정될 수 있다. 2개의 오브젝트가 경계에서 접촉하고 한 오브젝트의 바운딩 박스가 다른 오브젝트의 바운딩 박스를 완전히 포함한다면 상기 한 오브젝트가 상기 다른 오브젝트를 포함한다.
상기 그룹들을 형성하는 단계는, 공통 부모의 자식들의 리스트로부터 자식 오브젝트들의 쌍들을 고려하는 단계와; 오브젝트 속성들을 이용하여 각 쌍이 함께 그룹화되어야 하는지를 판정하는 단계를 포함할 수 있다. 동일 부모를 갖는 자식 오브젝트들의 리스트로부터 서로 이웃하는 오브젝트들만이 그룹화를 위해 고려될 수 있다. 오브젝트들은 바운딩 박스 및 컬러 정보에 기초하여 그룹화될 수 있다.
오브젝트들의 그룹은 그 그룹 내의 오브젝트들의 유사 텍스트 품질들(text-like qualities)의 테스트에 따라서 텍스트로서 분류될 수 있다. 상기 유사 텍스트 품질들의 테스트는, 각 오브젝트의 위치를 나타내는 각 오브젝트에 대한 단일 값을 식별하는 단계와; 상기 값들의 히스토그램을 형성하는 단계와; 상기 히스토그램의 속성에 의해 텍스트를 식별하는 단계를 포함할 수 있다.
상기 방법은 오브젝트들의 속성들에 따라서, 그러나 그들의 부모-자식 속성들에는 관계없이, 텍스트-분류된 오브젝트들의 그룹에 부가적인 오브젝트들을 추가하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 양태에 따르면, 문서 페이지의 복수의 픽셀들을 포함하는 디지털 화상을 분석하는 방법이 제공된다. 이 방법은, 상기 화상에 기초한 오브젝트들을 형성하기 위하여 상기 디지털 화상을 분할하는 단계와; 상기 오브젝트들의 그룹들을 형성하는 단계와; 상기 오브젝트들의 그룹들이 각각 텍스트를 나타내는지를 판정하는 단계를 포함한다. 상기 판정하는 단계는, 상기 페이지 상의 각 오브젝트의 위치에 따라서 각 오브젝트에 대한 단일 값을 식별하는 단계와; 상기 값들의 히스토그램을 형성하는 단계와; 상기 히스토그램의 속성에 의해 텍스트를 식별하는 단계를 포함한다.
상기 히스토그램의 속성은 특정된 수보다 많은 오브젝트들을 갖는 상기 히스토그램에서의 빈(bin)들 내의 오브젝트들의 총수일 수 있다. 대안적으로, 상기 속성은 상기 히스토그램에서의 카운트들의 제곱의 합일 수 있다.
각 오브젝트의 위치를 나타내는 각 오브젝트에 대한 단일 값은 상기 오브젝트의 바운딩 박스의 에지일 수 있다.
본 발명의 다른 양태에 따르면, 전술한 양태들 중 어느 하나에 따른 방법에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 분석하기 위한 프로세서 및 메모리를 포함하는 장치가 제공된다.
본 발명의 다른 양태에 따르면, 전술한 양태들 중 어느 하나에 따른 방법에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 분석하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 또 다른 양태에 따르면, 복수의 픽셀들을 포함하는 디지털 화상을 인페인팅(inpainting)하는 방법이 제공된다. 이 방법은, 상기 디지털 화상으로부터 복수의 픽셀들의 블록들을 발생시키는 단계와; 적어도 하나의 블록에 대한 픽셀들의 적어도 하나의 런(run)의 픽셀 값들을 래스터 순서로 변경하는 단계를 포함한다. 상기 변경하는 단계는, 각 블록에 대하여 수행되는 세부단계들로서, 한 오브젝트에 관한 블록 내의 픽셀들의 런에 대한 시작 및 끝 픽셀들을 결정하는 단계 - 상기 런은 함께 그룹화된 인접한 픽셀들을 포함함 - 와; 상기 런 외부의 픽셀들의 픽셀 값들에 따라서 상기 런 내의 상기 오브젝트의 적어도 하나의 픽셀 값을 수정하는 단계와; 상기 블록 내의 오브젝트에 대응하지 않는 픽셀들에 대한 액티비티 측정치(activity measure)를 결정하는 단계와; 상기 블록에 대한 액티비티 측정치가 미리 정해진 문턱값보다 작다면 픽셀들의 적어도 하나의 런을 갖는 각 블록 내의 모든 픽셀 값들을 설정 값으로 변경하는 단계를 포함한다.
상기 방법은 상기 오브젝트 외부의 팽창된(delated) 오브젝트 픽셀의 적어도 하나의 픽셀 값을 상기 팽창된 오브젝트 외부의 픽셀들의 픽셀 값들에 따라서 수정하는 단계를 더 포함할 수 있다.
상기 발생시키는 단계는, 세부단계들로서, 상기 디지털 화상을 복수의 밴드들로 배열하는 단계 - 각 밴드는 픽셀들의 미리 정해진 수의 연속 라인들을 포함함 - 와; 상기 밴드들을 하나씩 버퍼링 및 처리하는 단계를 포함할 수 있다. 상기 처리하는 단계는, 각각의 현재 버퍼링된 밴드에 대하여 수행되는 세부단계들로서, 상기 현재의 밴드를 복수의 픽셀들의 블록들로 배열하는 단계와; 상기 변경하는 단계들을 위하여 상기 현재의 밴드의 블록들을 하나씩 버퍼링 및 처리하는 단계를 포함할 수 있다.
상기 런은 상기 블록의 픽셀들의 래스터 라인 내의 인접한 픽셀들을 포함한다.
상기 방법은 블록 기반 압축 방법을 이용하여 각 블록을 압축하는 단계를 더 포함할 수 있다. 상기 블록 기반 압축 방법은 JPEG일 수 있다. 상기 방법은 상기 블록 기반 압축된 블록들을 또 다른 압축 기법을 이용하여 더 압축하는 단계를 더 포함할 수 있다.
상기 오브젝트의 상기 적어도 하나의 픽셀 값은 상기 오브젝트 외부의 픽셀들의 픽셀 값들에 따라서 수정될 수 있고 상기 런의 왼쪽 및 오른쪽의 픽셀 값들로부터 보간(interpolate)된 값, 또는 상기 런의 왼쪽의 픽셀로부터의 값을 이용한다.
픽셀들의 적어도 하나의 런을 갖는 각 블록 내의 모든 픽셀 값들은 이전에 처리된 블록의 평균 값 또는 상기 블록 내의 가시 픽셀들(visible pixels)의 평균 값으로 변경될 수 있다.
상기 방법은, 팽창된 오브젝트 픽셀들의 런의 끝을 찾지 못하면, 픽셀들의 컬러 값들을 상기 팽창된 오브젝트 픽셀들의 런의 왼쪽의 오브젝트에 대응하지 않 는 픽셀의 컬러 값으로 설정하는 단계를 더 포함할 수 있다.
상기 픽셀 값들은 컬러 값들일 수 있다.
본 발명의 또 다른 양태에 따르면, 전술한 양태들 중 어느 하나의 방법에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 인페인팅하기 위한 프로세서 및 메모리를 포함하는 장치가 제공된다.
본 발명의 또 다른 양태에 따르면, 전술한 양태들 중 어느 하나의 방법에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 인페인팅하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 또 다른 양태에 따르면, 복수의 픽셀들을 포함하는 디지털 화상 - 상기 픽셀들 중 적어도 일부가 상기 화상 내의 오브젝트에 대응함 - 의 픽셀 값들을 변경하는 방법으로서, 상기 디지털 화상을 복수의 밴드들로 배열하는 단계 - 각 밴드는 픽셀들의 미리 정해진 수의 연속 라인들을 포함함 - 와; 상기 밴드들을 하나씩 차례로 버퍼링 및 처리하는 단계를 포함하는 방법이 제공된다. 상기 처리하는 단계는, 각각의 현재 버퍼링된 밴드에 대한 세부단계들로서, 상기 현재의 밴드를 복수의 픽셀들의 블록들로 배열하는 단계와; 상기 블록들을 하나씩 차례로 처리하는 단계를 포함한다. 상기 블록 처리 단계는, 각 블록에 대한 세부단계들로서, 상기 화상 내의 오브젝트들에 대응하지 않는 상기 블록 내의 픽셀들에 대한 액티비티 측정치를 결정하는 단계와; 상기 액티비티 측정치가 미리 정해진 문턱값보다 작다면, 상기 블록 내의 모든 픽셀들의 픽셀 값들을 한 픽셀 값으로 변경하는 단계 와; 상기 블록을 JPEG로 압축하는 단계와; 상기 JPEG 압축된 블록을 또 다른 압축 방법을 이용하여 압축하는 단계를 포함한다.
상기 밴드들은 각각 상기 디지털 화상의 픽셀들의 16 라인들을 포함할 수 있고, 상기 블록들은 16×16 픽셀들을 포함하고, 상기 압축 단계들은 파이프라인 방식으로 수행된다.
상기 블록 내의 모든 픽셀들의 컬러 값들을 변경하는 단계는 상기 픽셀들의 컬러 값들을, 팽창된 오브젝트 픽셀들의 런의 바로 왼쪽 및 오른쪽의 오브젝트들에 대응하지 않는 픽셀들 간을 선형 보간함으로써 얻어지는 컬러 값들로 설정하는 단계를 포함할 수 있고, 상기 팽창된 오브젝트 픽셀들은 상기 런의 외부에 인접한 픽셀들이다.
상기 방법은 상기 블록 내의 픽셀들의 컬러 값들을 상기 블록 내의 오브젝트에 대응하지 않는 픽셀들의 평균 컬러 값으로 설정하는 단계를 더 포함할 수 있다.
상기 방법은 상기 블록 내의 픽셀들의 컬러 값들을 선행 블록의 평균 컬러로 설정하는 단계를 더 포함할 수 있다.
팽창된 오브젝트의 픽셀들은 상기 오브젝트의 위치를 정의하는 마스크를 팽창시킴으로써 결정될 수 있다.
상기 다른 압축 방법은 ZLIB를 포함할 수 있다.
상기 픽셀 값들은 컬러 값들일 수 있다.
본 발명의 또 다른 양태에 따르면, 전술한 양태들의 어느 하나의 방법에 따라서, 복수의 픽셀들을 포함하는 디지털 화상 - 상기 픽셀들 중 적어도 일부가 상 기 화상 내의 오브젝트에 대응함 - 의 픽셀 값들을 변경하기 위한 프로세서 및 메모리를 포함하는 장치가 제공된다.
본 발명의 또 다른 양태에 따르면, 전술한 양태들의 어느 하나의 방법에 따라서, 복수의 픽셀들을 포함하는 디지털 화상 - 상기 픽셀들 중 적어도 일부가 상기 화상 내의 오브젝트에 대응함 - 의 픽셀 값들을 변경하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 또 다른 양태에 따르면, 복수의 픽셀들을 포함하는 디지털 화상을 분할하는 방법이 제공된다. 이 방법은, 상기 디지털 화상으로부터 복수의 픽셀들의 블록들을 발생시키는 단계와; 원패스 방식으로 상기 픽셀들의 블록들을 이용하여 각 블록에 대하여 적어도 하나의 연결 컴포넌트를 생성하는 단계를 포함한다. 그리고, 상기 생성하는 단계는, 픽셀들의 블록을 적어도 하나의 연결 컴포넌트로 분할하는 단계 - 각 연결 컴포넌트는 공간적으로 연결되고 의미적으로 관련된 픽셀들의 그룹을 포함함 - 와; 상기 블록의 상기 적어도 하나의 연결 컴포넌트를 이전에 처리된 적어도 하나의 다른 블록으로부터 분할된 적어도 하나의 연결 컴포넌트와 병합(merging)하는 단계와; 상기 블록의 상기 연결 컴포넌트들의 상기 화상 내의 위치를 콤팩트한 형태로 저장하는 단계를 포함한다.
상기 의미적으로 관련된 픽셀들은 유사하게 채색된 픽셀들을 포함할 수 있다.
상기 저장하는 세부단계는, M-1 이진 비트맵들을 저장하는 단계를 포함할 수 있고, 여기서 한 블록에 M-연결 컴포넌트들이 있고, M은 정수이다.
상기 저장하는 세부단계는, 인덱스 맵을 저장하는 단계를 포함할 수 있다.
상기 분할하는 세부단계는, 각 블록에 대한 지배 컬러들의 수를 추정하는 단계와; 각 블록을 상기 지배 컬러들로 양자화하는 단계와; 각 양자화된 블록으로부터 연결 컴포넌트들을 형성하는 단계를 포함할 수 있다. 상기 분할하는 세부단계는, 형성되어 있는 상기 연결 컴포넌트들의 서브세트를 병합하는 단계를 더 포함할 수 있다. 상기 병합하는 세부단계는 상기 연결 컴포넌트들의 통계를 수집하는 단계를 포함할 수 있다. 상기 통계는 바운딩 박스, 픽셀 카운트, 경계 길이, 및 평균 컬러 중 어느 하나 이상을 포함할 수 있다. 상기 방법은 노이즈인 것으로 생각되는 상기 형성된 연결 컴포넌트들을 제거하는 단계를 더 포함할 수 있다. 상기 노이즈는 미리 정의된 문턱값(threshold)보다 작은 픽셀 카운트 및 또 다른 미리 정의된 문턱값보다 큰 경계 길이 대 픽셀 카운트 비(border-length-to-pixel-count ratio)를 갖는 연결 컴포넌트들을 포함할 수 있다. 상기 병합하는 단계는, 블록의 연결 컴포넌트들을 왼쪽과 위쪽에 있는 블록의 연결 컴포넌트들과 병합하는 단계와; 상기 병합된 연결 컴포넌트들의 통계를 업데이트하는 단계를 포함할 수 있다. 상기 통계는 바운딩 박스, 픽셀 카운트, 채움 비율(fill ratio), 및 평균 컬러 중 어느 하나 이상을 포함할 수 있다.
상기 추정하는 세부단계는, 각 블록 내의 픽셀들의 YUV 데이터에 기초하여 복수의 컬러 빈들에 관련된 히스토그램을 형성하는 단계와; 히스토그램 통계에 기초하여 각 블록을 분류하는 단계와; 상기 블록 분류에 기초하여 상기 지배 컬러들 을 형성하기 위해 빈 컬러들을 병합하는 단계를 포함할 수 있다. 상기 방법은 원패스로 각 픽셀에 대한 인덱스 맵을 형성하는 단계를 더 포함할 수 있다. 상기 양자화하는 단계는, 비어 있지 않은 빈들을 지배 컬러들로 양자화하는 단계와; 상기 지배 컬러들에 대한 빈 매핑을 생성하는 단계와; 상기 빈 매핑을 이용하여 상기 인덱스 맵을 상기 지배 컬러들에 다시 매핑하는 단계를 포함할 수 있다. 상기 형성하는 세부단계는, Y 값에 기초하여 휘도 밴드를 결정하는 단계와; U 및 V 값에 기초하여 컬러 칼럼을 결정하는 단계와; 상기 매핑된 빈에 상기 픽셀 컬러를 누산하는 단계와; 상기 매핑된 빈의 픽셀 카운트를 증가시키는 단계를 포함할 수 있다. 휘도 밴드를 결정하는 상기 단계는 휘도 밴드 앤티 에일리어싱을 더 포함할 수 있다. 컬러 칼럼을 결정하는 상기 단계는 컬러 칼럼 앤티 에일리어싱을 더 포함할 수 있다.
상기 병합하는 단계는, 상기 왼쪽 및 위쪽 경계에 접촉하는 현재의 블록 내의 각 연결 컴포넌트에 대하여 수행되는 세부단계들로서, 공통 경계를 따라서 상기 현재의 연결 컴포넌트에 접촉하는 연결 컴포넌트들의 리스트를 찾는 단계와; 병합하기 위한 최량의 후보를 결정하는 단계를 포함할 수 있다.
본 발명의 다른 양태에 따르면, 전술한 방법의 양태들 중 어느 하나에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 분할하기 위한 프로세서 및 메모리를 포함하는 장치가 제공된다.
본 발명의 또 다른 양태에 따르면, 전술한 방법의 양태들 중 어느 하나에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 분할하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 또 다른 양태에 따르면, 컬러 문서의 콤팩트한 표현을 자동으로 생성하는 방법이 제공된다. 이 방법은, 원패스의 블록 래스터 순서로 컬러 문서 페이지의 디지털 화상을 연결 컴포넌트들로 분할하는 단계와; 상기 페이지의 디지털 화상을 상기 페이지 전체의 콤팩트한 연결 컴포넌트 통계에 기초한 레이아웃 분석을 이용하여 전경 및 배경 화상들로 파티션하는 단계와; 상기 전경 화상의 적어도 일부분이 상기 배경 화상을 가리는 상기 배경 화상의 적어도 일부분을 원패스 블록 래스터 순서로 인페인팅(inpainting)하는 단계와; 상기 전경 및 배경 화상들을 결합하여 콤팩트한 문서를 형성하는 단계를 포함한다.
상기 방법은 상기 배경 화상을 다운샘플링하는 단계를 더 포함할 수 있다. 또한, 상기 방법은 상기 배경 화상을 압축하는 단계를 더 포함할 수 있다. 상기 압축하는 단계는 손실 압축을 수반할 수 있다. 또한, 상기 방법은 상기 손실 압축된 배경 화상의 상이한 압축을 포함할 수 있다.
본 발명의 다른 양태에 따르면, 전술한 방법의 양태들 중 어느 하나에 따라서 컬러 문서의 콤팩트한 표현을 자동으로 생성하기 위한 프로세서 및 메모리를 포함하는 장치가 제공된다.
본 발명의 또 다른 양태에 따르면, 전술한 방법의 양태들 중 어느 하나에 따라서 컬러 문서의 콤팩트한 표현을 자동으로 생성하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품이 제공된 다.
본 발명의 또 다른 양태에 따르면, 복수의 픽셀들을 포함하는 디지털 화상을 분석하는 방법이 제공된다. 이 방법은, 상기 디지털 화상을 오브젝트들로 분할하는 단계 - 여기서 분할은 3 이상의 라벨들에 의해 표현됨 - 와; 각 오브젝트에 대한 속성들의 세트를 제공하는 단계와; 상기 오브젝트들의 서브세트에 대하여, 포함의 측정을 이용하여 경계를 공유하는 인접한 오브젝트들 간에 부모-자식 관계가 존재하는지를 판정하는 단계와; 오브젝트 속성들에 기초하여 공통 부모를 공유하는 오브젝트들의 그룹들을 형성하는 단계와; 오브젝트들을 그들의 속성들 및 그룹화에 따라서 분류하는 단계를 포함한다.
상기 포함은 각 오브젝트 주위의 바운딩 박스들 및 오브젝트들 간의 접촉 관계를 기술하는 정보를 이용하여 결정될 수 있다. 2개의 오브젝트가 경계에서 접촉하고 한 오브젝트의 바운딩 박스가 다른 오브젝트의 바운딩 박스를 완전히 포함한다면 한 오브젝트가 다른 오브젝트를 포함한다.
상기 그룹들을 형성하는 단계는, 공통 부모의 자식들의 리스트로부터 자식 오브젝트들의 쌍들을 고려하는 단계와; 오브젝트 속성들을 이용하여 각 쌍이 함께 그룹화되어야 하는지를 판정하는 단계를 포함할 수 있다. 동일 부모를 갖는 자식 오브젝트들의 리스트로부터 서로 이웃하는 오브젝트들만 그룹화를 위해 고려될 수 있다. 오브젝트들은 바운딩 박스 및 컬러 정보에 기초하여 그룹화될 수 있다.
오브젝트들의 그룹은 그 그룹 내의 오브젝트들의 유사 텍스트 품질들의 테스트에 따라서 텍스트로서 분류될 수 있다. 상기 유사 텍스트 품질들의 테스트는, 각 오브젝트의 위치를 나타내는 각 오브젝트에 대한 단일 값을 식별하는 단계와; 상기 값들의 히스토그램을 형성하는 단계와; 상기 히스토그램의 속성에 의해 텍스트를 식별하는 단계를 포함할 수 있다.
상기 방법은 오브젝트들의 속성들에 따라서, 그러나 그들의 부모-자식 속성들에는 관계없이, 텍스트-분류된 오브젝트들의 그룹에 부가적인 오브젝트들을 추가하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 양태에 따르면, 문서 페이지의 복수의 픽셀들을 포함하는 디지털 화상을 분석하는 방법이 제공된다. 이 방법은, 상기 화상에 기초하여 오브젝트들을 형성하기 위하여 상기 디지털 화상을 분할하는 단계와; 상기 오브젝트들의 그룹들을 형성하는 단계와; 상기 오브젝트들의 그룹들이 각각 텍스트를 나타내는지를 판정하는 단계를 포함한다. 상기 판정하는 단계는, 상기 페이지 상의 각 오브젝트의 위치에 따라서 각 오브젝트에 대한 단일 값을 식별하는 단계와; 상기 값들의 히스토그램을 형성하는 단계와; 상기 히스토그램의 속성에 의해 텍스트를 식별하는 단계를 포함한다.
상기 히스토그램의 속성은 특정된 수보다 많은 오브젝트들을 갖는 상기 히스토그램에서의 빈들 내의 오브젝트들의 총수일 수 있다. 대안적으로, 상기 속성은 상기 히스토그램에서의 카운트들의 제곱의 합일 수 있다.
각 오브젝트의 위치를 나타내는 각 오브젝트에 대한 단일 값은 상기 오브젝트의 바운딩 박스의 에지일 수 있다.
본 발명의 다른 양태에 따르면, 전술한 양태들 중 어느 하나에 따른 방법에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 분석하기 위한 프로세서 및 메모리를 포함하는 장치가 제공된다.
본 발명의 다른 양태에 따르면, 전술한 양태들 중 어느 하나에 따른 방법에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 분석하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 또 다른 양태에 따르면, 복수의 픽셀들을 포함하는 디지털 화상을 인페인팅(inpainting)하는 방법이 제공된다. 이 방법은, 상기 디지털 화상으로부터 복수의 픽셀들의 블록들을 발생시키는 단계와; 적어도 하나의 블록에 대한 픽셀들의 적어도 하나의 런(run)의 픽셀 값들을 래스터 순서로 변경하는 단계를 포함한다. 상기 변경하는 단계는, 각 블록에 대하여 수행되는 세부단계들로서, 한 오브젝트에 관한 블록 내의 픽셀들의 런에 대한 시작 및 끝 픽셀들을 결정하는 단계 - 상기 런은 함께 그룹화된 인접한 픽셀들을 포함함 - 와; 상기 런 외부의 픽셀들의 픽셀 값들에 따라서 상기 런 내의 상기 오브젝트의 적어도 하나의 픽셀 값을 수정하는 단계와; 상기 블록 내의 오브젝트에 대응하지 않는 픽셀들에 대한 액티비티 측정치를 결정하는 단계와; 상기 블록에 대한 액티비티 측정치가 미리 정해진 문턱값보다 작다면 픽셀들의 적어도 하나의 런을 갖는 각 블록 내의 모든 픽셀 값들을 설정 값으로 변경하는 단계를 포함한다.
상기 방법은 상기 오브젝트 외부의 팽창된 오브젝트 픽셀의 적어도 하나의 픽셀 값을 상기 팽창된 오브젝트 외부의 픽셀들의 픽셀 값들에 따라서 수정하는 단 계를 더 포함할 수 있다.
상기 발생시키는 단계는, 세부단계들로서, 상기 디지털 화상을 복수의 밴드들로 배열하는 단계 - 각 밴드는 픽셀들의 미리 정해진 수의 연속 라인들을 포함함 - 와; 상기 밴드들을 하나씩 버퍼링 및 처리하는 단계를 포함할 수 있다. 상기 처리하는 단계는, 각각의 현재 버퍼링된 밴드에 대하여 수행되는 세부단계들로서, 상기 현재의 밴드를 복수의 픽셀들의 블록들로 배열하는 단계와; 상기 변경하는 단계들을 위하여 상기 현재의 밴드의 블록들을 하나씩 버퍼링 및 처리하는 단계를 포함할 수 있다.
상기 런은 상기 블록의 픽셀들의 래스터 라인 내의 인접한 픽셀들을 포함한다.
상기 방법은 블록 기반 압축 방법을 이용하여 각 블록을 압축하는 단계를 더 포함할 수 있다. 상기 블록 기반 압축 방법은 JPEG일 수 있다. 상기 방법은 상기 블록 기반 압축된 블록들을 또 다른 압축 기법을 이용하여 더 압축하는 단계를 더 포함할 수 있다.
상기 오브젝트의 상기 적어도 하나의 픽셀 값은 상기 오브젝트 외부의 픽셀들의 픽셀 값들에 따라서 수정될 수 있고 상기 런의 왼쪽 및 오른쪽의 픽셀 값들로부터 보간된 값, 또는 상기 런의 왼쪽의 픽셀로부터의 값을 이용한다.
픽셀들의 적어도 하나의 런을 갖는 각 블록 내의 모든 픽셀 값들은 이전에 처리된 블록의 평균 값 또는 상기 블록 내의 가시 픽셀들의 평균 값으로 변경될 수 있다.
상기 방법은, 팽창된 오브젝트 픽셀들의 런의 끝을 찾지 못하면, 픽셀들의 컬러 값들을 상기 팽창된 오브젝트 픽셀들의 런의 왼쪽의 오브젝트에 대응하지 않는 픽셀의 컬러 값으로 설정하는 단계를 더 포함할 수 있다.
상기 픽셀 값들은 컬러 값들일 수 있다.
본 발명의 또 다른 양태에 따르면, 전술한 양태들 중 어느 하나의 방법에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 인페인팅하기 위한 프로세서 및 메모리를 포함하는 장치가 제공된다.
본 발명의 또 다른 양태에 따르면, 전술한 양태들 중 어느 하나의 방법에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 인페인팅하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 또 다른 양태에 따르면, 복수의 픽셀들을 포함하는 디지털 화상 - 상기 픽셀들 중 적어도 일부가 상기 화상 내의 오브젝트에 대응함 - 의 픽셀 값들을 변경하는 방법으로서, 상기 디지털 화상을 복수의 밴드들로 배열하는 단계 - 각 밴드는 픽셀들의 미리 정해진 수의 연속 라인들을 포함함 - 와; 상기 밴드들을 하나씩 차례로 버퍼링 및 처리하는 단계를 포함하는 방법이 제공된다. 상기 처리하는 단계는, 각각의 현재 버퍼링된 밴드에 대한 세부단계들로서, 상기 현재의 밴드를 복수의 픽셀들의 블록들로 배열하는 단계와; 상기 블록들을 하나씩 차례로 처리하는 단계를 포함한다. 상기 블록 처리 단계는, 각 블록에 대한 세부단계들로서, 상기 화상 내의 오브젝트들에 대응하지 않는 상기 블록 내의 픽셀들에 대한 액티비 티 측정치를 결정하는 단계와; 상기 액티비티 측정치가 미리 정해진 문턱값보다 작다면, 상기 블록 내의 모든 픽셀들의 픽셀 값들을 한 픽셀 값으로 변경하는 단계와; 상기 블록을 JPEG로 압축하는 단계와; 상기 JPEG 압축된 블록을 또 다른 압축방법을 이용하여 압축하는 단계를 포함한다.
상기 밴드들은 각각 상기 디지털 화상의 픽셀들의 16 라인들을 포함할 수 있고, 상기 블록들은 16×16 픽셀들을 포함하고, 상기 압축 단계들은 파이프라인 방식으로 수행된다.
상기 블록 내의 모든 픽셀들의 컬러 값들을 변경하는 단계는 상기 픽셀들의 컬러 값들을 팽창된 오브젝트 픽셀들의 런의 바로 왼쪽 및 오른쪽의 오브젝트들에 대응하지 않는 픽셀들 간을 선형 보간함으로써 얻어지는 컬러 값들로 설정하는 단계를 포함할 수 있고, 상기 팽창된 오브젝트 픽셀들은 상기 런의 외부에 인접한 픽셀들이다.
상기 방법은 상기 블록 내의 픽셀들의 컬러 값들을 상기 블록 내의 오브젝트에 대응하지 않는 픽셀들의 평균 컬러 값으로 설정하는 단계를 더 포함할 수 있다.
상기 방법은 상기 블록 내의 픽셀들의 컬러 값들을 선행 블록의 평균 컬러로 설정하는 단계를 더 포함할 수 있다.
팽창된 오브젝트의 픽셀들은 상기 오브젝트의 위치를 정의하는 마스크를 팽창시킴으로써 결정될 수 있다.
상기 다른 압축 방법은 ZLIB를 포함할 수 있다.
상기 픽셀 값들은 컬러 값들일 수 있다.
본 발명의 또 다른 양태에 따르면, 전술한 양태들의 어느 하나의 방법에 따라서, 복수의 픽셀들을 포함하는 디지털 화상 - 상기 픽셀들 중 적어도 일부가 상기 화상 내의 오브젝트에 대응함 - 의 픽셀 값들을 변경하기 위한 프로세서 및 메모리를 포함하는 장치가 제공된다.
본 발명의 또 다른 양태에 따르면, 전술한 양태들의 어느 하나의 방법에 따라서, 복수의 픽셀들을 포함하는 디지털 화상 - 상기 픽셀들 중 적어도 일부가 상기 화상 내의 오브젝트에 대응함 - 의 픽셀 값들을 변경하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다.
이하에서는 다수의 실시예들을 도면들을 참조하여 설명한다.
도 1은 본 발명의 실시예에 따라서 디지털 화상을 분할, 분석, 및 압축하는 개관을 제공하는 고레벨 흐름도.
도 2는 도 1의 컬러 분할 단계의 흐름도.
도 3은 도 2의 다음 픽셀을 획득하는 단계의 상세 흐름도.
도 4는 도 1의 레이아웃 분석 단계의 흐름도.
도 5는 도 1의 압축된 출력 화상을 발생시키는 단계의 흐름도.
도 6은 문자 "i" 및 관련 연결 컴포넌트들을 포함하는 화상의 블록도.
도 7은 본 발명의 실시예들을 실시하는 데 이용될 수 있는 범용 컴퓨터 시스템의 블록도.
도 8은 본 발명의 실시예에 따라서 스캔된 입력 페이지에 대한 압축된 출력을 생성하기 위한 시스템의 블록도.
도 9는 도 10의 컬러 연결 컴포넌트 분석 및 블롭 통계 단계의 상세 흐름도.
도 10은 도 2의 컬러 분할 단계의 흐름도.
도 11은 도 10의 컬러 양자화 단계의 상세 흐름도.
도 12는 도 9의 새로운 블롭을 형성하거나 기존의 블롭을 확장시키는(growing) 단계의 상세 흐름도.
도 13은 도 10의 타일간 병합 단계의 흐름도.
도 14는 도 13의 최량의 블록 및 CC 쌍을 처리하는 단계의 흐름도.
도 15는 블록 병합 처리의 예를 예시하는 블록도.
도 16은 현재의 타일과 2개의 인접한 타일들의 스테이트들 간의 병합을 예시하는 블록도.
도 17은 타일간 병합 조건을 보여주는 표.
도 18은 도 14의 CC 매핑 처리의 결과의 예를 도시하는 도면.
도 19는 도 10의 타일내 병합 단계의 흐름도.
도 20은 도 4의 CC들을 그룹화하는 단계의 흐름도.
도 21은 도 4의 CC들의 그룹들을 검사하는 단계의 흐름도.
도 22는 도 20의 그룹의 자식 CC들을 찾는 단계의 흐름도.
도 23은 도 20의 최초 그룹화 단계의 흐름도.
도 24는 도 21의 정렬을 검사하는 단계의 흐름도.
도 25a는 3 이상의 양자화 레벨들에 기초한 분할을 예시하는 간단한 예의 화상을 도시하는 도면.
도 25b 및 도 25c는 도 25a의 화상의 이진 분할의 각각의 결과들을 예시하는 화상들을 도시하는 도면.
도 26은 2개의 오브젝트, 문자 'g' 및 'h'를 포함하는 문서의 영역의 그래픽 묘사를 도시하는 도면.
도 27a는 도 27b의 화상에 대한 바운딩 박스들의 밑변(bottom)들의 값들의 히스토그램을 도시하는 도면.
도 27b는 화상으로부터 분할된 부분들에 대한 불규칙하게 배열된 바운딩 박스들의 선택을 도시하는 도면.
도 27c는 도 27의 페이지에 대한 대응하는 히스토그램을 도시하는 도면.
도 27d는 텍스트 그룹에 대한 페이지 상의 바운딩 박스들의 배열을 도시하는 도면.
도 28은 컬러 블로빙 시스템(colour blobbing system)의 블록도.
도 29a 내지 29c는 원래의 타일, 인덱스 맵, 및 팔레트를 포함하는, 컬러 히스토그램 출력의 화상들이고, 팔레트의 상부 및 하부 회색 부분들은 비어 있는 빈들을 도시하는 도면.
도 30은 도 5의 타일을 인페인팅하는 단계의 흐름도.
도 31은 도 30의 타일 전경 비트마스크를 형성하는 단계의 흐름도.
도 32는 도 30의 픽셀들을 인페인팅하고 타일 액티비트를 측정하는 단계의 흐름도이다.
도 33은 도 30의 타일 플랫화(tile flattening) 단계의 흐름도.
도 34는 배경 화상 타일 내의 예시 픽셀 및 최대 해상도 전경 마스크(full-resolution foreground mask)에서 검사된 대응 픽셀의 블록도.
도 35는 1차원 인페인팅 예들의 플롯(plot)을 포함하는 도면.
도 36은 6×6 타일의 예를 이용한 컬러 블롭 처리를 예시하는 블록도.
도 37은 블록 병합의 예를 보여주는 화상들을 포함하는 도면.
도 38은 비교를 위하여 최초 타일과 병합된 블롭을 보여주는 화상들을 포함하는 도면.
도 39는 래스터 순서로 타일들 상에서 블롭들을 병합하는 것을 예시하는 블록도.
도 40은 도 11의 2D 히스토그램 및 제1 팔레트를 형성하는 단계를 예시하는 흐름도.
도 41은 도 11의 제2 팔레트를 형성하는 단계를 예시하는 흐름도.
도 42는 도 41의 2-컬러 팔레트(2-coloured palette)를 발생시키는 단계를 예시하는 흐름도.
도 43은 도 41의 멀티-컬러 팔레트를 발생시키는 단계를 예시하는 흐름도.
도 44는 도 11의 픽셀들을 제2 팔레트와 관련시키는 단계를 예시하는 흐름도.
도 45는 도 44의 바이-레벨 타일을 매핑하는 단계를 예시하는 상세 흐름도.
도 46은 도 44의 멀티-컬러 타일을 매핑하는 단계를 예시하는 상세 흐름도.
도 47은 도 11의 히스토그램을 분석하고 타일을 분류하는 단계의 흐름도.
도 48은 모든 동작 조건들에 대하여 업데이트 전과 후의 CC 및 블롭 후보 카운트들을 보여주는 표.
도 49는 블록과 CC 후보들을 병합하는 예들을 예시하는 블록도.
도 50은 도 10의 병합 후 처리 단계를 예시하는 흐름도.
도 51은 본 발명의 다른 실시예에 따른 시스템의 블록도.
도 52는 도 51의 컬러 분할 모듈의 블록도.
도 53은 설정 점들(set points)의 들로네 삼각분할(Delaunay triangulation) 및 보로노이 다이어그램(Voronoi diagram)을 예시하는 도면.
디지털 화상을 처리 및 압축하기 위한 방법, 장치, 및 컴퓨터 프로그램 제품이 개시된다. 다음 설명에서는, 특정 무손실 압축 기법, 색공간(colour spaces), 공간 해상도, 타일 사이즈 등을 포함하는, 다수의 특정 상세들이 제시된다. 그러나, 이 명세서로부터, 숙련된 당업자라면 본 발명의 범위 및 사상에서 벗어나지 않고 변경들 및/또는 대체들이 이루어질 수 있다는 것을 알 것이다. 다른 상황에서는, 본 발명을 모호하게 하지 않도록 특정 상세들이 생략될 수 있다.
어느 하나 또는 그 이상의 첨부 도면들에서 동일한 참조 부호를 갖는 단계들 및/또는 특징들이 참조되는 경우, 그 단계들 및/또는 특징들은, 반대의 의도가 나타나지 않는 한, 이 설명의 목적을 위하여 동일한 기능(들) 또는 동작(들)을 갖는다.
이 명세서의 문맥에서, "포함한다(comprising)"라는 낱말은, "주로 포함하지만, 반드시 오로지 포함하지는 않는다(including principally, but not necessarily solely)"는, 제한 없는(open-ended), 비배타적인(non-exclusive) 의미를 갖지만, "본질적으로 이루어진다(consisting essentially of)"는 의미도 아니고 "만으로 이루어진다(consisting only of)"는 의미도 아니다. "comprise" 및 "comprises"와 같은 "comprising"이라는 낱말의 변형들은 대응하는 의미를 갖는다.
상세 설명의 내용은 다음과 같은 섹션들로 편성된다.
1. 개관
2. 컬러 분할
2.1. 입력 화상의 다음 타일 획득
2.2. 타일의 컬러 분할 형성
2.2.1 컬러 양자화
2.2.1.1. 2D 히스토그램 및 제1 팔레트 형성
2.2.1.2. 히스토그램 분석 및 화상 분류
2.2.1.3. 제2 팔레트 형성
2.2.1.3.1. 2-컬러 팔레트 발생
2.2.1.3.2. 멀티-컬러 팔레트 발생
2.2.1.4. 픽셀을 제2 팔레트와 관련시키기
2.2.1.4.1. 바이-레벨 타일 매핑
2.2.1.4.2. 멀티-레벨 타일 매핑
2.2.2. 컬러 CC 분석 및 블롭 통계
2.2.2.1. 블롭 형성
2.2.2.2. 블롭 병합의 예
2.2.3. 타일내 병합
2.2.4. 타일간 병합
2.2.4.1. 타일간 병합 조건
2.2.4 2. 타일간 병합 예
2.2.4.3. 최량의 블롭 및 CC 쌍 처리
2.2.4.4. CC 매핑 결과
2.2.5. 병합 후 처리
2.3. 분할 예
3. 레이아웃 분석
3.1. CC 그룹화
3.1.1. 부모 CC에 대한 자식 찾기
3.1.2. 최초 그룹화
3.1.2.1. 2개의 CC에 대한 그룹화 테스트
3.2. 그룹 검사
3.2.1. 정렬 검사
3.2.2. 정렬 예
4. 압축된 출력 화상 발생
4.1. 타일 인페인팅
4 1.1. 타일 전경 비트마스크 형성
4.1.2. 픽셀 인페인팅 및 타일 액티비티 측정
4.1.3. 인페인팅 예
4.1.4. 타일 플랫화
5. 하드웨어 실시예
5.1. 컬러 분할 모듈
6. 컴퓨터 구현
7. 산업상 이용가능성
전술한 섹션들은 전술한 순서로 이하에서 상세히 설명된다.
1. 개관( Overview )
본 발명의 제1 실시예는 범용 컴퓨터 상에서 실행되는 프로세스이다. 도 1은 디지털 화상을 분할, 분석, 및 압축하는 프로세스(100)의 고레벨 개관을 제공한다. 이 프로세스(100)에의 입력은 바람직하게는 300 dpi의 해상도의 RGB 화상이다. 그러나, 다른 색공간 내의 화상들이 적절히 변경되어 프로세스(100)에 입력될 수 있다. 마찬가지로, 상이한 해상도의 화상들이 입력될 수 있다. 단계 110에서, 입력된 화상에 대한 단일 패스를 이용하여 화상을 연결 컴포넌트들(CCs : Connected Components)로 분할하는 컬러 분할이 수행된다. 원패스 처리(one-pass processing)를 이용하여, 디지털 화상들이 신속히 처리될 수 있고, 따라서 고용량의 고해상도 화상들이 처리될 수 있다. 연결 컴포넌트들은 모두 연결되어 있는(접촉하고 있는) 유사하게 채색된 픽셀들의 그룹들이다. 예를 들면, 백지 상에 검은 잉크로 인쇄된 문자 "i"의 몸통(body) 또는 줄기(stem)를 형성하는 픽셀들이 하나의 연결 컴포넌트를 형성하고, "i" 상의 점(dot)이 다른 CC를 형성하고, 배경으로서 "i"를 둘러싸는 흰 픽셀들이 또 다른 CC를 형성한다. 도 6은 문자 "i"를 포함하는 화상(600)을 도시하는데, 여기서 검은 점들은 검은 픽셀들을 나타내고 흰 점들은 흰 픽셀들을 나타낸다. "i"의 줄기 CC(610) 및 "i"의 점 CC(612)가 도시되어 있다. 또한 비어 있는 픽셀들의 또 다른 결과적인 CC(614)가 도시되어 있다.
분할의 일부로서, CC들을 기술하는 콤팩트한 정보 및 통계가 계산된다. 디지털은 다운샘플링되어 바로 단계 130에 제공된다. 단계 120에서는, 이 콤팩트한 CC 정보 및 통계를 이용하여 CC들에 대하여 레이아웃 분석이 수행된다. 레이아웃 분석은 페이지 상의 특징들(features)의 레이아웃을 결정하고, 특징들은 예를 들면 텍스트 문자, 단락, 표, 및 화상을 포함한다. 단계 130에서는, 이 레이아웃 정보를 이용하여 하나 이상의 전경 화상들을 생성한다. 전경 화상은 전형적으로 단계 120에서 식별된 텍스트 문자들로 구성되고, 바람직하게는 이진 화상이다. 전경 화상들은 입력 해상도(예컨대, 300 dpi)로 저장될 수 있는 반면, 배경 화상은 보다 낮은 해상도(예컨대, 150 dpi)로 저장될 수 있다. 전경 엘리먼트들은 배경 화상으로부터 제거된다. 그 후 전경 및 배경 모두 상이한 기법들을 이용하여 압축되고 합성 화상 형식(compound image format)으로 저장된다. 합성 형식은 예를 들면 PDF 문서일 수 있다. 디지털 화상을 컬러 분할, 레이아웃 분석, 및 압축하는 것에 대해서는 각각 이하에서 별개의 섹션들에서 설명된다.
본 발명의 실시예들에 대한 하나의 응용은 스캐너로부터의 래스터 픽셀 화상들을 분석하고 가능한 한 많은 고레벨 정보를 추출하는 것이다. 이 정보로부터, 페이지의 고레벨 기술(high-level description)이 생성될 수 있다. 이 때문에, 하드웨어로 픽셀 분석을 행함으로써 더 빨리 실행되도록 시스템이 설계될 수 있다. 그러나, 다음의 설명으로부터 시스템은 전적으로 소프트웨어로 구현될 수도 있다는 것이 명백할 것이다. 또한, 이하에서는 특정 출력 형식 PDF가 설명되지만, 출력 형식으로서 다른 페이지 기술 형식을 이용하도록 시스템에 대해 변화가 이루어질 수도 있다.
도 8은 스캔된 입력 문서(810)의 압축된 또는 콤팩트한 표현(850)을 생성하기 위한 본 발명의 실시예에 따른 시스템(800)의 고레벨 블록도이다. 시스템(800)은 프론트 엔드 모듈(820), 중간 모듈(830), 및 백 엔드 모듈(840)을 포함한다. 프론트 엔드 모듈(820)은 타일 기반 프론트 엔드 모듈로서, 바람직하게는 하드웨어로 구현되지만, ASIC과 내장 프로세서에 의해 실행되는 소프트웨어의 조합일 수도 있다. 타일 래스터 순서(tile raster order)는 한 번에 하나씩 위에서 아래로 왼쪽에서 오른쪽으로 처리하기 위해 타일들이 이용가능하게 되는 타일 기반 처리 방법이다. 이 모듈은 입력 화상에 대한 컬러 분할을 수행하고 타일의 배경 화상을 백 엔드 모듈(840)(화살표로 표시됨)에 제공한다. 프론트 엔드 모듈(820)은 최대 페이지 해상도(예컨대, 300 dpi)로 컬러 연결 컴포넌트 분석을 수행한다. 프론트 엔드 모듈(820)은 또한 디지털 화상(810)으로부터 연결 컴포넌트들(CC들)을 생성하고, 이 CC들은 레이아웃 분석을 수행하는 중간 모듈에 제공된다. 이 모듈은 전적으로 소프트웨어로 구현될 수 있다. 프론트 엔드 모듈(820)은 다운샘플링된 화상을 백 엔드 모듈(840)에 제공한다. 중간 모듈(830)의 출력은 백 엔드 모듈(840)에 제공되고, 백 엔드 모듈은 타일 기반 인페인팅을 수행하고 디지털 화상(810)의 콤팩트한 표현을 생성한다. 프론트 엔드 모듈(820)처럼, 백 엔드 모듈(840)은 내장 프로세서 상에서 실행되는 소프트웨어 및 ASIC과 함께 적어도 부분적으로 하드웨어로 구현될 수 있다. 이 콤팩트한 출력은 보다 낮은 공간 해상도의 디지털 화상 및 보다 높은 해상도의 전경 비트맵을 포함할 수 있다.
프론트 엔드 모듈(820)은 각 픽셀의 검사를 수반하는 모든 분석 작업을 수행하고 의미적으로 관련된 픽셀들의 영역들의 컬러 CC들을 형성한다. 프론트 엔드 모듈(820)로부터의 출력은 페이지 상의 모든 컬러 CC들에 관한 정보이다. 각 CC에 대한 정보는 바운딩 박스, 평균 컬러, 접촉 리스트, 및 픽셀들의 수를 포함한다. 하드웨어로 알고리즘을 구현할 때, 최상의 성능을 위하여, 알고리즘은 대역폭 효율적이어야 한다. 화상 처리 작업을 위하여, 알고리즘은 전체 스캔된 페이지에 랜덤하게 액세스할 수 없다. 대신에, 알고리즘은 한 번에 작은 타일들에 대해 작용한다.
2. 컬러 분할( Colour Segmentation )
도 2는 도 1의 단계 110을 보다 상세히 예시한다. 도 2에 도시된 프로세스는, 예를 들면 32×32 픽셀들의 사이즈일 수 있는 입력 화상의 타일들에 작용한다. 타일들은 래스터 순서로, 즉, 왼쪽에서 오른쪽으로, 및 위에서 아래로 처리될 수 있다. 처리될 처음 타일은 입력 화상의 상단-왼쪽 타일이고, 처리될 마지막 타일은 입력 화상의 하단-오른쪽 타일이다. 이러한 타일링은 효율성을 위하여 행해진다.
단계 210에서, 처리될 입력 화상의 다음 타일이 획득된다. 각 타일을 효율적으로 액세스하기 위해 포인터 정보가 이용될 수 있다. 단계 210에 대해서는 도 3을 참조하여 더 상세히 설명된다. 단계 220, 230, 240 및 250에서의 처리는 현 타일의 픽셀들에 제한된다. 단계 220에서는, 현 타일에 대하여 선택적으로 디하프토닝(dehalftoning)이 수행된다. 예를 들면, 이 방법에 의해 처리된 스캔된 입력 문서들은 인쇄 처리로부터의 하프톤(halftones)을 포함할 수 있다. 하프톤은 후속 분석을 어렵게 할 수 있고 잘 압축하지 않을 수 있다. 그러므로, 이 단계 220은 하프톤을 검출 및 제거하는 데 이용될 수 있다. 단지 예로서, 다음의 디하프토닝 처리가 실시될 수 있다. 디하프토닝 처리는 16×16 타일들에 작용할 수 있다. 32×32 RGB 픽셀들의 각 입력 타일은 4개의 16×16 타일들로 분할될 수 있고, 각각은 개별적으로 처리된다. 하프톤 검출은 한 번에 하나의 컬러 채널(즉, R, G, B)에 작용할 수 있다. 만일 임의의 채널에서 하프톤이 검출되면, 모든 채널에 대해서 하프톤 제거가 수행될 수 있다. 하프톤을 검출하기 위하여, 타일 내의 각 픽셀은 4개의 레벨로 양자화된다. 입력 컬러 채널 값은 0-255의 범위에 걸쳐 있다. 4개의 레벨들은 0-63, 64-127, 128-191 및 192-255의 범위들이다. 그 후 서로 이웃하는 픽셀들 간의 레벨 변화의 수가 측정될 수 있다. 이 측정은 수평으로 및 수직으로 행해질 수 있다.
하프톤들은 전형적으로 작은 점들이기 때문에, 검출은 변화의 수가 크고 수평 변화의 수가 수직 변화의 수와 유사할 것을 요구한다. 이것은 하프톤으로서 검출되는 텍스트 문자들의 에지들에 의해 야기되는 레벨의 변화를 방지한다. 검출을 위한 문턱값이 특정될 수 있다. 16×16 타일에서 하프톤이 검출되면, 이 하프톤을 제거하기 위해 예를 들면 공간 블러(spatial blur)가 이용될 수 있다. 하프톤 검출기는 또한 이전에 분석된 타일로부터의 정보를 이용할 수도 있다. 예를 들면, 현 타일과 접촉하는 타일들이 그 타일들에서 검출된 하프톤들을 갖는다면, 현 타일도 하프톤을 포함할 가능성이 있다. 이 정보가 이용될 경우, 문턱값은 하프톤 검출 요건을 완화하거나 강화하도록 조정될 수 있다.
단계 230에서는, 현 타일의 색공간이 이미 YUV 색공간에 있지 않다면, 그 타일의 픽셀들을 YUV 색공간으로 변환하기 위한 변환이 수행된다. 그러므로, 이 단계는 입력 화상의 색공간에 따라서 선택적이다. 이 실시예에서는 YUV 색공간이 이용되지만, 본 발명의 범위 및 사상에서 벗어나지 않고 다른 색공간들이 이용될 수 있다. RGB로부터 YUV로 변환하기 위해 이용되는 변환식은, 예를 들면, 독립 JPEG 그룹(IJG) JPEG 라이브러리에서 이용되는 것과 동일할 수 있다.
단계 240에서는, 현 타일에 대하여 연결 컴포넌트들을 형성하기 위한 컬러 분할이 수행되고, 타일 내의 CC들에 관한 콤팩트한 정보 및 통계가 계산된다. 컬러 CC는 하나 이상의 타일들에 걸쳐 있는, 하나 이상의 의미적으로 관련된 블롭들을 포함한다. 예를 들면, 의미적으로 관련된 블롭들은 유사하게 채색되어 있을 수 있다. 블롭은 유사한 컬러 특성을 갖는, 단일 타일 내의, 픽셀들의 연결 그룹(connected group)이다. 블로빙(blobbing)은 컬러 분할 및 연결 컴포넌트 표현들을 형성하는 처리이다. 각 CC는 픽셀들의 사이즈, 평균 컬러, 이진 마스크, 블롭 경계 길이, 및 바운딩 박스의 통계를 갖는다. 도 10은 이 단계를 보다 상세히 예시한다.
단계 250에서는, 현 타일을 다운샘플링하여 배경 화상의 대응 부분을 형성한다. 예를 들면, 양쪽의 치수에서 2:1로 다운샘플링하기 위해 박스 필터가 이용될 수 있지만, 본 발명의 범위 및 사상에서 벗어나지 않고 다른 방법들이 실시될 수 있다. 판정 단계 260에서는, 처리될 타일이 더 남아 있는지를 판정하기 위해 검사가 행해진다. 단계 260의 결과가 아니오(No)이면(즉 화상 내의 모든 타일들이 처리되었다면), 처리는 종료한다. 그러나, 단계 260의 결과가 예(Yes)이면, 처리는 단계 210에서 계속된다.
2.1. 입력 화상의 다음 타일 획득
도 3은 도 2의 단계 210를 상세히 예시한다. 프로세스(210)는 입력 디지털 화상의 밴드들에 작용한다. 화상의 밴드는 다수의 연속 화상 라인들이다. 각 밴드의 높이는 타일의 높이와 동일할 수 있다. 따라서, 예를 들면, 화상의 처음 32 라인들은 밴드, 이 경우 화상의 제1 밴드를 형성하고; 다음 32 화상 라인들은 다음 밴드를 형성하고, 등등으로 된다. 각 밴드의 폭은 입력 화상의 폭일 수 있다. 판정 단계 310에서는, 또 다른 밴드가 판독될 필요가 있는지를 판정하기 위해 검사가 행해진다. 현 밴드의 모든 타일들이 처리되면 또 다른 밴드가 판독될 필요가 있다. 또 다른 밴드가 판독될 필요가 있는 그외의 때는 단계 310이 처음 수행되는 때인데, 그 시점에서 어떤 밴드도 판독되지 않았기 때문이다. 단계 310의 결과가 예이면, 처리는 단계 320에서 계속된다. 그렇지 않다면, 처리는 단계 340에서 계속된다.
단계 320에서는, 데이터의 다음 밴드가 입력 화상으로부터, 예를 들면, 디스크로부터 메모리내 버퍼(in-memory buffer) 내로 판독된다. 메모리 버퍼는 밴드의 픽셀들의 각 라인을 연속(contiguous) 메모리 위치들에 포함하도록 배열될 수 있다. 또한, 각 라인의 시작의 메모리 위치, 즉, 각 밴드 행(band row)에의 포인터의 레코드가 유지된다. 단계 330에서는, 처리될 타일, 현 타일을 결정하는 변수 tx가 초기화된다(즉, 0으로 설정된다). 단계 340에서는, 현 타일을 가리키도록 행 포인터 정보가 업데이트된다. 도 3의 프로세스(210)를 호출하는 다른 프로세스들은 단계 340에서 업데이트된 행 포인터 정보를 참조하여 새로운 타일을 획득한다. 행 포인터 정보는 타일 행마다의 포인터를 포함할 수 있다. 따라서, 타일마다 32개 행 포인터가 있을 수 있다. 주어진 행 포인터는 주어진 행 내의 타일의 제1 픽셀의 메모리 위치를 가리킨다. 행 포인터 정보는 각 행 포인터를 그 포인터를 넘어서 메모리 위치들을 따라서(타일 폭 * tx) 각 대응하는 밴드 라인의 시작까지 나아가게 함(stepping)으로써 업데이트될 수 있다. 단계 350에서는, 변수 tx가 1만큼 증가되고, 따라서 도 3의 프로세스(210)가 호출되는 다음 번에는 다른 타일이 프로세스에 입력된다.
2.2. 타일의 컬러 분할 형성
컬러 블로빙(colour blobbing)은 타일 레스터 순서로 작용하는 화상 분할 알고리즘이다. 블롭은 단일 타일 내의 동일 양자화된 레벨들의 픽셀들의 연결 그룹이다. 각 블롭은 픽셀들의 사이즈, 평균 컬러, 이진 마스크, 블롭 경계 길이, 및 바운딩 박스의 통계를 갖는다. 그것의 목적은 문서 화상을 오버랩하지 않는 연결 컴포넌트들의 세트로 분할하는 것으로, 각 연결 컴포넌트는 의미적으로 관련된 픽셀들의 연결 세트를 포함하고, 예컨대, 특정 텍스트 문자 내의 픽셀들의 세트는 하나의 연결 컴포넌트를 형성하고, 그 텍스트 주위의 화상의 부분 내의 픽셀들은 또 다른 연결 컴포넌트를 형성할 것이고, 등등으로 된다.
도 28은 4개의 모듈(2810, 2820, 2830, 및 2840)을 갖는 컬러 블로빙 시스템(2800)의 블록도이다. 컬러 양자화 모듈(2810)은 입력 컬러 타일(예컨대, RGB 색공간에서는 24 비트 픽셀 값들)을 수신하고, 그 타일 내의 지배 컬러들(dominant colours)의 수를 결정하고, 지배 컬러들에 따라서 타일을 양자화한다. 지배 컬러들 및 양자화된 타일은 연결 컴포넌트 및 블롭 통계 모듈(2820)에 입력으로서 제공되고, 이 연결 컴포넌트 및 블롭 통계 모듈은 양자화된 타일에 대하여 단일 래스터 패스에서 8방(8-way) 연결 컴포넌트 분석을 수행한다. 픽셀의 수, 평균 컬러, 블롭 경계 길이 및 바운딩 박스 정보와 같은 블록 통계들이 동일한 래스터 패스에서 수집된다. 이 블롭들 및 통계들은 타일내 병합 모듈(2830)에 입력으로서 제공되고, 이 타일내 병합 모듈은 컬러, 사이즈, 및 경계 통계에 기초하여 블롭들을 병합함으로써 타일 내의 의사의(spurious) 작은 블롭들의 수를 감소시킨다. 이 모듈(2830)로부터의 결과의 블롭들 및 통계들은 타일간 병합 모듈(2840)에 입력으로서 제공되고, 이 타일간 병합 모듈은 블롭 통계에 따라서 현 타일 내의 블롭들을 인접한 타일들(왼쪽 및 위쪽) 내의 접촉 블롭들과 그룹화하여 시스템(2800)의 출력으로서 연결 컴포넌트들을 형성한다. 이에 대해서는 도 10의 처리를 참조하여 더 설명된다.
도 10은 화상을 컬러 CC들로 분할하기 위한 단계 240의 상세 흐름도이다. 분할 처리의 일부로서, CC들을 기술하는 콤팩트한 정보 및 통계가 계산된다. 분할 처리는 단계 230으로부터 픽셀들의 입력 타일을 수신함으로써 시작된다. 판정 블록 1005에서는, 타일이 플랫(flat)인지를 판정하기 위해 검사가 행해진다. 만일 타일이 플랫이면, 처리는 단계 1040에서 타일간 병합 단계로 계속된다. 그렇지 않다면, 처리는 단계 1010에서 계속된다. 단계 1010에서는, 타일에 대하여 컬러 양자화가 수행된다. 컬러 양자화는 픽셀 기하(pixel geometry)를 고려하지 않고, 3개의 주요 단계: 1) 컬러 축소(colour reduction), 2) 타일 분류, 및 3) 지배 컬러 찾기 및 양자화를 이용하여, 타일 내의 지배 컬러들을 찾는다. 입력 타일 내의 지배 컬러들은 컬러 히스토그램 방법에 의해 결정된다. 지배 컬러들에 따라서 입력 타일 픽셀들을 양자화함으로써 컬러 라벨들의 양자화된 타일이 생성된다. 지배 컬러는 인간 관찰자가 타일 내에서 시각적으로 현저한 것으로 인식하는 것이다. 알고리즘은 하드웨어(HW) 구현에 적합하고 또한 소프트웨어(SW) 구현에서 상당히 빨라진다.
단계 1020은 양자화된 타일에 대하여 단일 래스터 패스에서 8방 연결 컴포넌트 분석을 수행하여 블롭들을 형성한다. 단계 1030에서는, 컬러, 사이즈 및 경계 정보에 기초하여 블롭들을 병합함으로써 타일 내의 의사의 작은 블롭들의 수를 감소시키기 위해 타일내 병합 처리가 수행된다. 단계 1040에서는, 타일간 병합이 수행된다. 양자화된 타일에서 식별된 블롭들을 현 타일의 왼쪽 및 현 타일의 위쪽에 있는 2개의 이전에 처리된 타일들에서 식별된 블롭들과 비교하여 컬러 CC들로 병합한다. 따라서, 컬러 CC는 하나 이상의 타일들에 걸쳐 있는 하나 이상의 유사하게 채색된 블롭들을 포함한다. 그러므로, 컬러 CC들은 경계 정보를 제외하고 블롭들에 대하여 위에서 언급된 것과 동일 타입의 통계를 갖는다.
단계 1050에서는, 현 타일 내의 블롭들 및 그 블롭들이 형성하는 컬러 CC들이 콤팩트한 타일-스테이트 데이터 구조로 저장된다. 이 타일 스테이트는 픽셀 데이터를 포함하지 않는다. 타일 스테이트는 기존의 컬러 CC들에 새로이 생성된 블롭들을 병합하기 위해 요구되는 정보만을 포함한다. 분할 처리의 어느 단계에서든 현 타일과의 병합을 위하여 2 이하의 타일 스테이트만 요구되기 때문에 타일간 병합 처리(1040)는 높은 효율로 수행될 수 있다. 또한, 단계 1050은 각 컬러 CC에 대한 접촉 리스트를 업데이트한다. 접촉 리스트(touching list)는 어느 연결 컴포넌트들이 서로의 이웃에 있는지를 기술한다. 접촉 리스트는 프론트 엔드에서의 컬러 CC 분석의 일부로서 발생된다. 도 2의 단계 240은 접촉 리스트를 발생시킨다. 그 후 처리는 종료된다.
2.2.1. 컬러 양자화
컬러 양자화의 목적은 풀컬러(full color) 입력을 연결 컴포넌트 발생의 준비를 위해 축소된 컬러들의 세트로 축소시키는 것이다. 지배 컬러들을 찾기 위해, 각 입력 픽셀이 한 번 검사되고 히스토그램이 발생된다. 본 발명의 실시예들은 휘도를 제1 치수(dimension)로서 사용하고 2개의 크로미넌스 성분(chrominance component)들을 제2 치수로서 결합시키는 히스토그램을 채용한다. 이것은 3개의 컬러 성분들의 축에 따라서 빈들을 3 차원으로 나누는 종래의 컬러 히스토그램과는 다르다. 본 발명의 실시예들은 양호한 지배 컬러들을 보다 쉽게 찾는 것을 돕는 콤팩트한 히스토그램을 생성한다. 히스토그램의 특성으로부터, 타일은 3개의 타입 - 플랫(flat), 바이-레벨(hi-level), 멀티-컬러(multi-coloured) - 으로 분류된다. 타일 분류에 따라서 타일에 대하여 팔레트가 발생된다. 팔레트가 발생된 후에, 각 픽셀은 그 픽셀이 매핑하는 팔레트 컬러에 따라서 양자화된 라벨을 할당받는다. 이 방법은 고속 처리 및 저-메모리 요구 사항을 위하여 설계된다. 플랫 타일은 단 하나의 양자화된 라벨을 갖는다. 바이-레벨 타일은 2개의 양자화된 라벨을 갖는다. 멀티-컬러 타일은 4개까지의 양자화된 라벨을 갖는다.
도 10의 컬러 양자화 단계 1010은 도 11에서 더 상세히 설명된다. 여기서는 도 11에서의 각 단계의 간략한 설명이 제공되고 각 단계에 대한 상세한 설명은 다음에 한다. 단계 1110에서는, 2D 히스토그램 및 제1 팔레트를 갖는 인덱스 맵이 동시에 형성된다. 도 40은 단계 1110의 추가 상세를 제공한다. 단계 1120에서는, 2D 히스토그램의 통계로부터 타일 분류가 수행된다. 도 47은 단계 1120의 추가 상세를 제공한다. 단계 1130에서는, 타일 분류에 기초하여 제2 팔레트가 형성된다. 이것은 제1 팔레트를 응축(condensing)하는 것을 수반한다. 도 41은 단계 1130의 추가 상세를 제공한다. 단계 1140에서는, 픽셀들이 제2 팔레트와 관련된다. 인덱스 맵을 제2 팔레트 컬러들 중 하나에 다시 매핑하여 양자화된 라벨들을 갖는 양자화된 타일을 발생시킨다. 그 후 처리는 종료된다.
2.2.1.1. 2D 히스토그램 및 제1 팔레트 형성
도 40은 도 11의 단계 1110의 처리를 보다 상세히 예시한다. 입력된 풀컬러 타일은 미리 정해진 매핑 방법에 의해 원패스로 픽셀 래스터 순서로 인덱스 맵으로 양자화된다. 도 29a는 입력된 최초 타일 및 생성되는 결과의 인덱스 맵의 예를 보여준다. 이 매핑은 8개 휘도 밴드 및 4개 컬러 컬럼으로 편성된 32개 컬러 빈들에 대하여 구성될 수 있다. 각 컬러 빈은 컬러 누산기(color accumulator), 픽셀 카운터 및 빈에 놓인 제1 픽셀의 YUV 값에 의해 설정되는 등록 ID(registration ID)를 가질 수 있다. 미리 정해진 매핑 방법은 2D 히스토그램의 상태에 따라서 변경될 수 있다. 그 결과, 각 빈에 대하여 미리 정해진 컬러가 없고 픽셀 컬러의 순서가 제1 팔레트의 구성에 영향을 미칠 수 있다. 최후에 각 비어 있지 않은 빈의 평균 컬러가 제1 팔레트를 구성한다. 도 29c는 생성되는 팔레트를 보여주는데, 상부 및 하부 회색 부분들은 비어 있는 빈들을 나타낸다.
단계 4010에서는, 컬러 값(YUV)을 갖는 픽셀이 타일로부터 획득된다. 단계 4015에서는 미리 정해진 매핑이 수행되어 픽셀을 휘도 밴드 및 컬러 빈(즉, bin_mapped)에 매핑한다. 미리 정해진 매핑은 다음과 같을 수 있다:
Figure 112007048042379-PCT00001
회색의 크로미넌스 값은 REF_U 및 REF_V에 이용될 수 있다: (즉, 8 비트 RGB 입력 데이터에 대하여 REF_U = 128이고 REF_V = 128이다). 각 밴드를 RGB 색공간으로부터의 4개 빈으로 정규화(normalising)하기 위하여 선택된 REF_U 및 REF_V를 이용하여 각 밴드에 대한 NORMALISING_FACTOR가 미리 계산된다. NORMALISING_FACTOR는 표 1의 의사코드를 이용하여 발생될 수 있다.
Figure 112007048042379-PCT00002
단계 4020 내지 4025는 바이-레벨 타일 아웃라인 개선을 위하여 선택적인 "밴드 앤티 에일리어스(band anti-alias)"를 수행한다. 단계 4020에서, "밴드 앤티 에일리어스가 인에이블되고 매핑된 밴드와 그 위쪽 또는 아래쪽 밴드 간의 휘도의 차가 특정된 문턱값(예컨대, 16)을 초과하지 않으면, 단계 4025에서 "밴드 앤티 에일리어스"가 수행된다. 그렇지 않다면, 처리는 단계 4035에서 계속된다.
단계 4025에서는, 밴드 앤티 에일리어스가 수행된다. 위쪽 또는 아래쪽 밴드에서 가까운 비어 있지 않은 빈을 찾으려는 시도가 수행된다. 후보 빈은 band - 1 또는 band + 1에 의해 매핑되는 것이다. 아래 2개의 조건들 중 어느 하나에서, 후보 빈은 매핑된 빈(bin_mapped)을 대체한다:
1. 후보 빈은 비어 있지 않고 그것의 등록 ID(Y)는 Y로부터 16 미만으로 떨어져 있고 bin_mapped는 비어 있다.
2. 후보 빈과 bin_mapped 양쪽 모두 비어 있지 않고 Y는 bin_mapped의 등록 ID(Y)보다 후보 빈의 등록 ID(Y)에 더 가깝다.
단계 4035 내지 4055는 "빈 앤티 에일리어스" 처리를 수행한다. 단계 4035는 매핑된 빈(bin_mapped)이 비어 있는지를 검사한다. 매핑된 빈이 비어 있지 않다면, 단계 4040은 다음과 같이 매핑 에러를 검사한다.
Figure 112007048042379-PCT00003
상기 수식에서 MAX_BIN_ERROR[band]는 정규화 팩터(normalising factor)를 발생시키기 위한 상기 의사코드에서 정의된 바와 같이 각 밴드 내의 max_dist의 1/8이다.
단계 4035가 거짓(아니오)을 반환하면, 처리는 단계 4040에서 계속된다. 그렇지 않다면, 처리는 단계 4045에서 계속된다. 판정 단계 4040에서는, 이 밴드에 대한 최대 빈 에러인 특정한 문턱값을 초과하는 매핑 에러가 있는지를 판정하기 위해 검사가 행해진다.
매핑 에러가 문턱값 내에 있다면, 처리는 단계 4060에서 계속된다. 그렇지 않다면, 더 가까운 빈을 찾기 위해 단계 4055가 수행된다. 단계 4055에서는, 매핑된 밴드에서 칼럼 0으로부터 검색이 시작되어 칼럼 3까지 전방으로 이동한다. 이 검색은 다음 조건들 중 어느 하나가 충족될 때 종료된다:
1. 비어 있는 빈이 발견된다, 및
2. 허용된 문턱값 내에서 매핑 에러를 갖는 빈이 발견된다.
단계 4055의 검색이 조건 1로 종료된다면, (YUV) 값은 비어 있는 빈에 등록되고, 그 비어 있는 빈은 bin_mapped를 대체한다. 만일 양 조건이 실패하면, 최소 매핑 에러를 갖는 빈이 bin_mapped를 대체한다. 그 후 처리는 단계 4060에서 계속된다.
단계 4035에서의 테스트에 따라서, 만일 매핑된 빈이 비어 있다면, 처리는 단계 4045에서 계속된다. 판정 단계 4045에서는, 동일 밴드 내의 가까운 비어 있지 않은 빈이 발견되었는지를 판정하기 위해 검사가 행해진다. 단계 4045는 칼럼 0에서 3까지 검색하여 이전에 정의된 매핑 에러 문턱값을 만족시키는 비어 있지 않은 빈을 찾으려고 시도한다. 만일 그러한 빈이 발견되면, 단계 4052에서 비어 있는 빈은 bin_mapped를 대체하고, 그 후 처리는 단계 4052에서 계속된다. 그렇지 않다면, 단계 4045가 거짓(아니오)을 반환하면, 단계 4050에서 bin_mapped는 컬러(YUV) 값으로 등록되고 처리는 단계 4060에서 계속된다.
단계 4060에서는, 매핑된 빈(bin_mapped)에 픽셀 컬러(YUV)가 누산되고 bin_mapped 내의 픽셀 카운트가 증가된다. 단계 4065에서는, 현 픽셀에 대하여 bin_mapped의 위치가 기록된다. 단계 4070에서는, 타일에 픽셀이 더 남아 있는지를 판정하기 위해 검사가 행해진다. 그 결과가 예이면, 처리는 단계 4010에서 계속된다. 그렇지 않다면, 그것은 단계 4075에서 계속되어, 각 비어 있지 않은 빈 내의 누산된 컬러가 그것의 픽셀 카운트로 나누어진다. 각 비어 있지 않은 빈의 평균 컬러는 제1 팔레트를 형성한다. 그 후 처리가 종료된다.
2.2.1.2. 히스토그램 분석 및 화상 분류
타일 분류는 타일 내의 지배 컬러들을 찾는 방법이다. 팔레트 내의 분포 및 컬러 분산에 기초하여, 타일들은 3개의 그룹: 플랫, 바이-레벨, 및 멀티-컬러로 분류된다. 플랫 타일들은 인간의 눈에 시각적으로 일정한 컬러이고 통상적으로 2D 히스토그램에서 클러스터를 형성하다. 플랫 팔레트는 3개까지의 컬러를 갖고 컬러 분산은 작다. 바이-레벨 타일들은 2개의 특이한 컬러들을 갖고 통상적으로 2D 히스토그램에서 수직으로 정렬(line up)한다. 바이-레벨 팔레트는 몇 개의 휘도 밴드들에 걸쳐 있는 컬러들을 갖지만, 각 휘도 밴드에서의 컬러 분산은 작다. 멀티-컬러 타일들은 통상적으로 2D 히스토그램에서 다수의 빈들에 퍼져 있다. 멀티-컬러 팔레트는 처음 2개의 테스트에서 실패한 타일들을 포함한다.
도 11의 단계 1120은 2D 히스토그램에서 빈 분포 및 컬러 특성을 분석하고 그에 따라서 타일을 분류한다. 타일들은 3개의 그룹: 플랫, 바이-레벨 및 멀티-컬러로 분류된다. 도 47은 단계 1120의 처리를 더 상세히 예시한다. 단계 4710에서는 플랫 타일 테스트가 수행된다. 만일 결과가 예이면, 단계 4712에서 타일은 플랫으로 분류된다. 그렇지 않다면, 단계 4720에서 타일이 바이-레벨인지를 판정하는 제2 테스트가 수행된다. 만일 바이-레벨 테스트에 대한 결과가 예이면, 단계 4722에서 타일은 바이-레벨로 분류된다. 그렇지 않다면, 단계 4724에서 타일은 멀티-컬러로 분류된다. 단계 4710 및 4720에 대하여 이하에서 더 상세히 설명한다.
단계 4710에 관하여, 먼저 빈들이 모두 비어 있지 않은 최고 휘도와 최저 휘도 밴드 사이의 범위로서 LumRange가 정의된다. 타일이 플랫 테스트를 통과하기 위해서, 타일은 다음 3개 조건 모두를 만족시켜야 한다:
1. 비어 있지 않은 빈들의 수 <= 3,
2. LumRange <= 2, 및
3. FlatColourVariance < FLAT_COLOUR_VARIANCE,
여기서, FlatColourVariance는 최대 빈과 나머지 사이의 픽셀 카운트 가중 맨하탄 거리(pixel count weighted Manhattan distances)의 합으로서 정의된다. 문턱값 파라미터는 FLAT_COLOUR_VARIANCE = 15 일 수 있다.
단계 4720에 관하여 타일이 바이-레벨 테스트를 통과하기 위해서, 타일은 다음 3개 조건 모두를 만족시켜야 한다:
1. 비어 있지 않은 빈들의 수 <= BILEVEL_MAX_BIN_CNT,
2. LumRange > 2, 및
3. MaxColourVariance < BILEVEL_COLOUR_VARIANCE,
MaxColourVariance는 max(ColourVariance[band])로서 정의되고, 여기서 ColourVariance[band]는 밴드 내의 최대 빈과 나머지 사이의 픽셀 카운트 가중 맨하탄 거리의 합이다. 파라미터 값들은 BILEVEL_MAX_BIN_CNT = 16 이고 BILEVEL_COLOUR_VARIANCE = 40 일 수 있다.
2.2.1.3. 제2 팔레트 형성
도 41은 도 11의 단계 1130의 처리를 더 상세히 예시한다. 단계 4110은 타일이 플랫으로서 분류되는지를 테스트한다. 만일 타일이 플랫이면, 단계 4120은 플랫 컬러(flat colour)를 형성한다. 이것은 비어 있지 않은 빈들의 가중 평균을 계산함으로써 행해질 수 있다. 단계 4110에서의 테스트 결과가 아니오이면, 처리는 단계 4130에서 계속되어 타일이 바이-레벨로 분류되는지를 테스트한다. 만일 테스트 결과가 예이면, 처리는 단계 4140으로 이동한다. 단계 4140에서는, 2-컬러(two-colored) 팔레트가 발생된다. 그렇지 않고, 단계 4130이 거짓을 반환하면, 처리는 단계 4150에서 계속된다. 단계 4150에서는, 멀티-컬러(multi-coloured) 팔레트가 발생된다.
2.2.1.3.1. 2-컬러 팔레트 발생
도 42는 단계 4140에서 바이-레벨 타일에 대하여 2-컬러 팔레트를 발생시키는 것의 상세를 제공한다. 목적은 화상을 표현하기 위한 2개의 대조 컬러(contrasting colours)를 찾는 것이다. 하프토닝 및 인쇄 시의 레지스트레이션 에러로 인하여, 최초 2개의 대조 컬러들을 나타내는 컬러들은 통상적으로 오염(pollute)된다. 그 결과, 전경 및 배경 영역들의 평균 컬러들은 원래의 화상에 대한 양호한 표현이 아니다. 전이 영역에서 컬러들을 제외시키는 것으로 화상은 더 선명(sharp)해 보이게 된다.
단계 4210에서는, 지배 컬러들에 대한 최초 팔레트를 형성하기 위해 가장 어두운 컬러와 가장 밝은 컬러가 선택된다. 단계 4220에서는, 6개의 가장 개체수가 많은 빈들을 빈들의 리스트에 추가하는 데 이용한다. 상위 6개의 빈들(top 6 bins)은 픽셀 카운트에 따라서 팔레트로부터 발견된다. 단계 4230 내지 단계 4270은 리스트 내의 컬러들을 순차적으로 처리한다. 단계 4230에서는, 리스트로부터 다음 빈 컬러 C가 획득된다. 판정 단계 4240은 컬러 C가 최초 팔레트에 포함되었는지 또는 컬러가 2개의 극단(extreme)들로부터 너무 멀리 있는지를 테스트한다. 만일 결과가 예이면, 그 컬러는 무시되고 처리는 단계 4230으로 되돌아가서 처리를 위한 다음 빈 컬러를 얻는다. 만일 단계 4240에서의 결과가 아니오이면, 처리는 단계 4250에서 계속된다. 판정 단계 4250은 컬러가 최초 팔레트에 병합하기에 적합한지를 테스트한다. 병합에 적합한 컬러는 최초 팔레트의 임의의 컬러에 가까이 위치한 컬러이다. 만일 단계 4250으로부터의 테스트 결과가 예이면, 그 컬러는 가중 픽셀 카운트를 갖는 더 가까운 맨하탄 컬러 거리에 기초하여 최초 팔레트 컬러들 중 하나에 병합된다. C의 픽셀 카운트는 병합 대상인 팔레트 컬러의 픽셀 카운트에 더해진다. 처리는 단계 4270에서 계속된다. 만일 단계 4250의 결과가 아니오이면, 컬러는 무시되고 처리는 단계 4270으로 이동하여 미처리 컬러가 있는지를 검사한다. 만일 단계 4270에서의 결과가 예이면, 처리는 단계 4230으로 되돌아간다. 그렇지 않다면, 처리는 종료된다.
2.2.1.3.2. 멀티-컬러 팔레트 발생
도 43은 멀티-컬러 타일에 대한 멀티-컬러 팔레트를 발생시키는 도 41의 단계 4150을 더 상세히 설명한다. 단계 4310에서는, 가장 어두운 컬러와 가장 밝은 컬러를 최초 지배 컬러들로서 선택하여 최초 팔레트를 형성한다. 단계 4320에서는, 아래 두 조건 모두가 참이면 제3 컬러가 팔레트에 추가된다.
1. LumRange > THIRD_COLOUR_MIN_LD, 및
2. LargestVar > THIRD_COLOUR_MIN_VAR,
LargestVar은 가장 어두운 휘도 밴드와 가장 밝은 휘도 밴드 사이의 빈들 중에서 가장 밝은 컬러와 가장 어두운 컬러의 평균 컬러로부터의 최대 맨하탄 컬러 거리로서 정의된다. 만일 상기 테스트가 참이면, LargestVar을 발생시키는 컬러가 제3 최초 팔레트 컬러로서 추가된다. 문턱값은 THIRD_COLOUR_MIN_LD = 4이고, THIRD_COLOUR_MIN_VAR = 40일 수 있다.
단계 4330에서는, 상위(즉, 가장 개체수가 많은) 6개의 빈들이 빈들의 리스트에 추가된다. 단계 4340 내지 4395는 리스트의 컬러들을 순차적으로 처리한다. 단계 4340에서는, 리스트로부터 다음 빈 컬러 C가 획득된다. 단계 4350은 그 컬러가 최초 팔레트에 포함되었는지를 테스트한다. 만일 그 결과가 예이면, 그 컬러는 무시되고 처리는 단계 4340으로 되돌아간다. 그렇지 않다면, 단계 4360은 그 컬러를 팔레트 컬러들 중 하나에 병합하려고 시도한다. 그 컬러는 가장 가까운 맨하탄 컬러 거리가 BIN_MERGE_THRESHOLD1 내에 있다면 그 거리를 갖는 팔레트 내의 컬러에 병합되고, 여기서 상기 문턱값은 BIN_MERGE_THRESHOLD1 = 10일 수 있다. 만일 단계 4360에서의 시도가 성공하면, 처리는 단계 4395에서 계속되어 처리할 컬러가 더 있는지를 검사한다. 그렇지 않다면, 처리는 단계 4370으로 이동한다.
단계 4370은 여분의 컬러가 팔레트에 추가될 수 있는지를 테스트한다. 만일 단계 4370이 참(예)을 반환하면, 처리는 단계 4380에서 계속된다. 단계 4380에서는 아래 의사 코드에서의 테스트가 참이면 여분의 컬러가 추가된다.
Figure 112007048042379-PCT00004
minDist는 팔레트 컬러들에 대한 C의 가장 가까운 맨하탄 컬러 거리이다. pCnt는 C의 픽셀 카운트이다. pixel_count_closest_palatte_colour는 minDist를 발생시키는 팔레트 컬러의 픽셀 카운트이다. 문턱값들은 MAX_NUM_PALETTE_COLOURS = 4이고, BIN_MERGE_THRESHOLD2 = 70이고, BIN_MERGE_THRESHOLD3 = 40이고, BIN_NEW_MIN = 4000이고, BIN_DONT_TOUCH_CNT = 150일 수 있다.
단계 4380으로부터, 처리는 단계 4395에서 계속된다.
만일 단계 4370에서의 테스트가 거짓이면, 처리는 단계 4390에서 계속된다. 단계 4390에서는, 빈 컬러 C가 가장 가까운 맨하탄 컬러 거리를 갖는 팔레트 컬러와 병합된다. 컬러들은 가중 픽셀 카운트와 병합되고 C의 픽셀 카운트는 병합 대상인 팔레트 컬러의 픽셀 카운트에 더해진다. 처리는 단계 4395에서 계속된다. 만일 단계 4395에서 처리할 컬러가 더 없다면, 처리는 종료된다.
2.2.1.4. 픽셀을 제2 팔레트와 관련시키기
일단 지배 컬러들이 발견되면, 타일 내의 픽셀들은 지배 컬러들 중 하나로 양자화된다. 연결 컴포넌트 분석을 위하여 지배 컬러 리스트와 함께 양자화된 맵이 생성된다. 각 그룹에 대한 양자화 처리는 다음과 같다:
1) 플랫 - 양자화 없음;
2) 바이-레벨 - 팔레트를 2개의 지배 컬러들 중 하나에 다시 매핑하거나 최초 픽셀들을 이진화하기 위한 문턱값을 찾는다; 및
3) 멀티-컬러 - 팔레트를 지배 컬러들 중 하나에 다시 매핑한다.
이진화는 보다 선명한(sharp) 아웃라인들을 생성하지만 이진화는 적당한 문턱값을 찾는 것을 필요로 하기 때문에 더 오래 걸린다. 문턱값을 찾는 단계들은: 1) 휘도 채널에 대하여 1차 미분(first derivative)을 수행하고, 2) 에지 픽셀들을 식별하고, 3) 에지 픽셀들로부터의 평균 휘도 값을 문턱값으로 이용하는 것이다. 에지 픽셀들은 그들 주위의 3×3 1차 미분 출력이 미리 정의된 문턱값보다 모두 큰 픽셀들이다.
도 44는 도 11의 단계 1140의 상세를 제공한다. 단계 4410은 타일이 바이-레벨로 분류되는지를 테스트한다. 만일 그 테스트 결과가 예이면, 처리는 단계 4420에서 계속된다. 단계 4430에서는, 멀티-컬러 타일이 매핑된다. 그렇지 않다면, 처리는 단계 4430에서 계속된다. 단계 4420에서는 바이-레벨 타일이 매핑된다.
2.2.1.4.1. 바이-레벨 타일 매핑
도 45는 단계 4420의 상세를 제공한다. 전체 프로세스(4420)는 모든 비어 있지 않은 빈들을 양자화 에러 검사와 함께 제2 팔레트 내의 2개의 컬러들에 매핑한다. 단계 4510 내지 단계 4570은 각 비어 있지 않은 빈에 대하여 양자화 및 에러 검사를 수행한다. 만일 큰 양자화 에러가 발견되지 않으면, 프로세스는 모든 픽셀들을 빈 양자화 후에 제2 팔레트에 다시 매핑한다. 만일 큰 양자화 에러가 발견되면, 타일은 멀티-컬러로 다시 분류되고 멀티-컬러 타일 매핑 처리를 받는다. 바이-레벨 타일을 매핑하는 상세에 대해서는 아래에서 설명된다.
단계 4510은 아웃라인 개선이 요구되는지를 판정하고 아웃라인 개선 처리를 받는 빈에 대한 양자화를 위해 바람직한 극단 컬러(extreme colour)를 선택한다. 아웃라인 개선은 2개의 팔레트 컬러들 중 하나의 픽셀 카운트가 다른 픽셀 카운트보다 5의 인수(factor)만큼 더 큰(outweigh) 경우에 요구된다. 제2 팔레트 내의 2개의 컬러가 제1 컬러 C1 및 픽셀 카운트 P1과 제2 컬러 C2 및 픽셀 카운트 P2를 갖는다고 하자. 만일 (P1/P2) 또는 (P2/P1)이 5보다 크다면, 아웃라인 개선이 요구되고 OUTLINE_ENHANCEMENT가 참(true)으로 설정된다. 바람직한 극단 컬러는 보다 작은 픽셀 카운트를 갖는 컬러일 수 있다.
단계 4515는 픽셀 카운트 pCnt를 갖는 다음 비어 있지 않은 빈을 얻는다. 단계 4520은 2개의 컬러의 양자화 에러를 계산한다. 2개의 팔레트 컬러들에 대한 맨하탄 거리들(D1 및 D2)이 계산되고 보다 작은 것이 minDist로서 정의된다. minDist는 양자화 에러이다. 그 후 프로세스는 판정 단계 4525에서 계속되어 양자화 에러가 너무 큰지를 검사한다. 아래 의사 코드는 양자화 에러가 너무 큰 경우의 조건을 정의한다:
Figure 112007048042379-PCT00005
여기서 문턱값들은 BIN_NEW_BILEVEL_THRESHOLD = 6000이고, BIN_NEW_BILEVEL_COLOUR_DIFF = 50이고, BIN_MERGE_BILEVEL_CNT_MIN = 100일 수 있다.
만일 단계 4525의 테스트가 참이면, 처리는 단계 4540에서 계속된다. 단계 4540에서는, 현재의 빈이 여분의 지배 컬러 리스트에 추가된다. 그 후 처리는 단계 4570에서 계속된다. 단계 4525에서의 테스트가 거짓이면, 처리는 판정 단계 4530에서 계속되어 여분의 지배 컬러 리스트가 비어 있는지를 검사한다. 만일 리스트가 비어 있지 않다면(아니오), 프로세스는 단계 4570으로 스위칭하여 처리될 비어 있지 않은 빈들이 더 있는지를 확인한다. 그렇지 않고, 단계 4530의 결과가 예이면, 처리는 단계 4545에서 계속되어 아웃라인 개선이 요구되는지 및 2개의 거리가 가까운지를 판정한다. 테스트 조건은 아래 의사 코드로서 주어진다:
Figure 112007048042379-PCT00006
여기서 문턱값은 BILEVEL_THRESHOLD_MARGIN = 16일 수 있다.
만일 단계 4545에서의 테스트가 참이면, 처리는 단계 4550에서 계속된다. 단계 4550에서는, 빈이 바람직한 컬러로 양자화된다. 처리는 단계 4570에서 계속된다. 그렇지 않다면, 처리는 단계 4555에서 계속되어 D1 및 D2에 기초하여 빈을 보다 가까운 컬러로 양자화한다. 그 후 프로세스는 단계 4570에서 계속되어 처리될 비어 있지 않은 빈들이 더 있는지를 검사한다. 만일 비어 있지 않은 빈들이 더 있다면, 처리는 단계 4515로 되돌아간다. 만일 비어 있지 않은 빈들이 더 없다면, 프로세스는 판정 단계 4560에서 계속되어 여분의 지배 컬러 리스트가 비어 있는지를 검사한다. 이것은 빈 양자화 처리 중에 큰 양자화 에러가 있는지를 판정한다. 만일 리스트가 비어 있다면, 프로세스는 단계 4575에서 계속되고 모든 픽셀들을 단계들 4550 및 4555 중 적당한 어느 하나에서의 빈 매핑에 따라서 2개의 팔레트 컬러 중 하나로 다시 매핑한다. 그 후 처리는 종료된다. 만일 단계 4560에서 리스트가 비어 있지 않다면, 프로세스는 단계 4565에서 계속되어 하나의 여분의 컬러를 팔레트에 추가한다. 여분의 지배 컬러 리스트 내에서 최고 픽셀 카운트를 갖는 빈이 제3 팔레트 컬러로서 선택된다. 단계 4430에서는, 타일이 멀티-컬러(multi -coloured) 타일로서 다시 매핑된다. 그 후 처리는 종료된다.
2.2.1.4.2. 멀티-레벨 타일 매핑
도 44의 단계 4430은 도 46에서 더 상세히 설명된다. 단계 4610은 다음 비어 있지 않은 빈을 획득한다. 단계 4620은 그 빈을 팔레트 컬러들 중 하나로 양자화한다. 이것은 가장 가까운 맨하탄 컬러 거리에 기초하여 행해질 수 있다. 단계 4630은 처리될 비어 있지 않은 빈들이 더 있는지를 검사한다. 만일 단계 4630에서의 테스트가 참이면, 처리는 단계 4610에서 계속된다. 만일 단계 4630에서의 테스트가 아니오를 반환하면, 처리는 단계 4640에서 계속된다. 단계 4640에서는, 모든 픽셀들이 단계 4620에서의 빈 매핑에 따라서 팔레트 컬러들 중 하나로 다시 매핑된다. 그 후 처리가 종료된다.
2.2.2. 컬러 CC 분석 및 블롭 통계
도 10의 이 프로세스(1020)는 이전 단계로부터 양자화된 타일을 취하여 블롭들을 형성한다. 각 블롭은 바운딩 박스, 사이즈, 평균 컬러, 비트마스크, 및 블롭 경계 길이의 통계들을 갖는다. 블롭들은 단일 래스터 패스에서 빠르고 효율적인 방식으로 형성된다. 래스터 순서로, 동일 컬러 클래스에 속하는 양자화된 타일 내의 이웃 픽셀들이 그룹화되어 "런들(runs)"을 형성한다. 각 런(세그먼트)의 끝에서, 런은 확장 또는 병합을 위해 (8방 연결 면에서) 위쪽 행의 접촉 세그먼트들과 비교된다. 만일 아직 블록 라벨이 부여되지 않은 런이 동일 클래스의 블롭과 접촉하면 확장이 일어난다. 대조적으로, 동일 클래스의 2개의 블롭들이 접촉하면 병합이 일어난다. 만일 확장이 가능하지 않다면 새로운 블롭이 형성된다. 각 런의 끝에서 블롭 통계들이 업데이트된다.
도 36은 예시적인 6×6 입력 타일(3610)을 이용한 컬러 블로빙 처리(3600)의 예시이다. 다수의 컬러들을 갖는 입력 타일(3610)에 컬러 양자화가 적용되어 양자화된 타일(3620)을 생성한다. 양자화된 타일(3620)은 지배 컬러 클래스들에 대응하는 클래스 라벨들을 포함한다. 이 경우에는, 타일 내에 2개의 지배 컬러가 있어서, 클래스 라벨 0 및 1을 부여한다. 행에서, 동일 클래스의 인접 라벨들을 그룹화하여 런들을 형성함으로써 연결 컴포넌트 분석이 시작된다. 도 36에서는, 예를 들면, 제1 행 내의 처음 4개의 '0'들이 하나의 런을 형성하고 다음 2개의 '1'들이 또 하나의 런을 형성한다. 양자화된 타일(3620) 내의 연속 행들로부터 동일 클래스의 런들을 결합함으로써 블롭들이 형성된다. 타일(3630)은 타일 내의 런들을 보여준다. 현 세그먼트를 위쪽 행으로부터의 접촉 세그먼트들과 비교할 때, 3개의 가능한 액션들이 있다:
1. 현 세그먼트를 블롭에 추가함으로써 기존의 블롭을 확장시킨다;
2. 2개의 블롭들에 대한 통계들을 하나로 통합함으로써 2개의 블롭들을 병합한다; 및
3. 현 세그먼트를 이용하여 블롭을 초기화함으로써 새로운 블롭을 형성한다.
타일(3640)은 결과의 블롭들, 블롭0 및 블롭1을 보여주는데, 블롭0은 외부 바운딩 박스(outer bounding box)를 갖고 블롭1은 내부 바운딩 박스(inner bounding box)를 갖는다. 런들 및 블롭들이 형성되는 것과 동시에 블롭 통계들이 누산된다. 그래서 처리 단계가 끝날 때까지는, 각 블롭이 블롭0 및 블롭1에 대하여 도 36에 도시된 바와 같이 모든 통계들을 갖는다. 비트마스크들(3650 및 3660)이 대표적이다. 예시적인 비트맵들(3650 및 3660)은 이 단계에서 실제로 형성되지 않는다. 양자화된 컬러는 블롭의 평균 컬러로서 이용된다. 대안적으로, 블롭의 평균 컬러는 양자화된 컬러가 아니라 해당 블롭 내의 실제 픽셀 값들을 누산함으로써 결정될 수 있다. 이것은 보다 정확한 평균 컬러를 제공한다. 다시, 블롭 통계들은 사이즈, 평균 컬러, 경계 길이, 바운딩 박스, 및 비트마스크를 포함할 수 있다.
도 9는 도 10의 단계 1020을 보다 상세히 예시하는 것으로, 위에서 아래로 한 번에 하나의 타일 행을 처리하여, 양자화된 타일로부터 블롭들을 형성하기 위해 루프 구조를 이용한다. 단계 910에서는, 처리를 위해 현 타일 행이 획득된다. 단계 920에서는, 동일 양자화된 라벨의 픽셀들의 연속 세그먼트가 형성된다. 이것은 그것의 시작 위치와 끝 위치를 기록함으로써 행해진다. 이 세그먼트는 현 세그먼트 Sc이다. 시작 위치는 이전 세그먼트의 끝 위치의 오른쪽에 있는 픽셀이다. 새로운 타일 행의 경우, 시작 위치는 그 행에서의 처음 픽셀이다. 끝 위치는 왼쪽에서 오른쪽으로 현 타일 행을 가로질러 양자화된 라벨의 한 픽셀씩의 검사 중에 양자화된 라벨의 변화가 발생하기 전의 마지막 픽셀이다. 변화가 검출되기 전에 현 타일 행이 끝나는 경우, 끝 위치는 행의 마지막 픽셀이다. 블롭의 컬러를 나중에 재추정할 목적으로, 최초 풀컬러 타일 내의 세그먼트의 각 픽셀에 대한 YUV 값들이 그것의 시작 위치로부터 끝 위치까지의 검사 중에 누산된다. 대안적으로, 세그먼트의 양자화된 컬러는 컬러 재추정 없이 이용될 수도 있다.
단계 930에서는, 세그먼트를 이용하여 새로운 블롭이 형성되거나 기준의 블롭이 확장된다. 도 12는 이 단계의 상세를 제공한다. 판정 단계 940에서는, 행 중에 미처리 픽셀들이 남아 있는지를 판정하기 위해 검사가 행해진다. 만일 판정 단계 940이 참(예)을 반환하면, 처리는 단계 920으로 되돌아간다. 이것은 현 타일 행 내의 모든 픽셀들이 처리될 때까지 일어난다. 만일 단계 940이 거짓(아니오)을 반환하면, 처리는 단계 950에서 계속된다. 판정 단계 950에서는, 미처리 행들이 남아 있는지를 판정하기 위해 검사가 행해진다. 만일 단계 950이 참(예)을 반환하면, 처리는 단계 910에서 계속된다. 이것은 미처리 타일 행들이 더 없을 때까지 일어난다. 만일 단계 950이 거짓(아니오)을 반환하면, 처리는 종료되고; 양자화된 타일 내의 픽셀마다 모두 블롭에 할당되었다.
2.2.2.1. 블롭 형성
도 12는 단계 930을 더 상세히 예시한다. 도 12의 프로세스는 도 9의 단계 920에서 식별된 현 세그먼트 Sc를 입력으로서 취한다. 단계 1205에서는, 변수 k가 1로 초기화된다. 이 값은 현 세그먼트 Sc 에 연결되어 있는 현 타일 행 위쪽의 타일 행의 k 번째 세그먼트 Sk를 가리킨다. 바람직하게는, 상기 연결은 8방 연결(8-way connected)이다. 단계 1210에서는, Sk와 Sc 간의 비교가 수행된다. 판정 단계 1215에서는, Sk와 Sc가 동일 클래스인지를 판정하기 위해 검사가 행해진다. 만일 그 두 세그먼트, Sk와 Sc가 동일 양자화 라벨을 갖는다면, 처리는 단계 1215로부터 단계 1220으로 이동한다. 그렇지 않다면, 처리는 판정 블록 1235에서 계속된다. 판정 단계 1220에서는, Sk가 동일 클래스의 제1 연결 세그먼트인지를 판정하기 위해 검사가 행해진다. 따라서, 만일 Sk가 Sc와 동일 양자화 라벨을 갖는 제1 연결 세그먼트이면, 처리는 단계 1225에서 계속된다. 그렇지 않다면, 처리는 단계 1230에서 계속된다. 단계 1225에서는, 현 블롭이 확장된다. 따라서, 현 세그먼트는 k번째 세그먼트가 속하는 블롭 상에서 확장된다. 블롭의 확장은 블롭의 사이즈, 경계 정보, 바운딩 박스, 및 누산된 YUV 값들을 업데이트하는 것을 수반한다. 그 후 처리는 단계 1235에서 계속된다. 반대로, 판정 단계 1220이 거짓을 반환하면, 이것은 현 세그먼트가 이미 블롭 라벨, 예컨대, 블롭[i]를 할당받았고, 다른 블롭, 예컨대, 블롭[j]와 접촉한다는 것을 나타내고, 처리는 단계 1230에서 계속된다. 이들 2개의 블롭들이 상이한 블롭 라벨을 갖는다면, 즉 i ≠ j 이면, 단계 1230에서 이 블롭들은 함께 병합된다. 단계 1230에서의 블롭 병합 처리는 도 15에 도시되어 있다. 그 후 처리는 단계 1235에서 계속된다.
단계들 1215, 1225 및 1230으로부터, 처리는 판정 블록 1235로 계속된다. 판정 블록 1235에서는, 마지막 연결 컴포넌트가 처리되었는지를 판정하기 위해 검사가 행해진다. 만일 k 번째 세그먼트가 현 세그먼트에 연결된 마지막 세그먼트가 아니면, 처리는 단계 1240에서 계속되고 k는 1 증가된다. 그 후 처리는 단계 1210으로 되돌아가서 다음 연결 세그먼트를 처리한다. 그렇지 않고, 만일 판정 단계 1235가 참을 반환하면, 처리는 판정 블록 1245로 이동한다. 판정 블록 1245에서는, 연결 세그먼트들의 어느 것도 동일 클래스(즉, 현 세그먼트와 동일한 양자화 라벨)가 아닌지를 판정하기 위해 검사가 행해진다. 만일 단계 1245가 참(예)을 반환하면, 처리는 단계 1250에서 계속된다. 단계 1250에서 현 세그먼트를 이용하여 새로운 블롭이 형성된다. 새로운 블롭의 형성은 현 세그먼트에 새로운 블롭 라벨을 할당하고, 블롭의 수를 1 증가시키고, 현 세그먼트 정보를 이용하여 블롭 통계를 초기화하는 것을 수반한다. 단계 1250에 이어서 처리가 종료된다. 마찬가지로, 판정 블록 1245가 거짓(아니오)을 반환하면, 처리가 종료된다.
2.2.2.2. 블롭 병합의 예
도 15는 블롭 병합(1500)의 예를 도시한다. 세그먼트들(1510 및 1520)은 모두 블롭[i]에 속하고, 이 블롭[i]는 블롭[j]에 속하는 세그먼트(1530)에 연결되어 있다. 세그먼트(1520)에 대한 현재의 시작 및 현재의 끝이 도시되어 있고, 마찬가지로 세그먼트(1530)에 대한 위쪽 시작 및 위쪽 끝이 도시되어 있다. 또한 도 15에는 세그먼트들(1520 및 1530)의 오버랩이 도시되어 있다. 블롭 병합 프로세스(1500)는 2개의 블롭들의 통계를 결합하고, 하나의 블롭 라벨을 다른 것에 매핑하고, 블롭의 수를 1 감소시키는 것을 수반한다. 예를 들면 도 15에서, 라벨 j는 라벨 i에 매핑된다. 다음의 의사 코드 명령들은 블롭 통계를 결합하는 데 이용된다:
Figure 112007048042379-PCT00007
2.2.3. 타일내 병합
일단 연속 컴포넌트 분석에 의해 타일에 대한 블롭들이 형성되면, 다음 단계는 컬러, 사이즈, 및 블롭 경계 길이 통계를 이용하여 의미적으로 관련된 블롭들을 함께 병합하는 것이다. 이 단계 이후로, 블롭들은 병합만 될 수 있고, 분할되지는 않는다. 그러므로, 타일은 과분할되는 것으로부터 분할의 정확한 레벨에 훨씬 더 가까이 이동한다. 타일내 병합의 한 예가 도 37 및 도 38에 도시되어 있는데, 주어진 블롭들의 쌍을 병합할지를 평가하기 위해 블롭 통계들이 이용된다. 이 예에서는, 4개의 양자화 컬러들이 있고 연결 컴포넌트 분석은 10개의 블롭들을 반환한다. 도 37은 왼쪽에 병합 전 블롭들(3710)을 보여준다. 다수의 이들 블롭들은 잔여 하프톤 패턴들 및 2개의 별개의 컬러 영역들 간의 컬러 "블리딩(bleeding)" 효과에 기인한다. 타일내 병합을 적용한 후에, 비교적 긴 경계 길이를 갖는 작은 블롭들이 유사한 컬러 특징들을 갖는 보다 큰 블롭들로 병합된다. 이 예(3700)에 병합 후 블롭들(3720)이 도시되어 있다. 도 38은 원래의 타일(3810)과 병합된 블롭들(3820)의 비교(3800)를 포함한다.
양자화 및 블롭 형성 처리들은 종종 다수의 작은 불필요한 또는 오류 블롭들을 생성한다. 이들은 노이즈 반점들(noise speckles), 입력 화상에서의 잔여 하프톤들에 의해 야기된 작은 블롭들, 또는 보다 큰 연결 컴포넌트들의 에지에서의 블리딩 효과에 의해 야기된 얇은, 높은 종횡비(high-aspect-ratio)의 블롭들의 형태로 되어 있다. 오류 블롭들은 이들 블롭들을 오류 블롭들과 접촉하고 있으면서 컬러가 가장 가까운 블롭과 병합함으로써 제거될 수 있다.
속도 및 메모리 이용은 분할 및 연결 컴포넌트 처리들에 의해 생성된 타일 내의 블롭들의 수를 제한함으로써 향상된다. 만일 타일 내에 너무 많은 블롭들이 있다면, 그 수는 유사한 컬러의 일부 블롭들을 그 블롭들이 접촉하고 있지 않더라도 병합함으로써 감소될 수 있다. 이것은 별개의 연결되지 않은 부분들을 갖지만, 단일 엘리먼트로서 취급되는 블롭들을 생성한다. 이것은 나중 단계에서 폐기되는 다수의 작은 노이즈 엘리먼트들을 갖는 타일들에서만 일어나므로 품질에 악영향을 미치지 않는다.
도 19는 도 10의 단계 1030을 상세히 예시한다. 단계 1905에서는, 현 타일 내의 블롭이 획득된다. 단계 1910에서는, 둘레길이 대 사이즈 비(perimeter to size ratio)를 검사하여 그것이 큰지를 판정한다. 만일 이 파라미터가 문턱 레벨보다 더 큰 것으로 확인되면, 처리는 단계 1915에서 계속된다. 그렇지 않고, 단계 1910이 거짓을 반환하면, 처리는 단계 1930에서 계속된다. 단계 1915에서는, 타일 에지와 접촉하는 블롭 내의 픽셀들이 비율이 검사된다. 만일 그 비율이 문턱값보다 크면, 처리는 단계 1920에서 계속된다. 단계 1920에서는, 블롭을 "타일간 강제 병합(force merge inter-tile)"으로 표시한다. 블롭에 대한 강제 병합 플래그가 세트되고, 이것은 그 블롭이 도 14의 단계 1420에서 인접한 타일들 내의 연속 컴포넌트들과 훨씬 더 병합될 가능성을 크게 한다. 단계 1920 후에, 처리는 단계 1930에서 계속된다. 만일 단계 1915에서 블롭의 타일 에지 비율이 문턱값보다 작으면, 처리는 단계 1925에서 계속된다. 단계 1925에서는, 블롭이 가장 가까운 컬러를 갖는 이웃 블롭과 병합된다. 현 블롭과 접촉하는 모든 블롭들 및 그들의 현 블롭으로부터의 컬러 거리가 구해진다. 그 후 현 블롭은 컬러가 가장 가까운 이웃과 병합된다. 그 후 처리는 단계 1930에서 계속된다. 판정 단계 1930에서는, 타일 내에 처리될 블롭이 더 있는지를 판정하기 위해 검사가 행해진다. 만일 단계 1930이 참(예)을 반환하면, 처리는 단계 1905로 되돌아간다. 그렇지 않다면, 처리는 단계 1935에서 계속된다.
판정 단계 1935에서는, 타일 내의 블롭들의 현 개수를 검사하여 너무 많은 블롭들이 있는지를 판정한다. 만일 블롭들의 수가 미리 정의된 한계보다 더 큰 것으로 확인되면, 처리는 단계 1940에서 계속된다. 그렇지 않다면, 처리는 종료된다. 단계 1940에서는, 타일 에지와 접촉하고 있지 않은 동일 양자화된 컬러 클래스의 블롭들이 함께 병합된다. 이것은 양자화된 컬러 클래스들 각각에 대하여 행해진다. 타일 에지와 접촉하는 블롭들은 병합되지 않는데, 그 이유는 이 블롭들은 훨씬 더 큰 CC들의 부분을 형성할 수 있고 그들을 병합하는 것은 품질에 유해한 영향을 미칠 수 있기 때문이다. 단계 1945에서는, 타일 내의 블롭들의 현 개수를 다시 검사하여 타일 내에 여전히 너무 많은 블롭들이 있는지를 판정한다. 만일 이제 그 수가 미리 정해진 한계보다 작은 것으로 확인되면(아니오), 처리는 종료된다. 그렇지 않다면, 처리는 단계 1950에서 계속된다. 단계 1950에서는, 타일 에지와 접촉하는 각 컬러의 블롭들이 병합된다. 단계 1950은 단계 1940과 유사한 처리를 수행하지만 블롭들의 수를 한계 아래로 감소시키기 위해 타일 에지와 접촉하는 블롭들을 고려한다. 그 후 처리가 종료된다.
2.2.4. 타일간 병합
도 13은 단계 1040의 타일간 병합 처리를 상세히 예시한다. 이 처리는 특정 순서 없이 현 타일의 왼쪽 및 위쪽 경계의 각각에 대하여 반복된다. 다음 설명은 현 타일의 왼쪽 또는 위쪽 경계를 따라서 병합하는 데 적용 가능하다. 예를 들면, 32×32 타일은 그것의 인접 타일 스테이트와 32-픽셀 경계를 갖고 각 픽셀은 블롭 라벨을 갖고 있다. 인접 타일 스테이트는 또한 32-픽셀 경계를 갖고 각 픽셀은 CC 라벨을 갖고 있다. 따라서 경계를 따르는 각 픽셀 스텝에 대하여, 현 타일에는 블롭 라벨이 있고 인접 타일 스테이트에는 대응하는 CC 라벨이 있다. 처리는 단계 1310에서 공통 경계를 따라서 다음 타일 경계 픽셀에 대한 현 타일 내의 블롭 라벨 및 그것의 인접 타일 스테이트 내의 CC 라벨을 획득함으로써 시작한다.
판정 블록 1320에서는 처리가 경계를 따라서 이동할 때 CC 라벨, 블롭 라벨, 또는 마지막 픽셀에서의 변화를 검출하기 위해 테스트가 수행된다. 판정 블록 1320은 현 픽셀이 마지막 경계 픽셀이면 예를 반환한다. 단계 1320이 거짓(아니오)을 반환하면, 처리는 단계 1380에서 계속된다. 그렇지 않고, 단계 1320이 참(예)을 반환하면, 처리는 단계 1330에서 계속된다. 단계 1330은 병합을 위한 후보로서 이용 가능한 블롭의 수 및 CC의 수를 검사한다. 판정 단계 1340에서는, 후보 카운트 조건이 만족되는지를 판정하기 위해 검사가 행해진다. 판정 블록 1340은 블롭들 및 CC들의 병합 후보 카운트가 도 17에 도시되고 이하에서 설명되는 미리 정의된 조건을 만족시키면 예를 반환한다.
만일 도 13의 판정 단계 1340이 거짓(아니오)을 반환하면, 처리는 단계 1370에서 계속된다. 그렇지 않다면, 처리는 단계 1350에서 계속된다. 단계 1350은 컬러 거리 메트릭(metric)에 기초하여 병합 후보들 중에서 병합을 위한 최량의 블롭 및 CC 쌍을 식별한다.
Figure 112007048042379-PCT00008
Figure 112007048042379-PCT00009
이 CC 및 블롭 후보 쌍에 대한 YUV 컬러 값들이라고 하면, 컬러 제곱 거리, sd는 다음과 같이 주어진다:
Figure 112007048042379-PCT00010
여기서 Wy, Wu 및 Wv는 각각 Y, U 및 V에 대한 가중치들이다. 가중치들 Wy, Wu 및 Wv는 각각 0.6, 0.2 및 0,2로 설정될 수 있다. 최량의 블롭 및 CC 쌍은 최소 제곱 거리 값을 갖는 것이다.
최량의 블롭 및 CC 쌍은 단계 1360에 의해 처리되는데, 이 단계는 각종 병합 동작을 수행하고 도 14를 참조하여 더 상세히 설명된다. 단계 1360 또는 판정 단계 1340으로부터의 아니오에 이어서, 처리는 단계 1370에서 계속되어, 블롭 및 CC 후보 카운트가 업데이트된다. 도 48은 모든 동작 조건들에 대한 업데이트 전과 후의 CC 및 블롭 후보 카운트들을 보여준다. 만일 CC 및 블롭 라벨들 양쪽 모두가 변한 것으로 확인되면, CC 및 블롭 후보 카운트들은 병합 전에 모든 가능한 카운트 조합들에 대하여 1로 설정된다(업데이트 전에서의 "x"는 "무관함(Don't Care)"을 나타낸다). 하나의 라벨만 변한 것으로 확인되고 타일 경계의 어느 한쪽에 2개의 후보가 있다면, 카운트들은 2개의 후보 중 어느 것이 병합되는지에 따라서 0 또는 1로 설정될 수 있다. 만일 병합을 위해 제2 블롭이 선택되면(도 49의 4920 참조), 병합이 일어난 후에 두 후보 카운트들 모두 0으로 설정된다. 그러나, 병합을 위해 제1 블롭이 선택되거나 어떤 블롭도 선택되지 않으면, 두 카운트들 모두 1로 설정된다. 후보 카운트 업데이트가 요구되는 남아 있는 경우들에서, 변한 라벨에 대한 카운트는 1 증가되는 반면, 변하지 않은 라벨에 대한 카운트는 1로 설정된다.
단계들 1320 또는 1370 중 어느 하나에 이어서, 처리는 판정 블록 1380에서 계속된다. 판정 블록 1380에서는, 현 픽셀이 마지막 경계 픽셀인지를 판정하기 위해 검사가 행해진다. 만일 단계 1380이 거짓(아니오)을 반환하면, 처리는 단계 1310에서 다음 픽셀 위치로 이동한다. 그렇지 않다면, 처리는 종료된다.
2.2.4.1. 타일간 병합 조건
도 17에 따르면, 병합은 통상적으로 한 측면에는 2개의 후보가 있고 다른 측면에는 하나가 있는 경우에 발생하는데, CC 및 블롭 라벨들 모두가 동시에 변하는 경우는 예외적으로 각 측면에 하나씩의 후보가 있는 것이 병합을 위해 충분하다. 이것은 한 측면의 2개의 인접 후보들이 다른 측면의 동일 후보에 병합하는 것을 피하기 위해서이다. 도 17은 타일간 병합 동작이 수행될 수 있는 조건을 제시한다. 만일 현 CC 및 블롭 카운트가 (1,1)이면, 양 라벨들은 병합이 발생하기 위해 동시에 변해야 한다. 그러나 현 CC 및 블롭 카운트가 (1,2) 또는 (2,1)이면, 어느 한쪽 라벨의 변화로 병합이 발생하기 위해 충분하다. (2,2)인 경우는 결코 발생하지 않는다.
2.2.4.2. 타일간 병합 예
도 49는 블롭 및 CC 후보들 간의 병합의 예시를 제공한다. 3가지 전형적인 경우가 있다: ⅰ) 4910에서 각 측면은 하나의 후보만을 갖고; ⅱ) 4920은 하나의 CC 및 2개의 블롭을 갖고, ⅲ) 4930은 2개의 CC 및 하나의 블롭을 갖는다. 4920의 경우, CC 후보는 2개의 블롭 후보들에 연결된다. 양 블롭이 컬러에서 CC에 가깝지만 하나만 CC와 병합할 수 있다고 가정한다. 만일 위에서 아래로의 순서로 한 번에 각 측면의 한 후보에 대하여 병합이 수행된다면, 상부 블롭은 CC와 병합하고, 하부 블롭은 병합되지 않은 채로 놔둔다. 이것은 가장 바람직한 결과를 생성하지 않을 수 있는데, 그 이유는 하부 블롭이 병합을 위한 보다 양호한 후보일 수 있기 때문이다. 따라서, 4920 및 4930의 경우와 유사한 경우에 대하여 한 측면에 2개의 후보가 요구된다. 4910의 경우는 각 측면에 하나의 후보만을 필요로 하는데, 4-연결(4-connectedness)을 위한 대안적인 병합 조합이 없기 때문이다.
2 이상의 타일에 걸쳐 있는 컬러-연결 컴포넌트들은 타일 래스터 순서로 블롭들을 타일간 병합함으로써 형성된다. 도 39의 예(3900)에서 도시된 바와 같이, 이것은 래스터 순서로 수행되고, 이 경우 타일(3910) 내의 블롭들은 그 타일의 왼쪽 및 위쪽에 각각 위치하는 2개의 인접 타일들(3930 및 3920) 중 어느 하나 내의 블롭들과 병합된다.
각 CC는 그것의 바운딩 박스, 평균 컬러, 픽셀들의 사이즈, 및 접촉 CC들에 관한 정보를 유지하는 데이터 구조로 저장된다. 타일간 병합 처리 중에, 현 타일 내의 블롭마다 모두에 CC 라벨이 할당되고, 대응하는 CC 데이터 구조는 블롭 통계를 이용하여 업데이트된다. 도 16에 도시된 바와 같이 현 타일(1630)과 현 타일(1630)의 왼쪽 및 위쪽 경계들을 따르는 2개의 인접한 타일들(1610, 1620)의 스테이트들(1612, 1622) 간에 병합이 수행된다. 현 타일(1630)은 블롭들을 형성하도록 처리된 픽셀 데이터의 블록이고 공통 경계들을 따르는 픽셀들에 대한 블롭 라벨들(1634)을 갖는다. 대조적으로, 이전의 타일 스테이트(1612, 1622)는 픽셀 데이터를 포함하지 않고, 블롭 통계 및 이들 블롭들에 링크된 연결 컴포넌트 정보만을 포함한다. 타일 스테이트(1612, 1622)는 해당 타일(1610, 1620) 내의 경계들을 따르는 블롭들에 관한 정보 및 그 블롭들이 속하는 CC들(1614, 1624)에의 포인터들을 포함하는 콤팩트한 데이터 구조이다. 특히, 2개의 상이한 타일 스테이트: 왼쪽 타일 스테이트(1612) 및 위쪽 타일 스테이트(1622)가 있고; 각각은 그들의 오른쪽 및 아래쪽의 타일들과 각각 병합하기 위해 현 타일(1630)과의 그들의 공통 경계들을 따르는 각 픽셀에 대한 CC 라벨 정보(1614, 1624)를 갖는다. 이전 타일 내의 블롭들은 이제 연결 컴포넌트들의 일부이다.
2.2.4.3. 최량의 블롭 CC 쌍 처리
도 14는 도 13의 단계 1360을 더 상세히 예시하는 것으로, 단계 1350에서 식별된 최량의 블롭 및 CC 쌍을 입력으로서 취한다. 처리는 단계 1410에서 시작된다. 판정 단계 1410에서는, 블롭이 다른 CC와 이미 병합하였는지를 판정하기 위해 검사가 행해진다. 만일, 판정 블록 1410에서, 식별된 블롭에 이미 CC 라벨이 할당되었다면, 처리는 판정 블록 1440에서 계속된다. 그렇지 않다면, 처리는 판정 블록 1420으로 이동한다. 판정 블록 1420에서는, 단계 1330에서 계산된, 식별된 블록과 CC 쌍 간의 컬러 거리가 컬러-병합 문턱값과 비교된다. 문턱값은 450일 수 있다. 만일 강제 병합 플래그가 세트되었다면, 문턱값은 900일 수 있다. 만일 컬러 거리가 문턱값보다 작으면, 처리는 단계 1430에서 계속된다. 그렇지 않다면, 처리는 단계 1460에서 계속된다. 단계 1430에서는, 블롭 및 식별된 CC가 함께 병합된다. 이것은 블롭의 통계를 이용하여 CC의 통계를 업데이트하고 CC의 라벨을 블롭에 할당함으로써 행해진다. 그 후 처리가 종료된다. 단계 1460에서는, 현 블롭에 대하여 새로운 CC가 형성된다. 그 후 처리가 종료된다.
판정 블록 1440에서는, 식별된 CC와 식별된 블롭이 속하는 CC 간의 컬러 거리가 병합을 위한 컬러 문턱값과 비교된다. 만일 상기 2개의 CC 간의 컬러 거리가 문턱값보다 작다면, 처리는 단계 1450에서 계속된다. 단계 1450에서는, 상기 CC들이 함께 병합된다. 이것은 그들의 통계를 결합하고 그 CC들을 함께 링크하는 "맵-투(map-to)" 포인터를 설정함으로써 행해진다. 그 후 처리가 종료된다. 마찬가지로, 단계 1440이 거짓(아니오)을 반환하면, 처리가 종료된다.
2.2.4.4. CC 매핑 결과
도 18은 도 14의 단계 1450에 따른 CC 매핑 처리의 결과의 예시이다. 이 도면은 CC들(1805, 1810, 1820, 1830)을 병합한 결과로 CC들의 링크된 리스트(1850)가 형성될 수 있다는 것을 보여준다. 이 예시에서, CC(k)(1830)는 널(NULL)(1840)을 가리키는 그것의 맵-투 포인터(1832)를 갖고 있고, 이는 그것이 다른 CC와 병합된 적이 없다는 것을 나타내고, 따라서 그것은 루트 CC라 불린다. 또한, 루트 CC의 통계(1834)는 다수의 병합들에 걸쳐서 개개의 CC 통계를 누산함으로써 결정된다. 예를 들면, CC(1830)의 최종 통계는 CC(h)(1805), CC(i)(1810), CC(j)(1820) 및 CC(k)(1830)가 함께 병합되기 전에 그 CC들의 결합된 통계이다. 통계가 결합되는 순서는 중요하지 않다. 도 18에서, CC(i)(1810)는 CC(j)(1820)를 가리키고, CC(h)(1805)와 CC(j)(1820)는 둘 다 CC(k)(1830)를 가리킨다.
2.2.5. 병합 후 처리
도 50은 도 10의 병합 후 처리 단계(1050)의 흐름도이다. 단계 5010에서는 도 14의 단계 1460과 동일한 처리에서 현 타일 내의 각각의 병합되지 않은 블롭에 대하여 새로운 CC가 형성된다. 단계 5020에서는, 블롭들의 형상 및 외관을 저장하기 위한 이진 화상들이 블롭 라벨들을 이용하여 출력된다. n 블롭들을 갖는 타일에 대해서는, n-1 이진 화상들만 출력될 필요가 있다. 그 이유는 n 번째 이진 화상은 n-1 영역들이 제거된 후에 잔여 영역으로서 암암리에 저장되기 때문이다. 그러므로, 단일 블롭을 포함하는 플랫 타일은 어떤 이진 화상도 저장할 필요가 없다. 대안적인 실시예에서, 이진 화상들은 인덱스 맵으로서 단일의 콤팩트한 데이터 구조로 저장될 수 있고, 여기서 각 픽셀 위치는 블롭 인덱스를 갖고 log2(n) 비트들을 이용하여 표현된다. 예를 들면, 타일당 블롭들의 최대 수가 16이면, 각 픽셀 위치에서의 블롭 인덱스는 4-비트 수를 이용하여 인코딩된다. 다른 대안적인 실시예에서, 바이-레벨 타일들에 대한 이진 화상들은 1-비트 비트맵들을 이용하여 저장될 수 있다. 단계 5030에서는, 현 타일 내의 각 CC의 접촉 리스트가 업데이트된다. 이것은 해당 타일 내의 모든 인접한 CC들을 식별함으로써 행해진다. 단계 5040에서는, 타일 스테이트들이 출력된다. 컬러 분할 처리는 블롭 및 CC 정보를 다음 입력 타일과 병합하기 위한 콤팩트한 타일 스테이트 데이터 구조로 저장한다. 상술한 바와 같이, 2개의 타일 스테이트가 있고, 왼쪽 타일 스테이트는 오른쪽 타일 경계를 따르는 CC 라벨 정보를 갖고, 위쪽 타일 스테이트는 아래쪽 타일 경계를 따르는 CC 라벨 정보를 갖는다.
2.3. 분할 예
도 25a는 3 이상의 양자화 레벨들에 기초한 분할의 이점을 예시하는 간단한 예를 보여준다. 배경(2510)은 검은색이고 여기에 흰색 삼각형(2520) 및 회색의 단어 "text"의 문자들(2530)이 놓여 있다. 이 화상의 이진 분할은, 도 25b 및 도 25c에서 보여지는 바와 같이, 전형적으로 텍스트(2530)와 배경(2510) 또는 텍스트(2530)와 삼각형(2520)이 병합되는 결과로 될 것이다. 이들 분할의 어느 쪽도 텍스트 영역들을 선택하는 문서 레이아웃 분석에 이용될 수 없을 것이다 - 텍스트 특징들은 상실되어버렸다.
동시에, 연결 컴포넌트들의 레이아웃 분석의 단순화를 허용하는 이진 분할의 특정 특징들이 있다. 연결된 외부 경계(connected outer boundary)와 4방 연결(4-way connectedness)에 의해 형성된 CC들을 갖는 페이지의 경우를 생각해보자. 이 경우, 페이지의 에지들에 있는 것을 제외하고, 경계에서 다른 CC와 접촉하는 각 CC는 해당 CC에 의해 포함되거나 또는 해당 CC를 포함하고, CC는 단 하나의 다른 CC에 의해서만 포함될 수 있다. 명백한 포함 계층구조(containment hierarchy)가 발생되어 트리 구조의 형태로 표현될 수 있다. 트리의 각 연속 층은 이전의 것과 반대 극성의 CC들을 포함하고, 각 브랜치(branch)는 유일 부모를 공유하는 CC들의 세트로 이루어진다. 그러한 계층구조는 그 계층구조가 함께 그룹화될 후보들인 CC들(유일 부모를 공유하는 것들)의 세브세트들을 선택하는 데 이용될 수 있으므로 CC들을 그룹화하는 데 유용하다. 이것은 한 번에 보다 적은 수의 CC들이 고려될 필요가 있으므로 처리 속도의 면에서 그리고 정확성의 면에서 유익하다. 페이지의 상이한 영역들로부터의 CC들은 트리의 상이한 브랜치들 상에 있을 수 있고 함께 그룹화되지 않을 것이다. 또한, CC들의 처리는 트리의 상단에서 시작될 수 있고 특정 부류(예컨대, 텍스트)의 CC들 아래쪽의 트리의 브랜치들에 대하여 종료될 수 있어서 처리 시간이 더욱 개선된다.
만일 분할이 이진이 아니면, 일반적으로 명백한 계층구조가 유용하게 발생될 수 없다. 도 25a에서의 문자 'e'를 생각해보자. 이 문자의 외부 경계는 검은 배경과 흰 삼각형 둘 다와 접촉하므로, 배경 또는 삼각형의 어느 쪽도 이 CC에 대한 부모로서 간주될 수 있을 것이다. 삼각형의 경우는 그 외부 경계가 배경 및 모든 문자들과 접촉하므로 훨씬 더 복잡하다. 오브젝트들을 그룹화하는 데 계층구조를 이용하는 것의 이점들은 이 불명료함에도 불구하고 성취될 수 있다. 이것은 각 자식에 대한 유일 부모를 필요로 하지 않고, 경계에서 접촉하는 2개의 CC들 간의 부모-자식 관계의 특성을 정의함으로써 행해진다. 예를 들면, 2개의 CC들이 경계에서 접촉하고 그 CC들 중 하나(부모)의 바운딩 박스가 두 번째 것(자식)의 바운딩 박스를 완전히 둘러싼다면 그 2개의 CC들 간에 부모-자식 관계가 정의될 수 있다. 도 25a에 도시된 예에 대하여 이 정의를 이용하면, 삼각형과 단어 'text'의 모든 문자들이 배경 CC의 자식으로서 정의될 것이다.
3. 레이아웃 분석
레이아웃 분석은 페이지의 전경 콘텐츠가 식별되는 시스템의 부분이다. 중간(레이아웃 분석) 모듈은 프론트 엔드 모듈로부터 연결 컴포넌트들의 리스트 및 "접촉 리스트"를 입력으로서 취한다. 레이아웃 분석의 출력은 본질적으로 스캔된 화상에서 어느 연결 컴포넌트들이 전경 콘텐츠(예컨대, 텍스트, 테이블, 기호 포인트(bullet points))를 나타내는지에 대한 판정이다. 이 레이아웃 분석은 이진 화상 대신에 컬러 분할에 기초한다. 이것은 그것이 찾아낼 수 있는 전경 오브젝트들의 종류들(sorts)의 점에서 다수의 이점들을 갖지만, 이진 화상에서와 같이 명백한 포함 계층구조는 없다. 효율성을 위하여, 레이아웃 분석은 바운딩 박스들 및 연결 컴포넌트들이 그것의 그룹화의 기초로 하는 소수의 다른 일반적 통계들만을 이용한다. 레이아웃 분석은 최초 픽셀 데이터에 또는 비트-레벨 분할에조차 액세스할 수 없다.
레이아웃 분석의 주요 단계들은, 접촉 리스트에 기초하여 포함 계층구조를 형성하는 것과, CC들을 그들의 바운딩 박스들 및 컬러들에 기초하여 그룹화하는 것과, CC들이 텍스트의 행들과 같이 잘 정렬되어 있는지를 판정하기 위하여 이들 그룹들을 테스트하는 것이다. 접촉 리스트들은 바이-레벨 포함 계층구조의 멀티-컬러 등가물인 CC들에 대한 계층구조를 제공하는 데 이용된다. 주어진 CC는 그것의 접촉 리스트 엘리먼트들의 서브세트의 부모로서 간주될 수 있다. 구체적으로, 그 주어진 CC는 그 주어진 CC와 접촉하고 그 바운딩 박스들이 부모 CC의 바운딩 박스 내에 완전히 포함되는 CC들의 부모일 수 있다.
도 4는 도 1의 단계 120을 상세히 예시하는 것으로, 단계 110에 의해 발생된 콤팩트한 CC 정보, 통계, 및 "접촉 리스트" 정보를 입력으로서 취한다. 접촉 리스트는 어느 CC들이 서로 이웃해 있는지, 즉, 어느 CC들이 경계를 공유하는지를 기술한다. 도 4의 처리는 입력 화상에 액세스할 수 없다. 이 정보의 일부는 입력 화상으로부터의 모든 CC들의 리스트이다.
단계 410에서는, CC들이 그들의 통계에 기초하여 분류되고, 따라서 CC들의 리스트로부터 컬러 포함 계층구조가 형성된다. 컬러 포함 계층구조는 각 노드가 CC인 구조이다. 부모 노드는 그 부모 노드와 접촉하고 그 바운딩 박스들이 그 부모 노드의 바운딩 박스 내에 완전히 포함되는 CC들을 그것의 자식들로서 갖는다. 자식 노드는 2 이상의 부모 노드를 가질 수 있다. 분석은 바운딩 박스 사이즈 및 형상에만 기초할 수 있다. 폭과 높이 둘 다가 1 인치의 1/100보다 작은 CC들(예컨대, 300 dpi의 해상도에서 3 픽셀들)은 노이즈로 간주되어 제거된다. 폭 또는 높이가 1 인치보다 크거나, 폭과 높이 둘 다가 1 인치의 8/15보다 큰 연결 컴포넌트들은 화상으로서 분류된다. 그 외의 모든 것들은 잠재적 텍스트로서 분류된다. 대안 실시예들은 테이블, 연결 컴포넌트 내의 화소들의 수와 같은 다른 문서 레이아웃 특징들에 관련된 분류들을 포함할 수 있고, 다른 값들을 이용할 수 있다.
단계 420에서는 잠재적 텍스트 CC들이 함께 그룹화되어, 텍스트의 영역들을 나타낸다. CC들은 전형적으로 가까운 CC들과 그룹화되고, 효율적인 그룹화 알고리즘이 그룹화를 결정하기 전에 이웃 CC들을 찾아냄으로써 이 사실을 이용한다. 프론트 엔드에서 이용되는 고해상도 컬러 분할 방법은 전형적인 스캔 문서 상에서 그룹화를 위해 고려되는 수천의 형제들(siblings)을 찾아낼 수 있다. 이들 경우에, 단순 쌍 비교(simple pair-wise comparison), O(N2) 방법을 이용하여 이웃 CC들을 찾는 것은 느려질 수 있고, 이웃들을 결정하는 보다 정교한 방법이 이용되어야 한다. 컬러 포함 계층구조의 노드들에 대하여 삼각분할(triangulation)이 수행될 수 있다. 만일 페이지 상의 CC들의 바운딩 박스들의 중심들이 평면 내의 노드들을 정의한다면, 이 목적을 위하여 들로네 삼각분할(Delaunay triangulation)과 같은 효율적인 삼각분할 방법이 이용될 수 있다. 이들 방법들은 전형적으로 O(NlogN) 처리들이다.
도 53은 평면 내의 노드들의 세트의 들로네 삼각분할(점선으로 표시) 및 보로노이 다이어그램(Voronoi diagram)(실선으로 표시)의 예시(5300)를 보여준다. 보로노이 다이어그램은 페이지를 다른 어떤 것보다도 주어진 점에 더 가까운 영역들로 분할한 것이다. 들로네 삼각분할은 보로노이 다이어그램에서의 경계를 공유하는 점들을 함께 연결함으로써 발생될 수 있는 보로노이 다이어그램의 듀얼(dual)이다. 평면 내에 랜덤하게 위치하는 점들 중 평면 내의 대표적인 점은 이 삼각분할에서 그것에 연결된 주위의 5개의 점들을 갖는다. 이들 점들은 그룹화 단계에서 좋은 이웃 후보들로서 간주될 수 있다.
삼각분할 출력은 CC의 그룹들을 형성하는 방법의 구실을 한다. 들로네 삼각분할에서 인접한 CC들은 그들의 바운딩 박스들의 쌍 비교에 기초하여 함께 그룹화된다. 이 최초 그룹화에 이어서 이들 그룹들을 함께 결합하거나 그룹화되지 않은 CC들을 기존의 그룹들 안에 두기 위하여 인접한 CC들의 쌍들에 대하여 후속 패스들이 뒤따른다. 이 프로세스는 또한 데이터를 통하여 단일 패스에서 그룹화의 상이한 타입들(텍스트, 테이블 등)을 찾을 수 있다. 텍스트 CC들의 그룹들은 일반적으로 유사한 컬러; 유사한 바운딩 박스 사이즈; (텍스트 정렬에 좌우되는) 수평 또는 수직 축을 따르는 대강의 정렬; 및 CC들의 사이즈에 대하여 정렬의 축을 따르는 서로의 밀접함의 특징들에 의해 특징화된다.
단계 430에서는, CC들의 그룹들을 검사하거나 검증하여 어느 CC 그룹들이 텍스트 문자들인지를 판정한다. 그룹 콘텐츠 및 그룹화 단계들 동안에 발생된 병합에 관한 정보는 프로세서에 의해 저장된다. 각 개개의 그룹에 관한 정보는 컬러, 바운딩 박스, 및 그룹의 콘텐츠를 포함하는 데이터 구조로 저장될 수 있다. 이들 구조들은 그룹의 콘텐츠가 변경되는 그룹화 단계 동안에 업데이트된다. 대안 실시예에서는, 그룹 마커(group marker)가 CC 데이터 구조들에 포함되고 그 CC 데이터로부터 그룹 컬러 및 바운딩 박스와 같은 데이터가 재구성될 수 있다. 단계 430에서는, 텍스트 문자 CC들이 그 CC들이 텍스트임을 보장하기 위한 특별 검사로서 정렬 테스트를 받는다.
형성된 그룹들은 일반적으로 모든 텍스트를 포함하지만, 텍스트로 분류하기에 바람직하지 않은 화상 부분들을 포함할 수도 있다. 이러한 문제를 줄이기 위해, 그룹들을 검사하여 그룹 내의 연결 컴포넌트들이 텍스트처럼 정연한 행(또는 열)로 배열되어 있는지, 노이즈 또는 화상의 유사하게 채색된 영역들이 그런 경향이 있는 것처럼 랜덤하게 배열되어 있는지를 확인한다.
이것은 주로 각 변(즉, 왼쪽, 위쪽, 오른쪽 및 아래쪽 에지들)마다 하나씩 바운딩 박스 에지들의 4개의 히스토그램들을 형성함으로써 행해질 수 있다. 이들 중 하나는 텍스트의 기준선이 있는 가득 채워진 빈들을 갖고 다른 곳들에서는 비어 있어야 한다. 이에 대해 검사하기 위해, 히스토그램 빈들의 제곱들의 합을 구하고 기대 값과 비교할 수 있다. 만일 4개의 히스토그램 빈들 중 어느 하나가 랜덤하게 배열된 바운딩 박스들에 대하여 기대되는 것보다 훨씬 더 높은 것으로 확인되면, 그 그룹은 텍스트인 것으로 간주된다. 옆으로 또는 거꾸로 스캔되는 페이지들, 또는 행보다는 열로 배열되어 있는 텍스트를 허용하도록 4개의 모든 바운딩 박스 에지들이 이용된다.
3.1. CC 그룹화
도 20은 단계 110에 의해 분할된 CC들의 세트를 그룹화하는 도 4의 단계 420을 상세히 예시한다. 프로세스는 단계 2010에서 시작하여 루트 CC를 획득한다. 루트 CC는 컬러 분할 단계 동안에 다른 CC에 병합되지 않은 CC이다. 단계 2020에서는, 루트 CC의 자식 CC들을 찾는다. 이 루트 CC에 대한 자식 CC들의 리스트가 형성된다. 자식들은 그 바운딩 박스들이 현 루트 CC의 바운딩 박스 내에 완전히 포함되고 경계에서 그 바운딩 박스와 접촉하는 CC들로서 정의될 수 있다. 단계 2020에 대해서는 도 22에 관련하여 더 상세히 설명한다.
단계 2020으로부터, 처리는 단계 2030으로 이동한다. 단계 2030에서는, 현 CC의 자식들에 대한 이웃 분석(neighbour analysis)이 수행된다. 각 자식에 대하여, 어떤 정의된 방향으로 가까운 이웃 CC들의 세트를 찾는다. 이것은, 예를 들면, 각 자식 CC의 바운딩 박스들의 중심들의 들로네 삼각분할을 찾아냄으로써 달성될 수 있다. 삼각분할에서의 에지들은 이웃 CC들 간의 연결들을 나타낸다. 대안 방법들은 근접도를 정의하기 위해 CC들의 리스트에 대한 바운딩 박스 및 컬러 정보의 상이한 엘리먼트들을 이용할 수 있다. 단계 2040에서는, 그 이웃 데이터를 이용하여 최초 그룹화를 수행한다. 이 처리 단계 2040은 동일 자식 리스트 내의 유사한 속성들(예컨대, 기하 및 컬러)의 오브젝트들의 그룹들을 형성하여 문서 레이아웃의 특징들을 판정한다. 도 23은 단계 2040을 더 상세히 설명한다.
판정 단계 2050에서는, 처리될 루트 CC들이 더 남아 있는지를 판정하기 위해 검사가 행해진다. 만일 루트 CC들이 더 있다면, 처리는 단계 2010으로 되돌아가고, 다음 루트 CC를 획득하여 후속하여 처리한다. 그렇지 않다면, 그룹화 단계 420이 종료된다.
3.1.1 부모 CC 에 대한 자식 찾기
도 22는 주어진 부모 CC에 대하여 자식 CC들을 찾고 자식들의 리스트를 형성하는 단계 2020을 예시한다. 단계 2210에서는, 부모 CC의 접촉 CC들의 리스트로부터 접촉 CC를 획득한다. 단계 2220에서는, 루트 CC를 찾는다. 이것은 접촉 CC와 관련된 컬러 분할 단계로부터의 임의의 병합 정보를 이용하여 행해진다. 판정 단계 2230에서는, 도 4의 단계 410으로부터의 CC의 분류를 검사하여 그 CC가 클래스 테스트를 만족시키는지(즉, 이 CC를 자식 리스트에 저장하는 것이 적절한지)를 판정한다. 노이즈 사이즈 CC들 이외의 모든 CC들이 저장될 수 있지만, 대안 실시예들은 클래스들의 다른 조합들, 예를 들면 잠재적 텍스트만을 저장할 수 있다. 접촉 CC의 클래스가 적절하다면, 처리는 단계 2240에서 계속된다. 그렇지 않다면, 처리는 단계 2260에서 계속된다. 판정 단계 2240에서는, 부모 CC에 대한 포함에 대하여 CC를 검사한다. 이 포함 테스트는 CC의 바운딩 박스가 부모 CC의 바운딩 박스에 의해 완전히 커버되는 것을 검사하는 것을 수반하지만, 대안 방법들도 가능하다. 만일 포함 테스트가 만족된다면, 처리는 단계 2260에서 계속된다. CC는 단계 2250에서 자식 리스트에 포함될 수 있고, 그 후 처리는 단계 2260으로 계속된다. 어떤 CC든 자식 리스트에 한 번만 나타나야 하므로 단계 2250은 CC가 리스트에 이미 포함되어 있지 않다는 검사를 포함한다. 이 검사는 해시 테이블을 이용하여 수행될 수 있다. 그 후 처리는 판정 단계 2260에서 계속된다. 단계 2260은 부모의 접촉 리스트에 엘리먼트가 더 있는지를 테스트한다. 만일 그렇다면, 처리는 단계 2210에서 계속된다. 그렇지 않다면, 현 CC에 대한 자식 리스트는 완료되고 처리가 종료된다.
3.1.2 최초 그룹화
도 23은 도 20의 단계 2030으로부터의 이웃 데이터를 이용하여 수행되는 최초 그룹화의 도 20의 단계 2040을 예시한다. 이 방법은 순전히 텍스트를 그룹화하기 위해 설계될 수 있지만, 대안 실시예들에서, 이 방법은 테이블과 같은 다른 오브젝트들을 분류하거나 그룹화할 수도 있다. 최초 그룹화는 2-패스 프로세스로, 제1 패스는 CC들을 그룹들로 결합하고 제2 패스는 그룹들을 더 큰 그룹들로 함께 결합한다. 단계 2305에서는, 카운터 PASS가 1로 설정된다. 단계 2310에서는, 자식을 획득한다. 단계 2320에서는, 자식의 이웃을 획득한다. 단계 2330에서는, 그 자식과 이웃이 그룹화 테스트를 만족시키는지를 판정하기 위해 검사가 행해진다. 일련의 테스트들을 이용하여 그룹화에 대하여 이들 오브젝트들을 테스트한다. 이 테스트들은 최초 분류, 기하 및 컬러에 기초할 수 있고, 제1 패스와 제2 패스 간에 상이하다. 이하에서 설명되는 도 26은 단계 2320의 그룹화 테스트를 설명하는 데 이용되는 문서의 영역의 발췌를 제공한다.
도 23을 참조하여, 그룹화 테스트가 만족되면, 단계 2340에서 그 자식과 이웃 CC들을 함께 그룹화한다. 그 후 처리는 단계 2350에서 계속된다. 그렇지 않고, 단계 2330이 거짓을 반환하면, 처리는 단계 2350에서 계속된다. 만일 2개의 CC들이 함께 그룹화되면, 각각은 동일 그룹에 속하는 것으로 표시된다. CC들이 표시되는 그룹은 그 2개의 CC들의 이전 그룹화에 좌우된다. 만일 어느 것도 이미 그룹화되어 있지 않다면, 두 CC들 모두를 포함하는 새로운 그룹이 형성된다. 만일 그 둘 중 하나만 이미 그룹화되었다면, 다른 CC가 그 그룹에 포함된다. 만일 둘 다 이미 그룹화되었고 그 그룹들이 동일하다면, 아무런 액션도 취해지지 않는다. 마지막으로, 만일 둘 다 이미 그룹화되었고 그 그룹들이 상이하다면, 그 2개의 그룹들이 단일 그룹으로 병합되고, 다른 그룹은 비어 있음으로 표시된다.
단계 2350에서는, 현 CC의 이웃들이 더 있는지를 판정하기 위해 검사가 행해진다. 만일 이웃들이 더 존재한다면, 처리는 단계 2320에서 계속된다. 그렇지 않다면, 처리는 단계 2360에서 계속된다. 단계 2360에서, 프로세스는 부모 CC의 자식들이 더 있는지에 대하여 검사한다. 만일 자식들이 더 존재한다면, 처리는 단계 2310에서 계속된다. 그렇지 않다면, 처리는 단계 2370에서 계속된다. 단계 2370에서는, 두 패스 모두가 완료되었는지를 판정하기 위해 테스트가 수행된다(PASS > 1?). 만일 그렇다면, 프로세스가 종료된다. 만일 제1 패스만 완료되었다면, 처리는 단계 2380에서 계속되고 카운터 PASS가 증가된다. 처리는 단계 2390에서 계속된다. 단계 2390에서는, 처리가 자식 리스트의 시작으로 되돌아간다. 그 후 처리는 단계 2310으로 되돌아가고 제2 패스가 시작된다.
대안 실시예에서, 프로세스(2040)는 자식 CC와 이웃들의 쌍들이 아니라 삼각분할 데이터의 에지들을 통하여 루핑(loop)한다. 이것은 이웃들의 각 쌍이 한 번만 고려되므로 약간 더 효율적이다.
3.1.2.1. 2개의 CC 에 대한 그룹화 테스트
2개의 이웃 CC들에 대한 바람직한 그룹화 테스트를 예시하기 위하여, 도 26은 2개의 오브젝트들 - 문자 'g' 및 'h' - 만을 포함하는 문서의 영역으로부터의 단순한 발췌를 보여준다. 점선들은 각 문자에 대한 바운딩 박스들의 좌표들을 나타낸다. 그 좌표들은 i 번째 CC의 왼쪽 및 오른쪽 x 좌표 및 위쪽 및 아래쪽 y 좌표들에 대하여 각각
Figure 112007048042379-PCT00011
Figure 112007048042379-PCT00012
에 위치한다. 아래 첨자 1 및 2는 각각 제1 및 제2 CC를 가리킨다(즉, 문자 'g' 및 'h'). 이 실시예의 처리는 또한 YUV 공간에서의 각 CC의 컬러 [yi, ui, vi], 및 바운딩 박스들의 폭 wi, 및 높이 hi를 이용한다.
2개의 CC에 대한 수평 오버랩 거리는 그 CC들 둘 다에 의해 커버되는 수평 섹션의 거리로서 정의되고, 또는 그 CC들이 오버랩하지 않으면 제로이다. 수직 오버랩 거리 dyov는 유사하게 정의되고, 도 26에 예시되어 있다. 도 26에서 수평 오버랩은 제로이므로 표시되어 있지 않다. 그 오버랩 거리들은 다음과 같이 표현될 수 있다.
Figure 112007048042379-PCT00013
2개의 CC들 간의 수평 내부 거리는 하나의 CC의 왼쪽 에지와 다른 CC의 오른쪽 에지 간의 최단 거리로서 정의되고, 또는 수평 오버랩 거리가 제로가 아니면 제로이다. 수직 내부 거리는 CC의 위쪽 및 아래쪽 에지들을 이용하여 마찬가지로 정의된다. 수평 거리 dxin 은 도 26에 예시되어 있지만, 이 예에서 수직 내부 거리는 제로이어서 표시되어 있지 않다. 이들 내부 거리는 다음과 같이 표현될 수 있다.
Figure 112007048042379-PCT00014
제1 패스에서, 2개의 이웃 CC들이 컬러, 사이즈, 및 정렬에 기초한 3개의 조건들의 요건들을 만족시키면 그 CC들은 텍스트로서 함께 그룹화된다. 컬러 조건은 다음 수학식과 같으면 만족된다.
Figure 112007048042379-PCT00015
여기서 문턱값 파라미터는 TC = 500일 수 있다.
사이즈 테스트는 다음 수학식과 같으면 만족된다.
Figure 112007048042379-PCT00016
여기서 wmin은 2개의 CC들 간의 최소 폭이고, wmax는 최대 폭이고, hmin은 최소 높이이고 hmax는 최대 높이이다. 문턱값 파라미터는 TR = 0.55일 수 있다.
정렬 조건은 다음 조건식들 중 어느 한쪽이 충족되면 만족된다.
Figure 112007048042379-PCT00017
또는
Figure 112007048042379-PCT00018
문턱값 파라미터는 TS = 0.65일 수 있다.
제2 패스는 개개의 CC들이 아니라 그룹들에 기초한 파라미터들을 이용한다. 각 그룹의 엘리먼트들의 평균 컬러 [Yi,Ui,Vi], 폭 Wi, 및 높이 Hi가 이용될 수 있다. 그룹화되지 않은 CC의 경우에는, 이들 값들은 개개의 CC에 대한 컬러, 폭 및 높이 파라미터들로 설정된다. 이 테스트는 또한 고려되는 CC들의 중심들 간의 거리 D를 이용하고, 그것은 다음과 같이 정의된다:
Figure 112007048042379-PCT00019
제1 패스에 대해서는, 일련의 조건들이 충족되면 그룹들이 결합된다. 이들 조건들은 컬러 유사도 Tc, 사이즈 TR, 및 분리(separation) To에 관계가 있고, 다음 수학식들로 기술된다:
Figure 112007048042379-PCT00020
여기서 파라미터 값들은 어느 한쪽 그룹이 3 이하의 엘리먼트를 가지면 TCg=500, TR=0.55, TR2=0.3, 및 TD=1이고, 그렇지 않다면 TCg=100, TR=0.55, TR2=0.3, 및 TD=2일 수 있다. 제2 그룹화 단계에서는, 정렬 테스트가 이용되지 않는다.
문턱값들은 그룹화를 위해 테스트되고 있는 CC들의 특징들, 예컨대, 각 CC의 픽셀 카운트에 좌우될 수 있다.
3.2. 그룹화 검사
도 21은 그룹들을 검사하기 위한 도 4의 단계 430을 상세히 예시한다. 이 프로세스는 각 그룹이 텍스트로 이루어져 있는지 여부를 판정한다. 이 판정은 주로 그룹 내의 오브젝트들이 행 또는 열로 정렬되어 있는 것으로 확인되는지에 기초하여 행해진다. 그룹들은 텍스트인 것으로 추정되어, 텍스트 같은 속성들에 대하여 테스트되고, 그 그룹들이 이들 테스트에 실패하면 거절된다.
단계 2110에서는, 단계 420에서 형성된 그룹들의 다음 그룹을 획득한다. 단계 2120에서는, 그룹 내의 텍스트 문자들의 사이즈를 추정한다. 추정된 사이즈는 개개의 문자들의 길이들의 통계에 기초한다. 이들 길이들은 오브젝트의 바운딩 박스의 폭 및 높이의 최대치로서 정의될 수 있다. 이 측정치는 페이지 상의 텍스트의 정렬 및 비뚤어짐(skew)에 상당히 둔감하고 또한 주어진 사이즈의 대표적인 폰트 내의 문자들의 세트에 대하여 충분히 균일하다. 대안적인 실시예들에서는, 바운딩 박스 면적, 픽셀 카운트 및/또는 스트로크 폭이 길이의 측정치들로서 이용될 수도 있다. 문자 길이들의 히스토그램이 형성될 수 있고, 추정된 사이즈는 빈 내에 문턱값보다 많은 수의 엘리먼트들을 갖는 히스토그램 빈과 관련된 최대 길이에 기초할 수 있다. 이용되는 문턱값은 적어도 3개의 오브젝트 및 그룹 내의 오브젝트들의 수의 적어도 15% 이다. 만일 그러한 빈이 존재하지 않으면, 추정치가 반환되지 않는다.
판정 단계 2125에서는, 문자 사이즈가 구해졌는지를 판정하기 위해 검사가 행해진다. 만일 적당한 문자 사이즈를 구할 수 없다면, 그 그룹은 거절되고 처리는 단계 2160에서 계속된다. 그렇지 않다면, 처리는 단계 2130에서 계속된다.
단계 2130은 그룹 내의 CC들 및 그 그룹의 바운딩 박스 내에 포함되어 있지만 아직 어떤 그룹에도 할당되지 않은 다른 적당한 CC들을 처리한다. 이 프로세스(2130)는 최초 그룹화에 의해 놓쳤을 수 있는 텍스트 및 분류에 기초하여 최초 그룹화로부터 누락되었을 수 있는 구두점 표시들과 같은 작은 오브젝트들을 추가하는 데 유익하다. 그룹 내의 오브젝트들과 한 부모를 공유하고 충분히 유사한 컬러를 갖는 오브젝트들만 그룹에 추가될 수 있다. 그룹 및 포함된 CC들에 대한 컬러 유사도 조건은 다음 조건식이 충족되면 만족된다:
Figure 112007048042379-PCT00021
여기서 [Y,U,V]는 그룹의 컬러이고, [y,u,v]는 CC의 컬러이다. 파라미터 값은 TCg2 = 500일 수 있다.
대안적으로, 단계 2130에서 기하 테스트(geometric tests)가 적용될 수 있고, 그룹에 가까운 오브젝트들이 그룹에 들도록 CC의 바운딩 박스가 그룹의 바운딩 박스에 의해 완전히 포함되는 요건이 완화될 수 있다. 단계 2130의 다른 대안들은 몇몇 오브젝트들을 병합하여 문자들을 형성할 수 있다. 이것은 2 이상의 별개의 오브젝트로서 분할되었을 수 있는 복잡한 문자들을 갖는, 중국어와 같은, 스크립트들에 대하여 의도된 것으로, 나중에 처리 시에 정렬 테스트들의 정확도를 개선하는 데 유익하다. 2개의 오브젝트들은 그들의 바운딩 박스들이 오버랩하는 경우에만 병합할 수 있다. 병합에 의해 1.6보다 큰 종횡비(aspect ratio)가 생성되거나, 또는 단계 2120에서 추정된 문자 사이즈보다 큰 병합 오브젝트가 생성될 경우에는 그 병합이 발생하지 않도록 제한된다.
단계 2150에서는, 그룹 내의 오브젝트들의 정렬을 검사한다. 이 테스트는 텍스트 그룹들을 다른 그룹들과 구별하고 아래에서 더 상세히 설명된다. 이 단계에 이어서, 단계 2160에서는 처리할 그룹들이 더 있는지를 판정하기 위한 테스트가 수행된다. 만일 그룹들이 더 있다면, 처리는 단계 2110으로 되돌아간다. 그렇지 않다면, 처리(430)는 종료된다.
3.2.1 정렬 검사
도 24는 도 21의 단계 2150을 더 상세히 도시한다. 이 단계 동안에, 그룹 내의 CC들의 서브세트가 문자들로서 정의된다. 문자들은 2120에서 추정된 문자 사이즈의 절반보다 크고, 이 사이즈의 2배보다 작은 사이즈를 갖는 오브젝트들이다.
단계 2430 내지 2450은 그룹 엘리먼트들에 관련된 일련의 파라미터들의 히스토그램 분석에 기초하여 그 그룹에 대한 수용 테스트(acceptance tests)를 수행한다. 이들 파라미터들은 각 문자의 바운딩 박스의 왼쪽, 위쪽, 아래쪽 및 오른쪽 에지이다. 다수의 파라미터들을 이용함으로써 텍스트가 다양한 정렬로 식별될 수 있다. 왜냐하면 페이지 상의 텍스트의 정렬은 페이지의 텍스트의 언어 및 비뚤어짐과 같은 다수의 요인들에 좌우되기 때문이다. 대안적으로, 보다 광범위한 텍스트 정렬들을 식별하기 위해 수평 및 수직 바운딩 박스 파라미터들의 다양한 조합들 을 이용할 수도 있다.
단계 2430에서는, 다음 파라미터의 그룹 엘리먼트 값들에 대한 히스토그램이 형성된다. 그룹 문자 사이즈에 따라서 히스토그램 내의 빈들의 사이즈를 크기조정(scale)할 수도 있다. 그룹 내의 문자들의 평균 높이의 1/5의 값(올림값(rounded up))을 위쪽 및 아래쪽 바운딩 박스 에지들에 이용할 수 있고, 그룹 내의 문자들의 평균 폭의 1/5(역시 올림값)을 왼쪽 및 오른쪽 바운딩 박스 에지들에 이용할 수 있다. 히스토그램 내의 빈들의 범위는 그 범위의 각 끝에 비어 있지 않은 빈들이 있고 모든 데이터가 포함되도록 설정된다. 히스토그램에 의해 커버되는 최저 값은 그룹 내의 파라미터의 최저 값으로 설정될 수 있다.
판정 단계 2440은 히스토그램 내의 값들이 랜덤하게 분포되어 있는 것이 아니라 (이상적으로는 텍스트의 상이한 라인들의 기준선들을 나타내는) 이산 클러스터들(discrete clusters)을 형성하여, 잘 정렬되어 있는지를 테스트한다. 단계 2440은 그룹 내의 문자들의 수 N이 문턱값 T보다 큰지를 테스트하고, 바람직한 문턱값 T=7이다.
작은 그룹들(N<T)에 대해서는, 단계 2440은 3개의 파라미터 AL1, AL2, 및 OV를 검사한다. AL1은 히스토그램 내의 가장 큰 빈의 카운트이다. AL2는 히스토그램 내의 두 번째로 큰 빈의 카운트이다. OV는 그룹 내의 오버랩하는 문자들의 최대 서브세트의 사이즈이다. 표 2의 의사 코드는 이 그룹에 대하여 이용되는 테스트들을 기술한다. 그룹은 의사 코드가 Y를 반환하면 정렬 테스트를 통과하고, 의사 코드가 N을 반환하면 테스트에 실패한다.
Figure 112007048042379-PCT00022
Figure 112007048042379-PCT00023
큰 그룹들에 대해서는, 히스토그램 빈들의 제곱들의 합을 그룹 내의 램덤하게 배열된 CC들에 대한 기대 값과 비교하는 테스트가 행해진다. 이 테스트에 대한 수학식은 다음과 같이 주어진다:
Figure 112007048042379-PCT00024
여기서 m은 히스토그램 빈들의 총수이고, n은 문자들의 총수이고, hi는 히스토그램의 i 번째 빈의 개체수(population)이다. 수학식의 우변의 항은 기대 (평균) 값의 두 배이고, 충분히 큰 m 및 n에 대하여, 랜덤하게 배열된 문자들이 수용될 가능성이 0.1%인 값이다. 이 처리의 일례가 도 27에 도시되어 있고, 이하에서 설명된다.
도 24를 참조하여, 만일 테스트에 따라서 그룹이 수용되면, 처리는 단계 2470에서 계속된다. 단계 2470에서는, 그 그룹이 유지되고, 정렬 검사가 완료된다. 그 후 처리가 종료된다. 그렇지 않고, 단계 2440이 거짓(아니오)을 반환하면, 처리는 단계 2450에서 계속된다. 판정 단계 2450은 테스트할 파라미터가 더 있는지를 검사한다. 만일 더 있다면, 처리는 단계 2430에서 다음 파라미터에 대하여 계속된다. 그렇지 않고, 모든 파라미터가 처리되었다면, 처리는 단계 2480에서 계속되어, 그룹이 거절된다. 그 후 처리가 종료된다.
전술한 설명은 한 번에 하나의 파라미터에 기초하여 테스트하고 테스트마다 모두 실패한 그룹들을 정확히 거절하는 것을 개시하고 있다. 그러나, 이 개시 내용에 비추어, 2개의 상이하면서도 유사한 파라미터들(예컨대 바운딩 박스의 상부 및 하부 에지들)에서 거의 충분히 잘 정렬되어 있는 그룹들을 수용하거나, 또는 다수의 파라미터들에 기초하여 해당 그룹에 대한 전체 스코어를 생성하는 것과 같이, 본 발명의 범위 및 사상에서 벗어나지 않고 상이한 파라미터들에 대한 테스트들을 조합하는 대안적인 방법들이 실시될 수 있다는 것은 숙련된 당업자에게 명백할 것이다.
3.2.2. 정렬 예
도 27b는 화상(2700)으로부터 분할된 부분들로부터 유래할 수 있는 불규칙하게 배열된 바운딩 박스들(2710, 2712, 2714,...)의 선택을 보여준다. 도 27b는 랜덤하게 배열된 연결 컴포넌트들을 보여준다. 도 27a는 이 화상에 대한 바운딩 박스들의 밑변들(bottoms)의 값의 히스토그램(2720)을 보여준다. 도 27d는 잘 정렬된 연결 컴포넌트들을 갖는 텍스트 그룹에 대한 페이지 상의 바운딩 박스들(2740, 2742)의 배열을 보여주고, 도 27c는 그에 대응하는 히스토그램(2730)을 보여준다. 도시된 바와 같이, 텍스트에 대한 히스토그램(2730)은 소수의 큰 클러스터들의 값들을 갖는 반면, 다른 히스토그램(2720)은 보다 더 고르게 분포된 값들을 갖는다. 히스토그램 빈 값들의 제곱들의 합을 측정치로 이용할 때, 도 27a는 19의 값을 제공하고, 도 27c는 47의 값을 제공한다. m=19 및 n=13에 대한 상기 수용 테스트의 우변의 항은 45이다. 그러므로 이 테스트에 따라서, 도 27b의 화상 데이터는 거절되고, 도 27d의 텍스트 데이터는 수용된다. 대안적으로, 수용 테스트는, 평균 카운트보다 상당히 큰 빈들 내에 있는 값들의 총수와 같은, 다른 통계에 기초할 수도 있다.
4. 압축된 출력 화상 발생
백 엔드 모듈은, 추정된 배경 컬러로 전경 영역들 위에 페인팅함으로써, 배경 화상들을 더 압축 가능하게 하기 위해 인페인팅을 이용한다. 인페인팅은 바람직하게는 보다 저해상도(예컨대, 150 dpi)의 배경 화상들에 대하여 수행된다. 인페인팅 알고리즘은 단일 패스, 타일 기반 알고리즘(single pass, tile based algorithm)이고 압축률을 향상시키려고 시도한다. 각 픽셀의 컬러는 큰 영역에 대한 하나의 평균 컬러를 이용하는 대신에 왼쪽과 오른쪽의 주위 픽셀들로부터 보간함으로써 선택된다.
이 알고리즘은 다음의 단계들을 수행한다: 1) 모든 전경 컴포넌트들에 대한 마스크들을 결합하여 타일에 대한 하나의 전경 마스크를 만든다; 2) 전경 컴포넌트들 주위의 작은 추가 영역들이 인페인팅되도록 마스크를 팽창시킨다; 3) 타일에 대하여 래스터 순서로:
a. 만일 픽셀이 마스크되어 있지 않다면, 타일의 액티비티를 업데이트하고;
b. 만일 픽셀이 마스크되어 있다면, 그 픽셀을 왼쪽과 오른쪽의 가장 가까운 마스크되지 않은 픽셀들의 컬러들로부터 보간된 컬러로 페인팅한다;
4) 만일 마스크되지 않은 영역들의 액티비티가 특정한 문턱값보다 작다면, 전체 타일을 그 마스크되지 않은 픽셀들의 평균 컬러로 페인팅한다(이것은 ZLib 압축된 JPEG를 갖는 개선된 압축을 제공한다); 그리고, 5) 만일 전체 타일이 마스크되어 있다면, 전체 타일을 이전 타일의 평균 컬러로 페인팅한다. 상기 단계 2)는 블리딩 효과를 제거하고 압축을 개선할 뿐만 아니라 출력 품질을 선명하게 한다.
도 5는 도 1의 단계 130을 상세히 예시한다. 단계 510 내지 540은 도 2 및 도 3에서 설명된 것과 유사한 타일 기반 처리 시스템을 이용한다. 단계 510에서는, 처리될 다음 타일이 획득된다. 단계 520에서는, 현 타일에 대하여 인페인팅 처리가 수행되어 도 1의 단계 120에서 식별된 전경 CC들을 제거하고 시각적으로 플랫에 가깝게 보이는 타일들을 플랫화한다. 단계 530에서는, 현 타일이 압축된다. 이것은 수평으로 및 수직으로 2:1로 서브샘플링된 2개의 크로미넌스 채널들을 갖는 YCrCb 색공간에서 JPEG를 이용하여 행해질 수 있다. 감소된 해상도 배경 화상의 타일들은 각각 16×16 픽셀들을 갖고, 이는 이들 픽셀들이 타일들 간에 어떤 버퍼링도 필요 없이 Y 채널에 대해서는 4개의 8×8 픽셀 JPEG 블록들로 그리고 Cr 및 Cb 채널들 각각에 대해서는 하나의 8×8 픽셀 JPEG 블록으로 바로 인코딩될 수 있다는 것을 의미한다.
단계 540에서는, 처리할 타일들이 더 있는지를 판정하기 위해 검사가 행해진다. 만일 인페인팅 및 압축할 타일들이 더 있다면, 처리는 단계 510으로 되돌아간다. 그렇지 않다면, 처리는 단계 550에서 계속된다. 단계 550에서는, 전경이 압축되고, 이는 단계 120에서 식별된 전경 엘리먼트들을 압축하는 것을 수반한다. 전경 엘리먼트들은 컬러에 따라서 그룹화되고 전경 엘리먼트들의 각각의 유사하게 채색된 그룹에 대하여 최대 입력 해상도의 하나의 이진 화상이 생성된다. 인코딩에 의해 출력 문서에서 압축 이점이 생기기에 족할 만큼 그 화상이 크다면, 각 화상은 그 후 CCITT G4 팩스로 인코딩될 수 있다.
단계 560에서는, 출력 문서가 발생된다. 압축된 배경 및 압축된 전경 화상들은 합성 압축 형식으로 저장된다. 이 형식은 예를 들면 PDF 문서일 수 있다. JPEG 인코딩된 배경 화상은 플레이트(Flate)(Zlib) 압축을 이용하여 더 압축될 수 있다. 이것은 단계 520 및 530에 의해 생성된 다수의 반복 플랫 블록들을 포함하는 JPEG 화상들에 대한 상당한 공간 절약을 제공한다. 플레이트 및 JPEG 압축된 배경 화상들을 포함하고, 사이즈, 위치, 순서 및 - 이진 전경 화상들의 경우에 - 페이지에 각각의 화상들을 렌더링할 컬러의 상세를 포함하는 페이지 기술을 포함하는 합성 문서가 기입될 수 있다.
4.1. 타일 인페인팅
도 30은 도 5의 단계 520을 상세히 예시한다. 이 프로세스는 배경으로부터 전경 CC들을 제거하고 낮은 가시적 액티비티를 갖는 화상 타일들을 플랫화함으로써 압축률을 증가시키고 전경 CC들의 선명도를 향상시키기 위해 다운샘플링된 배경 화상을 수정한다. 블리딩 효과를 제거하여 화상을 향상시키고 압축률을 증가시키기 위해 전경 CC들을 둘러싸는 작은 영역도 인페인팅된다.
도 30에 도시된 프로세스(520)는 선택된 전경 CC들을 그 전경 CC의 왼쪽과 오른쪽의 픽셀들의 컬러들 간에 보간함으로써 추정된 컬러들로 페인팅함으로써 저해상도 배경으로부터 그 선택된 전경 CC들을 제거한다. 이것은 압축률을 증가시킨다. 압축률을 더 증가시키고 화상의 외관을 향상시키기 위해 CC의 외부 주위의 작은 영역도 인페인팅된다. 낮은 가시적 액티비티를 갖는 배경 화상의 타일들을 식별하고 그들의 픽셀들 모두를 동일 컬러로 설정함으로써 압축률은 더욱더 증가된다.
도 30의 프로세스에의 입력은 도 2의 단계 250에서 생성된 다운샘플링된 배경 화상, 도 2의 단계 240으로부터의 CC들의 리스트, 및 도 1의 단계 120으로부터의 전경 또는 배경 선택 정보이다. 단계 3010에서는, 타일을 검사하여 그 타일이 '플랫'으로 표시되어 있는지를 확인한다. 만일 그렇다면, 처리는 타일 플랫화 단계 3040에서 계속된다. 그렇지 않다면, 처리는 단계 3020에서 계속되어, 그 타일에 대하여 최대 해상도 전경 비트마스크가 형성된다. 이것은 전경 CC에 대응하는 위치마다 모두 비트가 세트되게 한다. 단계 3030에서는, 전경 CC들에 대응하는 배경 화상 내의 영역들 및 그들 주위의 작은 영역 위에 해당 CC의 왼쪽과 오른쪽의 픽셀들의 컬러들로부터 보간된 컬러들로 인페인팅함으로써 그 영역들이 제거된다. 타일 내의 인페인팅되지 않은 픽셀들의 액티비티도 측정된다. 단계 3040에서는, 만일 타일 액티비티가 시각적으로 플랫일 만큼 낮은 것으로 확인되면 전체 타일이 일정한 컬러로 플랫화된다. 그 후 처리가 종료된다.
4.1.1. 타일 전경 비트마스크 형성
도 31은 타일 전경 비트마스크를 형성하기 위한 도 30의 단계 3020을 보다 상세히 예시한다. 단계 3110에서는, 타일에 대한 최초 비트마스크가 생성된다. 이 비트마스크는 타일과 동일한 폭이고 타일보다 높이가 한 행 더 크다. 이 비트마스크의 제1 행은 위쪽 타일이 문서의 제1 밴드에 있지 않으면 그 타일의 마지막 행과 동일하게 설정되고, 위쪽 타일이 문서의 제1 밴드에 있으면 비트마스크의 제1 행은 블랭크로 설정된다. 이것은 인페인팅된 영역이 타일 경계와 정렬하는 하부 에지를 갖는 전경 CC들 아래에 연장할 수 있게 한다.
단계 3120에서는, 타일 내의 다음 CC가 획득된다. 단계 3130에서는, 그 CC를 검사하여 그 CC가 (단계 120에서의) 전경 CC인지를 판정한다. 만일 그 CC가 전경 CC이면, 처리는 단계 3140에서 계속된다. 그렇지 않다면, 처리는 단계 3150에서 계속된다. 단계 3140에서는, 이 CC 및 현 타일에 대응하는 비트마스크가, 비트단위(bitwise) OR 함수를 이용하여, 단계 3110에서 생성된 타일 비트마스크와 결합된다. 그 후 처리는 단계 3150에서 계속된다. 단계 3150에서는, 현 타일 내에 CC들이 더 있는지를 판정하기 위해 검사가 행해진다. 만일 그렇다면, 처리는 단계 3120으로 되돌아간다. 그렇지 않고, 타일 내의 모든 CC들이 처리되었다면, 단계 3150의 결과는 아니오일 것이고 처리는 단계 3160에서 계속된다. 단계 3160에서는, 형성된 마스크의 마지막 라인이 페이지 상의 이것 바로 아래쪽 타일을 처리할 때 단계 3110에 의해 이용될 수 있도록 저장된다. 도 31의 프로세스(3020)에서 생성된 비트마스크는 입력 화상의 최대 해상도에서의 것이다.
4.1.2. 픽셀 인페인팅 및 타일 액티비티 측정
도 32는 도 30의 단계 3030을 보다 상세히 예시한다. 인페인팅할 픽셀들의 런의 시작을 표시하는 인페이팅되어야 하는 픽셀이 발견될 때까지 래스터 순서로 각 픽셀이 검사된다. 인페인팅할 픽셀들의 런의 끝이 발견될 때까지 후속 픽셀들이 검사된다. 그 후 픽셀들의 수평 런이 그 인페인트 런의 왼쪽과 오른쪽의 픽셀들의 컬러들 간에 선형 보간된 컬러들로 페인팅된다.
도 32를 참조하면, 단계 3210은 타일의 행을 획득한다. 단계 3220에서는 행의 누산된 픽셀 액티비티에 의하여 픽셀들의 다음 런의 시작을 찾는다. 인페인팅되어야 할 픽셀을 찾을 때까지 행 내의 각 픽셀을 래스터 순서로 검사하고 타일 내의 픽셀 액티비티를 누산한다. 픽셀 값들 및 픽셀 값들의 제곱들을 누산하고 측정된 픽셀들의 수의 카운트를 유지함으로써 인페인팅되지 않은 픽셀들의 픽셀 액티비티를 기록한다. 각 픽셀이 인페이팅되어야 하는지를 판정하기 위하여, 픽셀 위치를 도 30의 단계 3020에서 생성된 타일 전경 비트 마스크들에서의 대응 위치들과 비교한다. 타일 비트마스크는 배경 화상의 해상도의 2배이므로, 마스크에는 배경 화상 내의 하나의 픽셀에 의해 커버되는 영역에 대응하는 4개의 픽셀들이 있다. 또한 압축률을 향상시키고 전경 CC들로부터의 블리딩 효과를 제거하기 위하여, 전경 CC들의 에지 주위의 작은 추가 영역을 인페인팅한다. 이를 위하여, 최대 해상도 전경 마스크 내의 8개의 픽셀들을 검사하여 현 배경 픽셀을 인페인팅할지를 판정한다. 도 34는 배경 화상 타일(3430) 내의 예시적 픽셀(3410) 및 검사되는 대응하는 최대 해상도 마스크 픽셀들(3420)을 보여준다. 만일 3420으로 표시된 이들 8개 픽셀들 중 어느 하나가 마스크(3440)에서 설정된다면, 즉, 전경 CC의 위치에 대응한다면, 그 픽셀(3410)은 인페인팅된다. 비트마스크(3440)는 비트-벡터들의 어레이로서 저장되므로, 이들 8개의 픽셀들(3420)은 비트 단위 AND 연산을 이용하여 신속히 검사될 수 있다. 대안적으로, 이것은 비트마스크(3420) 내의 설정 픽셀들을 팽창시킨 다음 다운샘플링함으로써 구현될 수 있다. 각 행에서 인페인팅되지 않은 마지막 검사 픽셀의 컬러를 기록하고 오른쪽의 다음 타일을 처리할 때 이용 가능하게 함으로써 다음 타일의 동일 행 내의 제1 픽셀이 인페인팅되어야 한다면 보간 값으로서 그 컬러를 이용할 수 있다.
도 32를 참조하면, 판정 단계 3230에서는, 행의 끝 이전에 인페인팅할 임의의 픽셀을 찾았는지를 판정하기 위해 검사가 행해진다. 만일 인페인팅할 픽셀을 찾았다면, 처리는 단계 3250에서 계속된다. 그렇지 않다면, 처리는 단계 3240에서 계속된다. 단계 3250에서는, 행 내의 남아 있는 픽셀들을 래스터 순서로 검사하여 그 행에서 인페인팅되어야 할 픽셀들의 런의 끝을 찾는다. 픽셀이 인페인팅되어야 하는지를 판정하기 위해 단계 3220에서 이용된 테스트와 동일한 테스트를 여기서 이용한다. 단계 3260에서는, 행의 끝 이전에 인페인팅할 픽셀들의 런의 끝을 찾았는지를 판정하기 위해 검사가 행해진다. 만일 행의 끝에 도달하기 전에 인페인팅될 픽셀들의 런의 끝을 찾았다면, 처리는 단계 3270에서 계속된다. 단계 3270에서는, 인페인팅될 픽셀들의 런 내의 각 픽셀을 왼쪽과 오른쪽으로 가장 가까운 인페인팅되지 않은 픽셀들의 컬러들 간에 선형 보간된 컬러로 설정한다. 만일 인페인팅할 픽셀들의 런이 타일의 왼쪽 에지까지 연장되었다면, 이전 타일 내의 동일 행에 대하여 저장된 최종 값을 그 왼쪽 보간 값으로서 이용한다. 그 후 처리는 단계 3220에서 계속되고, 인페인팅할 픽셀들의 다음 런을 검색한다. 만일 단계 3250에서 인페인팅되지 않아야 하는 임의의 픽셀을 찾지 못하고 행의 끝에 도달하면, 판정 단계 3260은 단계 3280에서 처리가 계속되도록 지시한다. 단계 3280에서는, 인페인팅될 픽셀들의 런 내의 각 픽셀을, 이전 타일 내의 동일 행에 대하여 저장된 값일 수 있는, 왼쪽으로 가장 가까운 인페인팅되지 않은 픽셀의 값으로 설정한다. 단계 3280 후에, 처리는 단계 3240에서 계속된다.
단계 3240에서는, 타일 내에 처리할 행이 더 있는지를 판정하기 위해 검사가 행해진다. 만일 타일 내에 행들이 더 있다면, 처리는 단계 3210에서 계속된다. 그렇지 않고, 행이 더 없다면 처리가 종료된다.
4.1.3. 인페인팅
도 35는 어떤 1차원 인페인팅 예들을 보여준다. 2개의 예(3510, 3520)에 대하여 전과 후의 플롯들이 제공되어 있고, 픽셀 강도가 위치 X의 함수로서 플롯되어 있다. 첫 번째 예(3510)에서는, 인페인팅할 픽셀들의 런이 완전히 타일 내에 있고, 인페인팅된 픽셀 값들(사선 해칭으로 표시됨)은 바로 왼쪽과 오른쪽의 인페인팅되지 않은 픽셀 값들 간에 선형 보간된 값들로 대체된다. 인페인팅된 영역은 임의의 블리딩 효과를 제거하기 위해 전경 컴포넌트보다 약간 더 크고, 이것은 팽창된 마스크 영역으로서 도시되어 있다. 각 픽셀을 인페인팅할 컬러는 왼쪽과 오른쪽의 마스크되지 않은 픽셀 간에 보간함으로써 찾는다. 도 25의 두 번째 예(3520)에서는, 인페인팅할 픽셀들의 런이 타일 에지(3530)와 교차한다. 왼쪽 타일을 처리할 때는, 인페인팅될 픽셀들의 값들은 바로 왼쪽의 인페인팅되지 않은 픽셀의 값으로 대체된다. 예(3520)의 오른쪽 타일을 처리할 때는, 인페인팅된 픽셀 값들은 이 행에 대하여 마지막 기록된 인페인팅되지 않은 픽셀 값과 오른쪽으로 첫 번째 인페인팅되지 않은 픽셀 값 간에 선형 보간된 값들로 설정된다.
4.1.4 타일 플랫화
도 33은 도 30의 단계 3040을 더 상세히 도시한다. 판정 단계 3310에서는, 모든 픽셀들이 인페인팅되었는지를 판정하기 위해 검사가 행해진다. 특히, 단계 3220에서 기록된 인페인팅된 픽셀들의 수를 검사한다. 만일 타일 내의 모든 픽셀들이 인페인팅되었다면, 타일의 가시 영역은 낮은 것으로 간주되고 단계 3320에서 처리가 계속된다. 단계 3320에서는, 현 타일 내의 모든 픽셀들을 래스터 순서로 이전 타일의 평균 컬러로 페인팅(설정)한다. 이것은 JPEG와 같은 블록 기반 압축 기법이 이용될 때 배경 화상의 압축률을 상당히 증가시킨다. 그 후 처리가 종료된다. 단계 3310이 타일 내의 모든 픽셀들이 인페인팅되지는 않았다고 판정하면, 처리는 판정 단계 3330에서 계속된다. 단계 3330에서는, 단계 3320에서 측정된 인페인팅되지 않은 픽셀들의 액티비티를 미리 정해진 문턱값과 대조한다. 만일 그 액티비티가 이 문턱값보다 작은 것으로 확인되면, 재구성된 화상에서의 타일의 액티비티 가시 영역은 플랫에 가까운 것으로 간주된다. 이 경우, 처리는 단계 3340에서 계속되고 타일 내의 모든 픽셀들을 타일 내의 인페인팅되지 않은 가시 픽셀들의 평균 컬러로 페인팅함으로써 타일이 완전히 플랫화된다. 이것은 배경 화상의 압축률을 상당히 증가시킨다. 도 33의 프로세스는 단계 3340 후에, 또는 타일 내의 액티비티가 문턱값보다 큰 것으로 확인되면 단계 3330 후에 종료된다.
5. 하드웨어 실시예
도 51은 본 발명의 제2 실시예에 따른 시스템(5100)을 예시한다. 이 시스템(5100)은 처리 파이프라인들의 상이한 단계들 간에 효율적인 데이터 흐름을 특징으로 한다. 이 설계는 메모리 대역폭을 상당히 감소시키고 시스템(5100)이 고속으로 작동할 수 있게 한다.
스캐너들은 통상 픽셀 래스터 순서로 스캔된 데이터를 취득한다. 이 픽셀 데이터는 그 후 추가적인 화상 처리를 위하여 저장되고 종종 압축된다. 종래의 스캔-문서(scan-to-document) 응용에서는, 스캔된 데이터는 통상 화상 데이터를 처리하기 위한 분할 및 레이아웃 분석을 위해 저장 장치로부터 검색되고, 압축 해제된 다음, 메모리에 유지될 필요가 있다. 이것은 고속 스캐너에서 흔히 있는 경우인데, 분할 프로세스는 스캐너의 한 페이지씩의 스트리밍 래스터 데이터의 속도를 전혀 따라갈 수 없기 때문이다.
이는 큰 메모리 버퍼를 필요로 할 뿐만 아니라, 각 화상 픽셀이 적어도 2배로 기입 및 판독될 필요가 있으므로 높은 메모리 대역폭도 필요로 한다. 우선, 픽셀들은 스캐너에 의해 메모리에 기입되어야 하고 그 후 압축기가 메모리로부터 데이터를 판독하여 압축한다. 나중에, 압축 해제기가 압축된 데이터를 판독하고 그 데이터를 메모리 내에 압축 해제해야 한다. 마지막으로, 화상 처리기가 압축 해제된 데이터를 분할할 수 있다. 압축된 데이터는 말할 것도 없이, 각 원래의 화상 픽셀에 대하여 적어도 하나의 중복(redundant) 메모리 판독 및 기입이 있다. 고해상도 스캐너(예컨대, 600 dpi)의 경우, 이것은 200 MB 이상의 여분의 데이터를 의미한다.
본 발명의 이 실시예는 스캐너(5105)로부터의 실시간, 한 페이지씩의 스트리밍 래스터 데이터에 대하여 직접 작용하는 고속, 자동 분할을 채용한다. 그 결과, 중복 메모리 판독 및 기입이 완전히 제거되고 메모리 버퍼의 사이즈도 상당히 감소된다.
버스(5110)는 스캐너(5105)로부터, 모듈(5115), 라인 버퍼에 기입되는 스캔된 래스터 데이터를 운반한다. 이 예에서는, 64-라인 버퍼가 이용되지만 이하에서 설명되는 바와 같이 밴드의 높이에 따라서, 다른 사이즈들이 실시될 수도 있다. 라인 버퍼(5115)는 코드 분할 모듈(5125)에 의해 처리하기 위한 데이터의 밴드를 저장함과 동시에 입력되는 스캔된 새로운 데이터의 밴드를 수집한다. 이 모듈(5125)은 라인 버퍼(5115)로부터 버스(5120)를 경유하여 데이터의 타일을 판독하고 그 데이터를 한 타일씩 연결 컴포넌트들로 컬러 분할한다. 모듈(5125)이 데이터의 밴드를 완료하면, 라인 버퍼(5115)로부터 새로운 데이터의 밴드가 처리를 위해 준비된다. 구(old) 밴드 버퍼는 그 후 새로운 입력되는 래스터 데이터를 수집하는 데 이용된다. 밴드의 높이는 타일의 높이에 의해 결정되고, 라인 버퍼(5115)는 밴드의 높이의 두 배를 필요로 한다. 이 실시예에서, 바람직한 타일 사이즈는 32×32이다.
모듈(5125)은 이 실시예에서 하드웨어로 구현되므로, 밴드의 처리 속도는 스캐너(5105)가 새로운 데이터의 밴드를 생성하는 속도에 따라갈 수 있다. 모듈(5125)의 출력은 레이아웃 분석 모듈(5140)로의 버스(5135) 상의 콤팩트한 연결 컴포넌트들(CC들) 및 인페인팅 모듈(5150)로의 버스(5130) 상의 비압축되거나 압축된 다운샘플링된 화상이다. 버스(5135) 상의 데이터는 CC들의 페이지의 상당한 영역 또는 페이지 전체가 생성될 때까지 메모리에 기입될 수 있다. 모듈(5140)은 콤팩트한 연결 컴포넌트 데이터만을 이용하여 레이아웃 분석을 수행한다. 데이터가 콤팩트하므로, 레이아웃 분석을 수행하기 위해 요구되는 처리 능력은 작다. 그러므로, 레이아웃 분석 모듈은 내장 프로세서에 의해 실시간으로 실행되는 소프트웨어(SW)로 구현될 수 있다. 레이아웃 분석 모듈의 출력은 버스(5145) 상에 제공된 전경 정보이고, 이것은 버스(5135)로부터의 데이터에 태그를 붙인 것이다. 버스(5130) 상의 데이터도 CC들의 페이지의 상당한 영역 또는 페이지 전체가 생성될 때까지 메모리에 기입될 수 있다.
인페인팅 모듈(5150)은 (버스(5130)를 경유하여 제공된) 다운샘플링된 화상에 대하여 한 타일씩 전경의 제거를 수행한다. 이 모듈(5150)은 레이아웃 소프트웨어(5140)를 실행하는 동일 내장 프로세서 상에서 구현될 수도 있고, 또는 대안적으로 하드웨어(HW)에 의해 구현될 수도 있다. 모듈(5150)은 버스(5130)로부터의 데이터를, 그 데이터가 압축되어 있으면, 압축 해제한다. 그 후 모듈(5150)은 다운샘플링된 화상 상의 추정된 배경 컬러로 전경 영역을 인페인팅하여 배경 화상을 생성한다. 전경 제거된 배경 화상은 버스(5155) 상에 출력되고, 전경 마스크가 버스(5175) 상에 발생된다.
출력 발생 모듈(5160)은 버스(5175) 상에 생성된 전경 화상들 및 버스(5155) 상에 생성된 배경 화상으로부터, PDF 파일과 같은, 레이아웃 분석된 문서를 생성한다. 모듈(5160)은 동일 내장 프로세서 상에서 실행하는 소프트웨어로 구현될 수 있다.
이 제2 실시예에서, 모듈들(5115 및 5125)은 실시간 한 페이지씩의 스캔 데이터에 작용하여 페이지 N 상에 콤팩트한 연결 컴포넌트들 및 다운샘플링된 화상을 생성한다. 모듈들(5140, 5150 및 5160)은 페이지 N-1 상에 모듈(5125)에 의해 생성된 데이터를 이용하여 순차적 순서로 작용한다. 그러므로 시스템은 고속 스캐너의 라이브 데이터(live data)로부터의 레이아웃 분석된 문서들을 실시간으로 전달할 수 있다.
모듈들(5125, 5140, 5150 및 5160)은 제1 실시예에서 대응하는 단계들에 대하여 설명된 방식으로 구현될 수 있다.
5.1 컬러 분할 모듈
도 52는 모듈(5125)을 상세히 예시한다. CC들로의 컬러 분할 모듈(5125)의 컴포넌트들은 디하프톤(dehalftone) 모듈(5220)을 포함하는데, 이것은 타일 순서로 퍽셀들의 스트림을 취하고 하프톤 인쇄 시스템, 예를 들면 잉크젯 프린터를 이용하여 인쇄된 자료의 스캐닝에 의해 야기된 임의의 아티팩트들을 제거한다. 디하프톤 모듈(5220)은 앞에서 설명된 소프트웨어 실시예의 하드웨어 실시예이다. 이 모듈은 내부적으로 스태틱 RAM 및 파이프라인 방식 처리를 이용하여 필요한 속도를 달성할 수 있다.
디하프톤 모듈(5220)로부터 출력된 픽셀들은 컬러 변환 모듈(5230)로 전달되고, 이 컬러 변환 모듈은 그 화소들을 입력 색공간(흔히 RGB)으로부터 YCbCr 휘도/크로미넌스 공간으로 변환한다. 이 모듈(5230)은 다음 식에 따라서 각 픽셀에 대하여 필요한 승산 및 가산을 수행한다:
Figure 112007048042379-PCT00025
복잡도를 줄이고 모듈(5125)의 속도를 증가시키기 위해 이 산술 연산들은 스케일된, 고정 점 산술(scaled, fixed point arithmetic)로 수행된다. 컬러 변환 모듈(5230)로부터의 출력은 2개의 모듈, 다운스캔 모듈(5240), 및 연결 컴포넌트 분석 모듈(5260)에 전달된다. 다운스캔 모듈(5240)은 4(2×2 정사각형에서) 또는 16(4×4 정사각형에서)의 세트의 컬러의 단순 평균을 수행하여 각 출력 픽셀을 형성한다. 다운스캔 모듈(5240)로부터 출력된 픽셀들은 그 후 하드웨어 JPEG 압축기(5250)에 의해 압축된다.
6. 컴퓨터 구현
본 발명의 실시예들에 따른 방법들은 하나 이상의 범용 컴퓨터 시스템, 인쇄 장치, 및 다른 적당한 컴퓨팅 디바이스들을 이용하여 실시될 수 있다. 도 1-52 중 어느 하나 이상을 참조하여 설명된 프로세스들은 컴퓨터 시스템 내에서 실행하거나 인쇄 장치에 내장된 애플리케이션 프로그램과 같은 소프트웨어로서 구현될 수 있다. 소프트웨어는 애플리케이션 프로그램, 오퍼레이팅 시스템, 프로시저, 룰(rules), 데이터 구조, 및 데이터를 포함하는 하나 이상의 컴퓨터 프로그램들을 포함할 수 있다. 명령들은 하나 이상의 코드 모듈로서 형성될 수 있고, 각 코드 모듈은 하나 이상의 특정 작업을 수행하기 위한 것이다. 소프트웨어는 예를 들면 아래에서 기술되는 저장 장치들 중 하나 이상을 포함하는 컴퓨터 판독 가능한 매체에 저장될 수 있다. 컴퓨터 시스템은 그 컴퓨터 판독 가능한 매체로부터 소프트웨어를 로딩한 다음 그 소프트웨어를 실행한다.
도 7은 본 발명의 실시예들을 실시하는 데 이용될 수 있는 컴퓨터 시스템(700)의 예를 도시한다. 그러한 소프트웨어가 기록되어 있는 컴퓨터 판독 가능한 매체는 컴퓨터 프로그램 제품이다. 컴퓨터 시스템에서 컴퓨터 프로그램 제품을 이용함으로써 상기 방법들 중 하나 이상을 구현하기 위한 이로운 장치가 달성될 수 있다.
도 7에서, 컴퓨터 시스템(700)은 네트워크에 연결되어 있다. 조작자는 키보드(730) 및/또는 마우스(732)(또는 예를 들면 터치패드)와 같은 포인팅 디바이스를 이용하여 컴퓨터(750)에 입력을 제공할 수 있다. 컴퓨터 시스템(700)은 라인 프린터, 레이저 프린터, 플로터, 및 컴퓨터에 연결된 다른 재현(reproduction) 디바이스들을 포함하는 다수의 출력 디바이스들 중 임의의 것을 구비할 수 있다. 컴퓨터 시스템(700)은 모뎀 통신 경로, 또는 라우터 등과 같은 적절한 통신 채널(740)을 이용하여 통신 인터페이스(764)를 경유하여 하나 이상의 다른 컴퓨터들에 연결될 수 있다. 컴퓨터 네트워크(720)는, 예를 들면, 근거리 네트워크(LAN), 광역 네트워크(WAN), 인트라넷, 및/또는 인터넷을 포함할 수 있다. 컴퓨터(750)는 처리 유닛(766)(예컨대, 하나 이상의 중앙 처리 유닛), 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 또는 이 둘의 조합을 포함할 수 있는 메모리(770), 입출력(I0) 인터페이스(772), 그래픽 인터페이스(760), 및 하나 이상의 저장 디바이스들(762)을 포함할 수 있다. 저장 디바이스(들)(762)는 다음 중 하나 이상을 포함할 수 있다: 플로피 디스크, 하드 디스크 드라이브, 자기-광 디스크 드라이브, CD-ROM, DVD, 데이터 카드 또는 메모리 스틱, 플래시 RAM 디바이스, 자기 테이프 또는 숙련된 당업자들에게 잘 알려진 다수의 비휘발성 저장 디바이스들 중 어떤 다른 것을 포함할 수 있다. 도 7에서는 저장 디바이스가 버스에 직접 연결된 것으로 도시되어 있지만, 그러한 저장 디바이스는 병렬 포트, 직렬 포트, USB 인터페이스, 파이어와이어 인터페이스, 무선 인터페이스, PCMCIA 슬롯 등과 같은 임의의 적당한 인터페이스를 통하여 연결될 수 있다. 이 설명을 목적으로, 저장 유닛은 하나 이상의 상기 메모리(700) 및 저장 디바이스들(762)를 포함할 수 있다(도 7에서 이들 엘리먼트들을 둘러싸는 점선 박스로 나타낸 것과 같이).
컴퓨터(750)의 컴포넌트들 각각은 전형적으로 도 7에 일반적으로 도시된 하나 이상의 버스들(780)을 경유하여 하나 이상의 다른 디바이스들에 연결되고, 상기 버스들은 데이터, 어드레스, 및 제어 버스들을 포함한다. 도 7에는 단 하나의 버스(780)가 도시되어 있지만, 컴퓨터, 인쇄 장치, 또는 다른 전자 컴퓨팅 디바이스는 프로세서 버스, 메모리 버스, 그래픽 카드 버스, 및 주변 버스 중 하나 이상을 포함하는 수 개의 버스를 가질 수 있다는 것을 숙련된 당업자라면 잘 알 것이다. 그러한 버스들 간의 통신을 인터페이스하기 위해 적당한 브리지들이 이용될 수 있다. CPU를 이용한 시스템이 설명되었지만, 데이터를 처리하고 연산을 수행할 수 있는 다른 처리 유닛들이 본 발명의 범위 및 사상에서 벗어나지 않고 대신 이용될 수 있다는 것을 숙련된 당업자라면 알 것이다.
컴퓨터 시스템(700)은 단지 예시를 위하여 제공된 것이고, 본 발명의 범위 및 사상에서 벗어나지 않고 다른 구성들이 채용될 수 있다. 본 실시예를 실시하는 데 이용될 수 있는 컴퓨터들은 IBM-PC/AT 또는 호환기종, 랩톱/노트북 컴퓨터, 매킨토시(Macintosh)(TM) 계열의 PC들 중 하나, 선 스팍스테이션(Sun Sparcstation)(TM), PDA, 워크스테이션 등을 포함한다. 전술한 것들은 단지 본 발명의 실시예들을 실시하는 데 이용될 수 있는 디바이스들의 유형들의 예일 뿐이다. 전형적으로, 이하에서 설명되는 실시예들의 프로세스들은 컴퓨터 판독 가능한 매체로서 하드 디스크 드라이브 상에 기록된 프로그램 또는 소프트웨어로서 상주하고, 프로세서를 이용하여 판독 및 제어된다. 프로그램 및 중간 데이터 및 네트워크로부터 페치된 임의의 데이터의 중간 저장은 반도체 메모리를 이용하여 달성될 수 있다.
일부 경우에, 프로그램은 CD ROM 또는 플로피 디스크 상에 인코딩되어 공급될 수도 있고, 또는 대안적으로 예를 들어 컴퓨터에 연결된 모뎀 디바이스를 경유하여 네트워크로부터 판독될 수도 있다. 또한, 소프트웨어는 자기 테이프, ROM 또는 집적 회로, 자기 광학 디스크, 컴퓨터와 다른 디바이스 간의 라디오 또는 적외선 송신 채널, PCMCIA 카드와 같은 컴퓨터 판독 가능한 카드, 및 웹사이트 상에 기록된 정보 및 이메일 송신을 포함하는 인터넷 및 인트라넷 등을 포함하는 다른 컴퓨터 판독 가능한 매체로부터 컴퓨터 시스템으로 로딩될 수도 있다. 전술한 것은 단지 관련 컴퓨터 판독 가능한 매체들의 예일 뿐이다. 본 발명의 범위 및 사상에서 벗어나지 않고 다른 컴퓨터 판독 가능한 매체들이 실시될 수도 있다.
7. 산업상 이용가능성
본 발명의 실시예들은 컴퓨터 및 데이터 처리 분야에 적용 가능하다. 위에서는 본 발명의 실시예들에 따라서 디지털 화상을 처리하고 압축하기 위한 소수의 방법, 장치, 및 컴퓨터 프로그램 제품들에 대해서만 설명하고 있지만, 본 발명의 범위 및 사상에서 벗어나지 않고 수정 및/또는 변경이 행해질 수 있으며, 상기 실시예들은 예시적인 것으로 제한적인 것은 아니다.

Claims (44)

  1. 복수의 픽셀들을 포함하는 디지털 화상을 분할(segmenting)하는 방법으로서,
    상기 디지털 화상으로부터 복수의 픽셀들의 블록들을 발생시키는 단계; 및
    원패스 방식(one-pass manner)으로 상기 픽셀들의 블록들을 이용하여 각 블록에 대하여 적어도 하나의 연결 컴포넌트(connected component)를 생성하는 단계
    를 포함하고,
    상기 생성하는 단계는,
    픽셀들의 블록을 적어도 하나의 연결 컴포넌트로 분할하는 단계 - 각 연결 컴포넌트는 공간적으로 연결되고 의미적으로 관련된 픽셀들의 그룹을 포함함 - 와,
    상기 블록의 상기 적어도 하나의 연결 컴포넌트를, 이전에 처리된 적어도 하나의 다른 블록으로부터 분할된 적어도 하나의 연결 컴포넌트와 병합(merging)하는 단계와,
    상기 블록의 상기 연결 컴포넌트들의 상기 화상 내의 위치를 콤팩트한 형태(compact form)로 저장하는 단계
    를 포함하는 디지털 화상 분할 방법.
  2. 제1항에 있어서,
    상기 의미적으로 관련된 픽셀들은 유사하게 채색된 픽셀들을 포함하는 디지털 화상 분할 방법.
  3. 제1항에 있어서,
    상기 발생시키는 단계는, 세부단계(sub-step)들로서,
    상기 디지털 화상을 복수의 밴드(band)들로 배열하는 단계 - 각 밴드는 픽셀들의 미리 정해진 수의 연속 라인들을 포함함 -; 및
    상기 밴드들을 하나씩 버퍼링 및 처리하는 단계
    를 포함하고,
    상기 처리하는 단계는, 각각의 현재 버퍼링된 밴드에 대하여 수행되는 세부단계들로서,
    상기 현재의 밴드를 복수의 픽셀들의 블록들로 배열하는 단계와,
    상기 생성하는 단계를 위하여 상기 현재의 밴드의 상기 블록들을 하나씩 버퍼링 및 처리하는 단계
    를 포함하는 디지털 화상 분할 방법.
  4. 제1항에 있어서,
    상기 저장하는 세부단계는, M-1 이진 비트맵들(binary bitmaps)을 저장하는 단계를 포함하고, 여기서 한 블록에는 M-연결 컴포넌트들이 있고, M은 정수인 디지털 화상 분할 방법.
  5. 제1항에 있어서,
    상기 저장하는 세부단계는 인덱스 맵을 저장하는 단계를 포함하는 디지털 화상 분할 방법.
  6. 제1항에 있어서,
    상기 분할하는 세부단계는,
    각 블록에 대한 지배 컬러들의 수를 추정(estimating)하는 단계;
    각 블록을 상기 지배 컬러들로 양자화(quantizing)하는 단계; 및
    각 양자화된 블록으로부터 연결 컴포넌트들을 형성하는 단계
    를 포함하는 디지털 화상 분할 방법.
  7. 제6항에 있어서,
    상기 분할하는 세부단계는, 형성되어 있는 상기 연결 컴포넌트들의 서브세트를 병합하는 단계를 더 포함하는 디지털 화상 분할 방법.
  8. 제7항에 있어서,
    상기 병합하는 세부단계는 상기 연결 컴포넌트들의 통계를 수집(gathering)하는 단계를 포함하는 디지털 화상 분할 방법.
  9. 제8항에 있어서,
    노이즈인 것으로 생각되는 상기 형성된 연결 컴포넌트들을 제거하는 단계를 더 포함하는 디지털 화상 분할 방법.
  10. 제9항에 있어서,
    상기 노이즈는 미리 정의된 문턱값(threshold)보다 작은 픽셀 카운트 및 또 다른 미리 정의된 문턱값보다 큰 경계 길이 대 픽셀 카운트 비(border-length-to-pixel-count ratio)를 갖는 연결 컴포넌트들을 포함하는 디지털 화상 분할 방법.
  11. 제8항에 있어서,
    상기 통계는 바운딩 박스(bounding boxes), 픽셀 카운트, 경계 길이(border length), 및 평균 컬러(average colour) 중 어느 하나 이상을 포함하는 디지털 화상 분할 방법.
  12. 제8항에 있어서,
    상기 병합하는 단계는,
    블록의 연결 컴포넌트들을 왼쪽과 위쪽에 있는 블록의 연결 컴포넌트들과 병합하는 단계; 및
    상기 병합된 연결 컴포넌트들의 상기 통계를 업데이트하는 단계
    를 포함하는 디지털 화상 분할 방법.
  13. 제12항에 있어서,
    상기 통계는 바운딩 박스, 픽셀 카운트, 채움 비율(fill ratio), 및 평균 컬러 중 어느 하나 이상을 포함하는 디지털 화상 분할 방법.
  14. 제6항에 있어서,
    상기 추정하는 세부단계는,
    각 블록 내의 픽셀들의 YUV 데이터에 기초하여 복수의 컬러 빈(colour bin)들에 관련된 히스토그램을 형성하는 단계;
    히스토그램 통계에 기초하여 각 블록을 분류하는 단계; 및
    상기 블록 분류에 기초하여 상기 지배 컬러들을 형성하기 위해 빈 컬러들을 병합하는 단계
    를 포함하는 디지털 화상 분할 방법.
  15. 제14항에 있어서,
    원패스로 각 픽셀에 대한 인덱스 맵을 형성하는 단계를 더 포함하는 디지털 화상 분할 방법.
  16. 제15항에 있어서,
    상기 양자화하는 단계는,
    비어 있지 않은 빈들(non-empty bins)을 지배 컬러들로 양자화하는 단계;
    상기 지배 컬러들로의 빈 매핑(bin mapping)을 생성하는 단계; 및
    상기 빈 매핑을 이용하여 상기 인덱스 맵을 상기 지배 컬러들에 다시 매핑하는 단계
    를 포함하는 디지털 화상 분할 방법.
  17. 제14항에 있어서,
    상기 형성하는 세부단계는,
    Y 값에 기초하여 휘도 밴드(luminance band)를 결정하는 단계;
    U 및 V 값에 기초하여 컬러 칼럼(colour column)을 결정하는 단계;
    상기 픽셀 컬러를 매핑된 빈에 누산(accumulate)하는 단계; 및
    상기 매핑된 빈의 픽셀 카운트를 증가시키는 단계
    를 포함하는 디지털 화상 분할 방법.
  18. 제17항에 있어서,
    휘도 밴드를 결정하는 상기 단계는 휘도 밴드 앤티 에일리어싱(anti-aliasing)을 더 포함하는 디지털 화상 분할 방법.
  19. 제17항에 있어서,
    컬러 칼럼을 결정하는 상기 단계는 컬러 칼럼 앤티 에일리어싱을 더 포함하는 디지털 화상 분할 방법.
  20. 제12항에 있어서,
    상기 병합하는 단계는, 상기 왼쪽 및 위쪽 경계에 접촉하는 현재의 블록 내의 각 연결 컴포넌트에 대하여 수행되는 세부단계들로서,
    공통 경계를 따라서 현재의 연결 컴포넌트에 접촉하는 연결 컴포넌트들의 리스트를 찾는 단계; 및
    병합하기 위한 최량의 후보를 결정하는 단계
    를 포함하는 디지털 화상 분할 방법.
  21. 제1항 내지 제20항 중 어느 한 항의 방법에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 분할하기 위한 프로세서 및 메모리를 포함하는 장치.
  22. 제1항 내지 제20항 중 어느 한 항의 방법에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 분할하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품.
  23. 컬러 문서의 콤팩트한 표현(compact representation)을 자동으로 생성하는 방법으로서,
    원패스 블록 래스터 순서(one-pass, block raster order)로 컬러 문서 페이지의 디지털 화상을 연결 컴포넌트들로 분할하는 단계;
    상기 페이지의 상기 디지털 화상을 상기 페이지 전체의 콤팩트한 연결 컴포 넌트 통계에 기초한 레이아웃 분석을 이용하여 전경 및 배경 화상들로 파티션(partitioning)하는 단계;
    상기 전경 화상의 적어도 일부분이 상기 배경 화상을 가리는(obscure) 상기 배경 화상의 적어도 일부분을 원패스 블록 래스터 순서로 인페인팅(inpainting)하는 단계; 및
    상기 전경 및 배경 화상들을 결합하여 콤팩트한 문서를 형성하는 단계
    를 포함하는 컬러 문서의 콤팩트한 표현의 자동 생성 방법.
  24. 제23항에 있어서,
    상기 배경 화상을 다운샘플링(downsampling)하는 단계를 더 포함하는 컬러 문서의 콤팩트한 표현의 자동 생성 방법.
  25. 제23항 또는 제24항에 있어서,
    상기 배경 화상을 압축(compressing)하는 단계를 더 포함하는 컬러 문서의 콤팩트한 표현의 자동 생성 방법.
  26. 제25항에 있어서,
    상기 압축하는 단계는 손실 압축(lossy compression)을 수반하는 컬러 문서의 콤팩트한 표현의 자동 생성 방법.
  27. 제26항에 있어서,
    상기 손실 압축된 배경 화상의 상이한 압축을 더 포함하는 컬러 문서의 콤팩트한 표현의 자동 생성 방법.
  28. 제23항 내지 제27항 중 어느 한 항의 방법에 따라서 컬러 문서의 콤팩트한 표현을 자동으로 생성하기 위한 프로세서 및 메모리를 포함하는 장치.
  29. 제23항 내지 제27항 중 어느 한 항의 방법에 따라서 컬러 문서의 콤팩트한 표현을 자동으로 생성하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품.
  30. 복수의 픽셀들을 포함하는 디지털 화상을 분석하는 방법으로서,
    상기 디지털 화상을 오브젝트들로 분할하는 단계 - 상기 분할은 3 이상의 라벨들에 의해 표현됨 -;
    각 오브젝트에 대한 속성들의 세트를 제공하는 단계;
    상기 오브젝트들의 서브세트에 대하여, 포함의 측정(measure of containment)을 이용하여 경계를 공유하는 인접한 오브젝트들 간에 부모-자식 관계가 존재하는지를 판정하는 단계;
    오브젝트 속성들에 기초하여 공통 부모를 공유하는 오브젝트들의 그룹들을 형성하는 단계; 및
    오브젝트들을 그들의 속성들 및 그룹화(grouping)에 따라서 분류하는 단계
    를 포함하는 디지털 화상 분석 방법.
  31. 제30항에 있어서,
    상기 포함은 각 오브젝트 주위의 바운딩 박스들 및 오브젝트들 간의 접촉 관계를 기술하는 정보를 이용하여 결정되는 디지털 화상 분석 방법.
  32. 제31항에 있어서,
    2개의 오브젝트가 경계에서 접촉하고 한 오브젝트의 바운딩 박스가 다른 오브젝트의 바운딩 박스를 완전히 포함한다면 상기 한 오브젝트가 상기 다른 오브젝트를 포함하는 디지털 화상 분석 방법.
  33. 제30항에 있어서,
    상기 그룹들을 형성하는 단계는,
    공통 부모의 자식들의 리스트로부터 자식 오브젝트들의 쌍들을 고려하는(considering) 단계; 및
    오브젝트 속성들을 이용하여 각 쌍이 함께 그룹화되어야 하는지를 판정하는 단계
    를 포함하는 디지털 화상 분석 방법.
  34. 제33항에 있어서,
    동일 부모를 갖는 자식 오브젝트들의 리스트로부터 서로 이웃하는 오브젝트들만이 그룹화를 위해 고려되는 디지털 화상 분석 방법.
  35. 제33항에 있어서,
    오브젝트들은 바운딩 박스 및 컬러 정보에 기초하여 그룹화되는 디지털 화상 분석 방법.
  36. 제30항에 있어서,
    오브젝트들의 그룹은 상기 그룹 내의 상기 오브젝트들의 유사 텍스트 품질들(text-like qualities)의 테스트에 따라서 텍스트로서 분류되는 디지털 화상 분석 방법.
  37. 제36항에 있어서,
    상기 유사 텍스트 품질들의 테스트는,
    각 오브젝트의 위치를 나타내는 각 오브젝트에 대한 단일 값을 식별하는 단계;
    상기 값들의 히스토그램을 형성하는 단계; 및
    상기 히스토그램의 속성에 의해 텍스트를 식별하는 단계
    를 포함하는 디지털 화상 분석 방법.
  38. 제30항에 있어서,
    오브젝트들의 속성들에 따라서, 그러나 그들의 부모-자식 속성들에는 관계없이, 텍스트-분류된 오브젝트들의 그룹에 부가적인 오브젝트들(further objects)을 추가하는 단계를 더 포함하는 디지털 화상 분석 방법.
  39. 문서 페이지의 복수의 픽셀들을 포함하는 디지털 화상을 분석하는 방법으로서,
    상기 화상에 기초한 오브젝트들을 형성하기 위하여 상기 디지털 화상을 분할하는 단계;
    상기 오브젝트들의 그룹들을 형성하는 단계; 및
    상기 오브젝트들의 그룹들이 각각 텍스트를 나타내는지를 판정하는 단계
    를 포함하고,
    상기 판정하는 단계는,
    상기 페이지 상의 상기 오브젝트의 위치에 따라서 각 오브젝트에 대한 단일 값을 식별하는 단계와,
    상기 값들의 히스토그램을 형성하는 단계와,
    상기 히스토그램의 속성에 의해 텍스트를 식별하는 단계
    를 포함하는 디지털 화상 분석 방법.
  40. 제39항에 있어서,
    상기 히스토그램의 상기 속성은 특정된(specified) 수보다 많은 오브젝트들을 갖는 상기 히스토그램에서의 빈들 내의 오브젝트들의 총수인 디지털 화상 분석 방법.
  41. 제39항에 있어서,
    상기 속성은 상기 히스토그램에서의 카운트들의 제곱의 합인 디지털 화상 분석 방법.
  42. 제39항에 있어서,
    상기 오브젝트의 위치를 나타내는 각 오브젝트에 대한 상기 단일 값은 상기 오브젝트의 바운딩 박스의 에지인 디지털 화상 분석 방법.
  43. 제39항 내지 제42항 중 어느 한 항에 따른 방법에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 분석하기 위한 프로세서 및 메모리를 포함하는 장치.
  44. 제39항 내지 제42항 중 어느 한 항에 따른 방법에 따라서 복수의 픽셀들을 포함하는 디지털 화상을 분석하기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품.
KR1020077015120A 2004-12-21 2005-12-20 디지털 화상 분할 및 콤팩트한 표현 생성 KR100926193B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
AU2004242421 2004-12-21
AU2004242419A AU2004242419A1 (en) 2004-12-21 2004-12-21 Analysing digital image of a document page
AU2004242421A AU2004242421A1 (en) 2004-12-21 2004-12-21 Segmenting digital image and producing compact representation
AU2004242419 2004-12-21

Publications (2)

Publication Number Publication Date
KR20070091178A true KR20070091178A (ko) 2007-09-07
KR100926193B1 KR100926193B1 (ko) 2009-11-09

Family

ID=36601261

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077015120A KR100926193B1 (ko) 2004-12-21 2005-12-20 디지털 화상 분할 및 콤팩트한 표현 생성

Country Status (7)

Country Link
US (1) US7991224B2 (ko)
EP (1) EP1831823B1 (ko)
JP (1) JP5008572B2 (ko)
KR (1) KR100926193B1 (ko)
AT (1) ATE501487T1 (ko)
DE (1) DE602005026862D1 (ko)
WO (1) WO2006066325A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020118028A1 (en) * 2018-12-05 2020-06-11 Sony Corporation Patcher tool

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE501487T1 (de) * 2004-12-21 2011-03-15 Canon Kk Segmentierung eines digitalen bildes und herstellung einer kompakten repräsentation
US20070098257A1 (en) * 2005-10-31 2007-05-03 Shesha Shah Method and mechanism for analyzing the color of a digital image
US7831111B2 (en) * 2005-10-31 2010-11-09 Yahoo! Inc. Method and mechanism for retrieving images
US7889932B2 (en) 2006-03-02 2011-02-15 Sharp Laboratories Of America, Inc. Methods and systems for detecting regions in digital images
US7792359B2 (en) 2006-03-02 2010-09-07 Sharp Laboratories Of America, Inc. Methods and systems for detecting regions in digital images
US8630498B2 (en) * 2006-03-02 2014-01-14 Sharp Laboratories Of America, Inc. Methods and systems for detecting pictorial regions in digital images
US7916141B2 (en) * 2006-04-10 2011-03-29 Choi Kum-Young Image processing system using vector pixel
US8437054B2 (en) 2006-06-15 2013-05-07 Sharp Laboratories Of America, Inc. Methods and systems for identifying regions of substantially uniform color in a digital image
US7864365B2 (en) 2006-06-15 2011-01-04 Sharp Laboratories Of America, Inc. Methods and systems for segmenting a digital image into regions
US7876959B2 (en) 2006-09-06 2011-01-25 Sharp Laboratories Of America, Inc. Methods and systems for identifying text in digital images
US7916924B2 (en) * 2006-09-19 2011-03-29 Primax Electronics Ltd. Color processing method for identification of areas within an image corresponding to monetary banknotes
JP4798077B2 (ja) * 2007-06-27 2011-10-19 コニカミノルタビジネステクノロジーズ株式会社 画像処理方法、画像処理装置、画像データ圧縮装置、およびコンピュータプログラム
US7925089B2 (en) * 2007-09-18 2011-04-12 Microsoft Corporation Optimization of multi-label problems in computer vision
US8014596B2 (en) 2007-10-30 2011-09-06 Sharp Laboratories Of America, Inc. Methods and systems for background color extrapolation
AU2007237365B2 (en) * 2007-12-05 2011-05-12 Canon Kabushiki Kaisha Colour reproduction in a colour document image
US8532374B2 (en) * 2007-12-05 2013-09-10 Canon Kabushiki Kaisha Colour document layout analysis with multi-level decomposition
US8472716B2 (en) * 2007-12-05 2013-06-25 Canon Kabushiki Kaisha Block-based noise detection and reduction method with pixel level classification granularity
US8682029B2 (en) * 2007-12-14 2014-03-25 Flashfoto, Inc. Rule-based segmentation for objects with frontal view in color images
US8270483B1 (en) * 2008-01-18 2012-09-18 Maxim Integrated Products, Inc. Method and apparatus for applying accurate parameter estimation and efficient fade detection in weighted prediction for video compression
JP4952627B2 (ja) * 2008-03-21 2012-06-13 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム
US8571106B2 (en) * 2008-05-22 2013-10-29 Microsoft Corporation Digital video compression acceleration based on motion vectors produced by cameras
US8446463B2 (en) * 2008-08-22 2013-05-21 Genprime, Inc. Apparatus, method and article to perform assays using assay strips
JP5049921B2 (ja) 2008-08-26 2012-10-17 キヤノン株式会社 画像処理装置及び画像処理方法
JP5049922B2 (ja) 2008-08-26 2012-10-17 キヤノン株式会社 画像処理装置及び画像処理方法
JP5049920B2 (ja) 2008-08-26 2012-10-17 キヤノン株式会社 画像処理装置及び画像処理方法
US20100158376A1 (en) * 2008-10-17 2010-06-24 Klosterman Peter S Systems and methods for labeling and characterization of connected regions in a binary mask
US8351691B2 (en) * 2008-12-18 2013-01-08 Canon Kabushiki Kaisha Object extraction in colour compound documents
JP5153676B2 (ja) 2009-02-10 2013-02-27 キヤノン株式会社 画像処理装置、画像処理方法、プログラムおよび記憶媒体
AU2009201252B2 (en) * 2009-03-31 2011-06-02 Canon Kabushiki Kaisha Colour correcting foreground colours for visual quality improvement
JP5511468B2 (ja) 2009-04-13 2014-06-04 キヤノン株式会社 画像処理装置およびその制御方法、並びにプログラム
JP5511467B2 (ja) 2009-04-13 2014-06-04 キヤノン株式会社 画像処理装置およびその制御方法、並びにプログラム
TWI381321B (zh) * 2009-04-30 2013-01-01 Ind Tech Res Inst 重組多張影像與辨識方法以及影像擷取與辨識系統
JP5276539B2 (ja) * 2009-07-23 2013-08-28 キヤノン株式会社 画像処理方法および画像処理装置およびプログラム
US8670615B2 (en) * 2009-09-30 2014-03-11 Flashfoto, Inc. Refinement of segmentation markup
US9047674B2 (en) * 2009-11-03 2015-06-02 Samsung Electronics Co., Ltd. Structured grids and graph traversal for image processing
JP2011216080A (ja) * 2010-03-18 2011-10-27 Canon Inc 画像処理装置、画像処理方法、および記憶媒体
US9311567B2 (en) 2010-05-10 2016-04-12 Kuang-chih Lee Manifold learning and matting
US20120159292A1 (en) * 2010-12-16 2012-06-21 Oce-Technologies B.V. Method of processing an object-based image file with content type dependent image processing algorithms
US10218988B2 (en) 2011-02-23 2019-02-26 Nvidia Corporation Method and system for interpolating base and delta values of associated tiles in an image
KR101767269B1 (ko) * 2011-04-25 2017-08-10 한국전자통신연구원 영상 검색 장치 및 방법
JP5537492B2 (ja) * 2011-05-12 2014-07-02 富士重工業株式会社 環境認識装置
JP5776419B2 (ja) * 2011-07-29 2015-09-09 ブラザー工業株式会社 画像処理装置、画像処理プラグラム
JP5796392B2 (ja) * 2011-07-29 2015-10-21 ブラザー工業株式会社 画像処理装置、および、コンピュータプラグラム
US9008356B1 (en) * 2011-11-21 2015-04-14 Google Inc. Perceptually-driven representation for object recognition
US20130191732A1 (en) * 2012-01-23 2013-07-25 Microsoft Corporation Fixed Format Document Conversion Engine
CN104067293B (zh) 2012-01-23 2017-07-25 微软技术许可有限责任公司 矢量图分类引擎
JP5952428B2 (ja) 2012-01-23 2016-07-13 マイクロソフト コーポレーション ボーダレステーブル検出エンジン
US8989493B1 (en) * 2012-02-06 2015-03-24 Marvell International Ltd. Method and apparatus for identifying regions of an image to be filtered during processing of the image
JP5974589B2 (ja) * 2012-03-30 2016-08-23 ブラザー工業株式会社 画像処理装置およびプログラム
JP5935454B2 (ja) * 2012-03-30 2016-06-15 ブラザー工業株式会社 画像処理装置および画像処理プログラム
JP5958023B2 (ja) 2012-03-30 2016-07-27 ブラザー工業株式会社 画像処理装置および画像処理プログラム
JP6069923B2 (ja) * 2012-07-20 2017-02-01 セイコーエプソン株式会社 ロボットシステム、ロボット、ロボット制御装置
US8972061B2 (en) * 2012-11-02 2015-03-03 Irobot Corporation Autonomous coverage robot
JP5847063B2 (ja) * 2012-11-27 2016-01-20 京セラドキュメントソリューションズ株式会社 画像処理装置
JP5847062B2 (ja) * 2012-11-27 2016-01-20 京セラドキュメントソリューションズ株式会社 画像処理装置
US10158858B2 (en) * 2012-12-27 2018-12-18 Nvidia Corporation Method and system for index compression for fixed block size texture formats and for non-linear interpolation of index values along an edge in a tile
US9953008B2 (en) 2013-01-18 2018-04-24 Microsoft Technology Licensing, Llc Grouping fixed format document elements to preserve graphical data semantics after reflow by manipulating a bounding box vertically and horizontally
US9600869B2 (en) 2013-03-14 2017-03-21 Cyberlink Corp. Image editing method and system
US9190016B2 (en) 2013-03-15 2015-11-17 Valspar Sourcing, Inc. Color-matching tool for virtual painting
JP2014235452A (ja) * 2013-05-30 2014-12-15 株式会社東芝 整形装置
US9042649B2 (en) * 2013-09-24 2015-05-26 Konica Minolta Laboratory U.S.A., Inc. Color document image segmentation and binarization using automatic inpainting
US9819969B2 (en) 2013-11-26 2017-11-14 Nvidia Corporation Generalization of methods and systems for image compression while encoding at least one extra bit
CN106464869B (zh) * 2014-03-14 2019-07-19 寰发股份有限公司 调色板表初始化和管理的方法
US9633444B2 (en) 2014-05-05 2017-04-25 Xiaomi Inc. Method and device for image segmentation
CN103996189B (zh) * 2014-05-05 2017-10-03 小米科技有限责任公司 图像分割方法及装置
CN105389776B (zh) 2014-09-02 2019-05-03 辉达公司 图像缩放技术
JP6472279B2 (ja) * 2015-03-09 2019-02-20 キヤノン株式会社 画像処理装置及び画像処理方法
US9710157B2 (en) * 2015-03-12 2017-07-18 Lenovo (Singapore) Pte. Ltd. Removing connective strokes
US20160292275A1 (en) * 2015-04-03 2016-10-06 Apropose, Inc. System and method for extracting and searching for design
ES2550903B1 (es) * 2015-07-15 2016-06-21 Universidad De La Rioja Procedimiento para la estimación automática de la porosidad del viñedo mediante visión artificial
US9715624B1 (en) * 2016-03-29 2017-07-25 Konica Minolta Laboratory U.S.A., Inc. Document image segmentation based on pixel classification
US9846951B2 (en) 2016-03-31 2017-12-19 Konica Minolta Laboratory U.S.A., Inc. Determining a consistent color for an image
JP6173542B1 (ja) * 2016-08-10 2017-08-02 株式会社Pfu 画像処理装置、画像処理方法、および、プログラム
US10576475B2 (en) 2016-09-15 2020-03-03 Genprime, Inc. Diagnostic assay strip cassette
US11205103B2 (en) 2016-12-09 2021-12-21 The Research Foundation for the State University Semisupervised autoencoder for sentiment analysis
US10635927B2 (en) 2017-03-06 2020-04-28 Honda Motor Co., Ltd. Systems for performing semantic segmentation and methods thereof
US10453221B2 (en) * 2017-04-10 2019-10-22 Intel Corporation Region based processing
CN108345893B (zh) * 2018-03-15 2021-01-26 京东方科技集团股份有限公司 一种直线检测方法、装置、计算机存储介质及终端
CN110796133A (zh) * 2018-08-01 2020-02-14 北京京东尚科信息技术有限公司 文案区域识别方法和装置
US11836958B2 (en) * 2018-09-25 2023-12-05 Servicenow Canada Inc. Automatically detecting and isolating objects in images
WO2020174447A1 (en) * 2019-02-28 2020-09-03 Tata Consultancy Services Limited Multi-label placement for augmented and virtual reality and video annotations
CN111918065A (zh) * 2019-05-08 2020-11-10 中兴通讯股份有限公司 一种信息压缩/解压缩方法及装置
US11335021B1 (en) * 2019-06-11 2022-05-17 Cognex Corporation System and method for refining dimensions of a generally cuboidal 3D object imaged by 3D vision system and controls for the same
US11605177B2 (en) 2019-06-11 2023-03-14 Cognex Corporation System and method for refining dimensions of a generally cuboidal 3D object imaged by 3D vision system and controls for the same
US11501550B2 (en) 2020-11-24 2022-11-15 International Business Machines Corporation Optical character recognition segmentation
US11330149B1 (en) * 2021-01-15 2022-05-10 Konica Minolta Business Solutions U.S.A., Inc. Finding the page background color range
CN116704048B (zh) * 2023-08-09 2023-11-17 四川元祉智慧科技有限公司 一种双光配准方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57187778A (en) * 1981-05-12 1982-11-18 Omron Tateisi Electronics Co Pattern extracting method
JPS61243569A (ja) * 1985-04-19 1986-10-29 Fujitsu Ltd デイジタル画像領域へのラベル付け方式
JPS6261175A (ja) * 1985-09-12 1987-03-17 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 画素の連結性を解析する装置
JP2810660B2 (ja) * 1987-03-06 1998-10-15 株式会社日立製作所 粒子画像の解析装置
US5321770A (en) * 1991-11-19 1994-06-14 Xerox Corporation Method for determining boundaries of words in text
JPH05165955A (ja) * 1991-12-13 1993-07-02 Sony Corp 画像処理方法
US5384864A (en) 1993-04-19 1995-01-24 Xerox Corporation Method and apparatus for automatic determination of text line, word and character cell spatial features
DE69516751T2 (de) 1994-04-15 2000-10-05 Canon Kk Bildvorverarbeitung für Zeichenerkennungsanlage
US5751859A (en) * 1995-06-14 1998-05-12 Lucent Technologies Inc. Compression of text images by soft pattern matching
JPH1051642A (ja) 1996-07-31 1998-02-20 Fuji Xerox Co Ltd 画像処理装置
JP4170441B2 (ja) 1997-11-28 2008-10-22 富士通株式会社 文書画像傾き検出装置および文書画像傾き検出プログラムの記憶媒体
AUPP444898A0 (en) 1998-07-02 1998-07-23 Canon Kabushiki Kaisha A method and apparatus for boundary filtering a digital image
JP2000163594A (ja) 1998-11-30 2000-06-16 Canon Inc 画像パタ―ン検出方法及び装置
JP3748172B2 (ja) * 1998-12-09 2006-02-22 富士通株式会社 画像処理装置
NL1015943C2 (nl) * 2000-08-16 2002-02-19 Ocu Technologies B V Interpretatie van gekleurde documenten.
US7072508B2 (en) * 2001-01-10 2006-07-04 Xerox Corporation Document optimized reconstruction of color filter array images
US6782126B2 (en) * 2001-02-20 2004-08-24 International Business Machines Corporation Method for combining feature distance with spatial distance for segmentation
US7432940B2 (en) 2001-10-12 2008-10-07 Canon Kabushiki Kaisha Interactive animation of sprites in a video production
US6922485B2 (en) * 2001-12-06 2005-07-26 Nec Corporation Method of image segmentation for object-based image retrieval
US7027647B2 (en) * 2001-12-31 2006-04-11 Hewlett-Packard Development Company, L.P. Coder matched layer separation for compression of compound documents
US7120297B2 (en) * 2002-04-25 2006-10-10 Microsoft Corporation Segmented layered image system
US7392472B2 (en) 2002-04-25 2008-06-24 Microsoft Corporation Layout analysis
JP2003348361A (ja) * 2002-05-22 2003-12-05 Canon Inc 画像処理装置
US7227893B1 (en) * 2002-08-22 2007-06-05 Xlabs Holdings, Llc Application-specific object-based segmentation and recognition system
US20040096102A1 (en) * 2002-11-18 2004-05-20 Xerox Corporation Methodology for scanned color document segmentation
US7272258B2 (en) * 2003-01-29 2007-09-18 Ricoh Co., Ltd. Reformatting documents using document analysis information
AU2003903447A0 (en) 2003-06-26 2003-07-17 Canon Kabushiki Kaisha Rendering successive frames in a graphic object system
US7280120B2 (en) 2003-06-26 2007-10-09 Canon Kabushiki Kaisha Compositing with a sub-pixel mask in graphic object rendering
AU2003903445A0 (en) 2003-06-26 2003-07-17 Canon Kabushiki Kaisha Optimising compositing calculations for a run of pixels
US7586647B2 (en) 2004-07-29 2009-09-08 Canon Kabushiki Kaisha Halftone detection and removal
ATE501487T1 (de) * 2004-12-21 2011-03-15 Canon Kk Segmentierung eines digitalen bildes und herstellung einer kompakten repräsentation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020118028A1 (en) * 2018-12-05 2020-06-11 Sony Corporation Patcher tool
KR20210077742A (ko) * 2018-12-05 2021-06-25 소니그룹주식회사 패처 툴
CN113168723A (zh) * 2018-12-05 2021-07-23 索尼集团公司 修补工具
EP3874459A4 (en) * 2018-12-05 2022-08-10 Sony Group Corporation PATCHER TOOL

Also Published As

Publication number Publication date
EP1831823B1 (en) 2011-03-09
KR100926193B1 (ko) 2009-11-09
EP1831823A4 (en) 2009-06-24
US20080123945A1 (en) 2008-05-29
ATE501487T1 (de) 2011-03-15
JP2008524728A (ja) 2008-07-10
WO2006066325A1 (en) 2006-06-29
EP1831823A1 (en) 2007-09-12
JP5008572B2 (ja) 2012-08-22
US7991224B2 (en) 2011-08-02
DE602005026862D1 (de) 2011-04-21

Similar Documents

Publication Publication Date Title
KR100926193B1 (ko) 디지털 화상 분할 및 콤팩트한 표현 생성
US9384409B1 (en) Word segmentation for document image using recursive segmentation
US7343046B2 (en) Systems and methods for organizing image data into regions
Wang et al. Classification of newspaper image blocks using texture analysis
JP3056905B2 (ja) 文字認識方法およびテキスト認識システム
US6701010B1 (en) Color image processing apparatus and pattern extracting apparatus
US9135722B2 (en) Perceptually lossless color compression
JP4242532B2 (ja) デジタル画像データ区分方法
US7158669B2 (en) Image compression method and apparatus, and image coding method and apparatus
JP3353968B2 (ja) 画像処理装置
US20080013784A1 (en) Method and apparatus for filtering, clustering, and region fitting by mean shift of images using kernel function values
Chen et al. Decompose algorithm for thresholding degraded historical document images
US7596265B2 (en) Segmenting pixels in an image based on orientation-dependent adaptive thresholds
CN110766017B (zh) 基于深度学习的移动终端文字识别方法及系统
US5835638A (en) Method and apparatus for comparing symbols extracted from binary images of text using topology preserved dilated representations of the symbols
Mukherjee et al. Enhancement of image resolution by binarization
JP2005302056A (ja) パターン抽出装置
CN114549649A (zh) 一种基于特征匹配的扫描地图点符号的快速识别方法
AU2004242419A1 (en) Analysing digital image of a document page
AU2005211628A1 (en) Processing digital image
AU2004242421A1 (en) Segmenting digital image and producing compact representation
AU2004242418A1 (en) Generating compressed output representation
KR100350793B1 (ko) 2진 칼라 히스토그램을 이용한 멀티미디어 객체의 특징소 추출방법과 특징소 정보의 생성방법 및 멀티미디어 검색방법
Gokhale et al. „Color Image Segmentation based on 4-D Histogram using JND Color and Spatial Connectivity‟
Htun et al. Page Segmentation and Document Layout Analysis for Scanned Image by using Smearing Algorithm

Legal Events

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

Payment date: 20121023

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131029

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141028

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151023

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161025

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171025

Year of fee payment: 9