KR101518357B1 - 색 맵된 이미지의 예측 스케일링을 위한 방법 및 시스템 - Google Patents

색 맵된 이미지의 예측 스케일링을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101518357B1
KR101518357B1 KR1020117004809A KR20117004809A KR101518357B1 KR 101518357 B1 KR101518357 B1 KR 101518357B1 KR 1020117004809 A KR1020117004809 A KR 1020117004809A KR 20117004809 A KR20117004809 A KR 20117004809A KR 101518357 B1 KR101518357 B1 KR 101518357B1
Authority
KR
South Korea
Prior art keywords
color
colors
color map
image
scaled
Prior art date
Application number
KR1020117004809A
Other languages
English (en)
Other versions
KR20110055589A (ko
Inventor
시몽 드까리에
Original Assignee
밴트릭스 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 밴트릭스 코오퍼레이션 filed Critical 밴트릭스 코오퍼레이션
Publication of KR20110055589A publication Critical patent/KR20110055589A/ko
Application granted granted Critical
Publication of KR101518357B1 publication Critical patent/KR101518357B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/393Enlarging or reducing
    • H04N1/3935Enlarging or reducing with modification of image resolution, i.e. determining the values of picture elements at new relative positions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • H04N1/644Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor using a reduced set of representative colours, e.g. each representing a particular range in a colour space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0135Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Color Image Communication Systems (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

원본 색 맵된 이미지를 스케일링하는 방법이 개시된다. 상기 방법은, 스케일된 이미지와는 별도로 상기 원본 색 맵을 상기 원본 색 맵과 상기 원본 이미지에 기초하여 스케일된 색 맵으로 변환하는 단계; 상기 원본 이미지를 상기 스케일된 이미지로 스케일링하는 단계; 상기 스케일된 이미지의 각 화소에 대하여: 상기 화소의 색을 정의하는 상기 원본 이미지의 기여 화소들의 셋을 결정하는 단계; 상기 기여 화소들의 색들과 상기 화소의 상기 기여 화소들에 대한 기하학적 근접에 기초하여 상기 화소의 상기 색을 결정하는 단계; 상기 화소의 상기 색과 상기 스케일된 색 맵 내의 색과의 관련성을 확립하는 단계; 및 그것에 대응하는 색 맵 인덱스를 결정하는 단계; 및 상기 스케일된 화소 맵 내의 상기 결정된 색 맵 인덱스를 설정하는 단계를 수행한다. 이에 대응하는 디지털 이미지를 스케일링하는 시스템 또한 제공된다.

Description

색 맵된 이미지의 예측 스케일링을 위한 방법 및 시스템{METHOD AND SYSTEM FOR PREDICTIVE SCALING OF COLOUR MAPPED IMAGES}
[1]본 발명은 디지털 이미지의 스케일링에 관한 것으로, 특히 색 맵된 이미지의 예측 스케일링을 위한 방법 및 시스템에 관한 것이다.
[2]이미지 프로세싱은 데이터의 공유 볼륨(share volume)이 처리되어야하고 복잡한 알고리즘이 관련되어서, 시간이 걸리고 CPU 집중적인(intensive) 절차(작업)이다.
[3]이러한 이유로, 데이터의 볼륨과 이미지 프로세싱 알고리즘의 복잡성 모두를 줄이는 다양한 방법이 개발되어 왔다.
[4]방법들 중 한가지는 이미지 품질을 희생하면서까지 이미지를 생성하기 위해 사용되는 별개의 색들의 개수를 줄이는 것에 의존한다. 이미지의 모든 화소(pixel)의 모든 주요(primary) 색 컴포넌트(component)를 저장하고 관리하는 대신에, 가장 대표적인(most representive) 색들이 제한된 크기(size)의 색 요소(element) 어레이로 그룹지어진다. 각 요소(색)는 그 위치에 따라 인덱스된다. 셋 내의 색들의 개수와 이미지 품질 사이의 긍정적인 트레이드 오프(positive trade off)를 나타내는 이러한 색 요소들의 어레이는, 관습적으로 이미지의 색 맵(colour map)이라고 언급된다. 이 방법으로, 이미지의 화소들은 전체(full) 색 컴포넌트가 아닌 단지 그들의 색 맵으로의 인덱스(index into the colour map)를 포함하며, 이는 보통 이미지의 화소 맵(pixel map)이라 언급된다. 그러므로, 구조적으로 색 맵과 화소 맵으로 조직된(organized) 이미지는 색 맵된 이미지(colour mapped image)라 불린다.
[5]많은 어플리케이션에 있어서, 허용 가능한 인지되는 시각적 품질을 유지하면서도 크기가 작고 처리하기가 단순하기 때문에, 색 맵된 이미지는 다른 종류의 이미지보다 선호된다.
[6]그러나, 이 분야에서 스케일링(scaling)이라고 잘 알려진, 이미지 변환(transformation)과 같은 일부 어플리케이션에 있어서, 색 맵된 이미지에 의한 이득은 아직 충분하지 않다. 예를 들어, 고-품질의 원본 이미지의 크기가 모바일 기기의 디스플레이 또는 메모리 능력을 초과하는 경우, 특히 다수의 이미지가 비디오 시퀀스로 스트림되는 경우에, 스케일링 수행의 필요성이 발생할 수 있다. 이러한 경우에, 작은 디스플레이에 들어맞지 않는 이미지의 화소들은 떨어져야(drop) 하며, 이는 낮은 해상도와 더 이상 적절하지 않은 색 맵에 의해 허용할 수 없는 이미지 품질의 손실을 가져온다. 스케일링에 의한 피해를 최소화하기 위해, 종래 기술은 스케일된 이미지의 색 맵의 재-생성과 같은 계산 집약적인 과정(computationally intensive procedure)의 수행을 제안한다.
[7]그러나, 종래기술은 색 맵된 이미지의 스케일링 동안 일어날 수 있는 이미지 프로세싱을 더 줄일 수 있는 많은 기회를 간과하는 것으로 보인다.
[8]따라서, 이미지 프로세싱의 계산 집약을 줄여주는, 색 맵된 디지털 이미지의 스케일링을 위한 개선된 방법 및 시스템을 개발하는 것이 바람직하며 이롭다.
[9]종래기술의 단점을 방지하거나 경감시키는 색 맵된 디지털 이미지의 스케일링을 위한 방법 및 시스템을 제공하고자 하는 데에, 본 발명의 목적이 있다.
[10]본 발명의 일 측면에 따르면, 원본 색 맵과 원본 화소 맵을 가지는 원본 이미지를 스케일된 색 맵과 스케일된 화소 맵을 가지는 스케일된 이미지로 스케일링하는 방법이 제공된다. 상기 방법은, (a) 스케일된 이미지와는 별도로, 상기 원본 색 맵을 상기 원본 색 맵과 상기 원본 이미지에 기초하여 스케일된 색 맵으로 변환하는 단계; (b) 상기 원본 이미지를 상기 스케일된 이미지로 스케일링하는 단계; (c) 상기 스케일된 이미지의 각 화소에 대하여, (i)상기 화소의 색을 정의하는 상기 원본 이미지의 기여 화소들의 셋(set of contributing pixels)을 결정하는 단계; (ii)상기 기여 화소들의 색들과 상기 화소의 상기 기여 화소들에 대한 기하학적 근접(geometric proximity)에 기초하여 상기 화소의 상기 색을 결정하는 단계; (iii)상기 화소의 상기 색과 상기 스케일된 색 맵 내의 색과의 관련성을 확립하는 단계; 및 그것에 대응하는 색 맵 인덱스를 결정하는 단계; 및 (iv)상기 스케일된 화소 맵 내의 상기 결정된 색 맵 인덱스를 설정하는 단계를 포함한다.
[11]상기 (a) 단계는 원본 색 맵 내의 색들의 개수 N을 계산하고, 투명한(tranparent) 색들을 제외하는 단계를 포함한다.
[12]상기 방법에서, 상기 변환하는 단계는, N>Nmax인 경우에 상기 원본 색 맵을 상기 스케일된 색 맵으로 재사용하는 단계을 포함한다.
[13]상기 방법에서, 상기 변환하는 단계는, (v)N<Nmin인 경우에, 상기 스케일된 색 맵을 생성하기 위해 상기 원본 색 맵에서 이용가능한 색들의 개수를 늘리는 단계를 포함한다.
[14]유익하게(benificially), 상기 변환하는 단계는, (vi)색 향상(colour enhancement)을 위해 상기 원본 색 맵에서 이용 가능한 색들의 서브-셋을 선택하는 단계; (vii)상기 선택된 색들의 서브-셋을 위해 색들의 상기 개수를 늘리는 단계; 및 (viii)Nmin<N<Nmax인 경우에, 단계(vii)에서 얻어진 중복(duplicate) 색들을 제거하는 단계를 더 포함한다.
[15]편리하게(conveniently), 상기 (v) 단계는, 상기 원본 색 맵으로부터 어느 2개의 색들의 조합들을 생성하는 단계; 및 각각의 조합에 대해 상기 2개 색들 간에 보간하는(interpolating) 단계를 포함한다.
[16]상기 발명의 실시예에서, 상기 (vi) 단계는, 하기의 방법에 따라 상기 색들의 서브-셋에서의 색들의 개수 Ms를 선택하는 단계를 포함한다. N(N+1)≤2Nmax이면 Ms=N; N(N+1)>2Nmax이면 Ms=M, 여기서 M은 M(M-1)≥2(Nmax-N)을 만족하는 가장 작은 수이고 M<N임; 여기서 N은 상기 원본 칼라 맵의 색들의 개수, Nmax는 색들의 미리 설정된 최대 개수임.
[17]상기 방법에서, 상기 (vii) 단계는, 상기 색들의 서브-셋으로부터 어느 2개의 색들의 조합들을 생성하는 단계; 및 각각의 조합에 대해 상기 2개 색들 간에 보간하는 단계를 포함한다.
[18]비디오 스트림 내에서의 이미지를 위하여, 상기 (b) 단계는, 상기 원본 이미지의 델타 지역(delta region)만을 스케일링하는 단계를 포함할 수 있다. 원본 이미지의 델타 지역은, 비디오 스트림에서 이전 프레임과 비교하여 변경된 원본 이미지의 지역을 말한다.
[19]상기 방법에 있어서, 상기 (ii) 단계는, 상기 기여 화소들의 상기 색들이 동일한 경우에 상기 화소의 상기 색을 상기 기여 화소들의 상기 색들과 동일하게 배정하는 단계; 또는 상기 화소의 상기 색을 상기 기여 화소들 간의 보간 색들(interpolating colours)에 의해 배정하는 단계를 포함한다.
[20]유익하게, 상기 기여 화소들 간의 상기 보간 색들은 이선형(bi-linear) 보간을 포함할 수 있다.
[21]이선형 보간을 위해, 상기 방법의 상기 (i) 단계는, 화소(P1)를 직사각형으로 감싸는(rectangle surrounfing) 꼭지점에 위치하는 제1(Q11), 제2(Q12), 제3(Q21) 및 제4(Q22) 기여 화소들을 결정하는 단계를 포함한다(여기서 기여 화소들은 각각의 색들 f(Q11), f(Q12), f(Q21) 및 f(Q22)을 가짐). 그리고, (ii) 단계는, 화소(P1)의 색 f(P1)을 다음과 같이 결정하는 단계를 포함한다. f(Q11)=f(Q12)이고 f(Q12)=f(Q21)인 경우에, f(P1)=f(Q11)(x2-x1)/(x2-x1)+f(Q21)(x-x1)/(x2-x1). 여기서, x는 화소 P1의 수평 좌표(horizontal coordinate)이고, x1은 화소 Q11과 Q12의 수평 좌표이고, x2는 화소 Q21과 Q22의 수평 좌표임.
[22]대안적으로, 이선형 보간을 위해, 상기 방법의 상기 (i) 단계는, 화소(P1)를 직사각형으로 감싸는(rectangle surrounfing) 꼭지점에 위치하는 제1(Q11), 제2(Q12), 제3(Q21) 및 제4(Q22) 기여 화소들을 결정하는 단계를 포함한다(여기서 기여 화소들은 각각의 색들 f(Q11), f(Q12), f(Q21) 및 f(Q22)을 가짐). 그리고 (ii) 단계는, 화소(P1)의 색 f(P1)을 다음과 같이 결정하는 단계를 포함한다. f(Q11)=f(Q21)이고 f(Q12)=f(Q22)인 경우에, f(P1)=f(Q11)(y2-y)/(y2-y1)+f(Q12)(y-y1)/(y2-y1). 여기서 y는 화소 P1의 수평 좌표이고, y1은 화소 Q11과 Q21의 수평 좌표이고, y2는 화소 Q12과 Q22의 수평 좌표임.
[23]편리하게, 상기 방법의 상기 (iii) 단계는, 상기 스케일된 색 맵 내에서 가장 가까운 짝(match)을 찾는 단계를 포함할 수 있다.
[24]본 발명의 다른 측면에 따르면, 원본 색 맵과 원본 화소 맵을 가지는 원본 이미지를 스케일된 색 맵과 스케일된 화소 맵을 가지는 스케일된 이미지로 스케일링하는 시스템이 제공된다. 상기 시스템은, 프로세서 및 컴퓨터 판독가능 매체를 갖는 컴퓨터를 포함하고, 상기 컴퓨터 판독가능 매체는 저장된 컴퓨터 판독가능 명령들을 가지며, 상기 컴퓨터 판독가능 명령들은 하기의 모듈들을 구성하기 위해 상기 프로세서에 의해 실행된다. 상기 스케일된 이미지와는 별도로, 상기 원본 색 맵과 상기 원본 이미지에 기초하여 상기 원본 색 맵을 상기 스케일된 색 맵으로 변환하기 위한 색 맵 변환 모듈; 상기 원본 이미지를 상기 스케일된 이미지로 스케일링하기 위한 화소 선택 모듈; 상기 스케일된 이미지의 각 화소에 대하여, (i)상기 화소의 색을 정의하는 상기 원본 이미지의 기여 화소들의 셋; (ii)상기 기여 화소들의 색들과 상기 화소의 상기 기여 화소들에 대한 기하학적 근접에 기초한 상기 화소의 상기 색을 결정하기 위한 색 보간 모듈; 및 (iii)상기 화소의 상기 색과 상기 스케일된 색 맵 내의 색과의 관련성을 확립하고, 그것에 대응하는 색 맵 인덱스를 결정하고; (iv)상기 스케일된 화소 맵 내의 상기 결정된 색 맵 인덱스를 설정하기 위한 색 맵 인덱스 생성 모듈.
[25]상기 시스템에 있어서, 상기 색 맵 변환 모듈은 상기 원본 색 맵 내의 색들의 개수 N을 결정하고, 상기 색들의 개수 N을 미리 결정된 문턱 Nmin 및 Nmax와 비교하는 색 맵 분석 모듈을 더 포함한다.
[26]상기 색 맵 변환 모듈은, 상기 원본 색 맵에서 이용가능한 색들의 서브-셋을 선택하기 위한 색 컬링 모듈을 더 포함하고, Nmin<N<Nmax이면 색 향상을 위해 가장 이롭다.
[27]상기 색 맵 변환 모듈은, N<Nmax이면 상기 스케일된 색 맵을 생성하기 위해 상기 원본 색 맵 내에서 이용가능한 색들의 개수를 증가시키고, Nmin<N<Nmax이면 상기 선택된 색들의 서브-셋 내의 색들의 개수를 증가시키고, 중복 색들을 제거하기 위한 색 맵 향상 모듈을 더 포함한다.
[28]상기 색 맵 변환 모듈은, 상기 원본 색 맵으로부터 어느 2개 색들의 조합들을 생성하고; 각 조합에 대해 2개의 색들 간에 보간하는 수단을 포함한다.
[29]상기 색 컬링 모듈은 하기의 방법에 따라 상기 색들의 서브-셋에서 색들의 개수 Ms를 선택하는 수간을 포함한다. N(N+1)≤2Nmax이면 Ms=N; N(N+1)>2Nmax이면 Ms=M, 여기서 M은 M(M-1)≥2(Nmax-N)을 만족하는 가장 작은 수이고 M<N임; 여기서 N은 상기 원본 색 맵의 색들의 개수, Nmax는 색들의 미리 설정된 최대 개수임.
[30]상기 시스템에 있어서, 상기 색 컬링 모듈은, 상기 원본 색 맵에서의 색들의 사용 빈도를 나타내는 색 사용 벡터를 결정하고, 상기 색 사용 벡터에 기초하여 옥트리(octree) 그래프를 생성하고, 상기 서브-셋에 포함될 Ms개의 색들을 선택하기 위해 상기 옥트리 그래프를 파싱(parsing)하는 수단을 더 포함한다.
[31]저장된 컴퓨터 판독가능 명령들(instructions)을 포함하는 컴퓨터 판독가능 매체가 역시 개시된다. 상기 명령들은 프로세서에 의해 실행되어, 상술된 방법의 단계들을 수행한다.
[32]유익하게, 원본 그리고 스케일된 이미지들은 Graphical Interchange Format(GIF) 이미지들이다. 대한적으로, 상기 이미지들은 Portable Network Graphic(PNG), 및 Bitmap(BMP) 또는 색 맵을 사용하는 다른 이미지 포맷들로 인코딩될 수 있다.
[33]그러므로, 색 맵된 이미지를 스케일링하는 개선된 방법 및 시스템이 제공된다.
도 1은 본 발명의 실시예에 따라 색 맵된 이미지를 스케일링하는 방법의 단계들을 도시한다.
도 2는 도 1의 방법의 블록 104 (색 맵 변환)을 더욱 자세히 도시한다.
도 3은 도 1의 방법의 블록 108 (색 맵된 이미지 스케일링)을 더욱 자세히 도시한다.
도 4는 도 3의 블록 312에서 수행되는 이선형 보간 및 블록 310에서 수행되는 기여 화소들의 색들의 분석을 도시한 도면이다.
도 5는 도 3의 블록 310 (주요 결정)을 더욱 자세히 도시한다.
도 6은 본 발명의 실시예에 따른 색 맵된 이미지의 스케일링 시스템을 도시한다.
[41]본 발명의 바람직한 실시예는 이미지를 스케일링하는 것과 같은 색 맵된 이미지를 다른 것으로 변환하는 동안 발생하는 이미지 프로세싱을 최소화할 수 있는 기회를 이용한다.
[34]본 발명의 실시예들은 대응하는 도면들을 참조하여 예시적으로 설명될 것이다.
[42]도 1은 본 발명의 실시예에 따른 색 맵된 이미지 스케일링 방법을 나타내는 순서도(10)을 도시한다. 방법(10)은 블록(100)에서 시작된다. 원본 이미지에서 가장 빈번하게 사용되는 색들을 결정하기 위하여, 블록(104)(색 맵 변환)에서, 원본 색 맵(original colour map)(102)이, 원본 이미지의 화소 맵(pixel map)(110) 내의 각 화소의 그것의 색 맵 인덱스에 대한 분석에 기초하여, 스케일된 색 맵(scaled colour map)(106)으로 변환된다. 이후에, 블록(108)(색 맵된 이미지 스케일링)은, 스케일된 색 맵과 스케일된 화소 맵(도 1에 도시되지 않음)을 갖는 스케일된 색 맵 이미지(112, scaled colour map image)를 생성하기 위해, 원본 화소 맵(110)과 스케일된 색 맵(106)을 블록(108)의 입력으로 사용하여, 원본 이미지의 스케일링을 수행한다. 방법은 블록(114)에서 종료된다.
[43]색 맵 변환 블록(104)의 목적은, 스케일된 이미지의 계산 집약적인 양자화(computationally intensive quantization)의 수행 없이, 원본 색 맵이 스케일된 이미지의 색 맵과 유사하도록, 원본 색 맵을 변환하는 것이다. 양자화 대신에, 본 발명의 실시예의 방법은, 도 2에서 더욱 상세히 도시된 단계들을 수행한다.
[44]색 맵 변환 과정(20)은 블록(200)에서 시작하며, 이에 뒤따라 원본 색 맵(102)이 변환될 필요가 있는지 없는지의 여부가 결정된다. 이는 색들의 개수 N(원본 색 맵에서 사용되는 색들)을 카운팅하고, 투명한(transparent) 색을 제외하고(블록 204), 그것의 값을 분석하는 것(블록 206)에 의해 완수된다. 투명한 색은 별도로 다루어진다. 우리의 연구는 N이 미리 결정된 색들의 최대 개수 Nmax를 초과하면, 즉 N>Nmax, 원본 색 맵이 스케일된 색 맵으로 변형없이 효과적으로 재사용될 수 있다는 것을 보여준다. Nmax의 합리적인(reasonable) 값은 16으로 결정된다. 그러나 색들의 최대 개수 Nmax에 대한 다른 값이 유리한 다른 환경이 있을 수 있다. 만약에 그 경우라고 판명된다면(블럭 206에서 '거짓'으로 판별), 스케일된 색 맵(230)은 단계(228)에서 원본 색 맵의 복사(copy)로 정의되며, 과정(20)은 단계(232)에서 멈춘다.
[45]그러나, 만약 N<Nmax이면, 색들의 개수 N은 스케일된 이미지의 수용가능한(acceptable) 품질을 유지하는데 충분하지 못하다고 여겨진다. 그래서, 원본 색 맵의 변환이 더 요구된다(블록 206에서 '참'으로 판별). 변환의 품질은 실질적으로 변환될 색들의 선택에 의존적이며, 이는 결국 색들의 개수 N에 의존적이다. N의 분석은 블록(208)에서 수행된다. N이 미리 결정된 색들의 최소 개수 Nmin보다 작으면, 즉 N<Nmin이면(블록 208에서 '거짓'으로 판별), 더 이상의 변환을 위하여 원본 색 맵 내의 모든 색들이 블록(210)에서 선택된다. Nmin의 합리적인 값은 Nmin=4으로 결정된다. 그러나, 색들의 최소 개수 Nmin에 대한 다른 값이 유리한 다른 환경이 있을 수 있다. 그렇지 않으면(블록 208에서 '참'으로 판별), 즉 색들의 개수 N이 Nmin보다 크고 Nmax보다 작으면, 오직 색들의 서브-셋(sub-set)이 선택되고, 서브 셋 내의 색들이 원본 색 맵의 변환을 위해 가장 유리하다(이롭다). 어떤 색들을 선택할지를 결정하기 위하여, 원본 이미지의 각 화소가 그것의 (가장 빈번하게 사용되는 색들을 결정하기 위한)색 맵 인덱스에 대하여 분석된다(블록 212). 이 분석에서, 실제 색 값들은 처리되지 않는다. 대신에, 원본 화소 맵(블록 110) 내의 화소의 값이 N개의 정수 값들의 색 사용 벡터(colour usage vector)를 위한 직접적인 인덱스(direct index)로 제공된고, 각 값은 대응되는 색의 사용 빈도(frequency of use of correponding colour)를 나타낸다. 매번 짝(match)은 결정되며, 직접적인 인덱스에 대응되는 색 사용 벡터의 값이 증가된다(블록 216).
[46]원본 화소 맵(110)의 모든 화소들이 처리되면, 블록(218)에서 색 사용 벡터는 옥트리 그래프(octree graph)를 덧붙인다(populate). 옥트리 그래프는 레벨들 내에서 어레인지된 노드들(nodes arranged in levels)을 포함하며, 각 노드는 9개의 값들을 홀드(hold)하며, 각 레벨은 최상위로부터 최하위 비트로의 색 컴포넌트 비트 깊이(a colour component bit depth from most to least significant bits)에 대응된다. 예를 들어, 색의 적, 녹 및 청 컴포넌트의 최상위 비트들이 결합되어 옥트리 그래프의 첫번째 노드 내에서 3비트 인덱스를 형성한다. 각 후속 비트들은 동일한 방법으로 트리(tree)의 더 깊은 레벨들 내로 인덱스된다. 이는 색들을 분류하는(classify) 매우 효율적인 방법이다. 각 노드는 반드시 전체 이미지의 비율에 대한 값(a value for the proportion of the whole image)을 홀드해야 한다. 색 엔트리(entry)가 트리에 덧붙여지면, 그것의 사용이 가로지르는 각 노드의 비율 값을 증가시킨다(its usage increments the proportion value of each node it traverses).
[47]RGB 컴포넌트 RGB(13210, 2610, 8710)를 가지며, 전체 입력 이미지의 21%에서 사용되는 예시적인 색을 고려해보자. 아래에 적은 10은 RGB 컴포넌트의 대응되는 값의 십진 표기법(decimal representation)을 나타낸다. 이진 표현법으로는, RGB 컴포넌트는 RGB(100001002, 000110102, 010101112)에 해당한다. 하기 표 1에서는 "색" 컬럼(column)의 서브 컬럼(sub-column) R,G,B를 이진 표현법으로 표시된 RGB 컴포넌트가 채운 것이 도시된다. 각 깊이(depth)에서, RGB 컴포넌트의 비트들은 인덱스들(indices)로 번역되는 비트 패턴들을 형성한다. 예를 들어, 깊이 0에서, 예시적인 색의 비트 패턴은 1002이고, 이는 인덱스 410으로 번역된다. 인덱스의 값은 표 1의 "옥트리 인덱싱" 컬럼의 서브 컬럼의 숫자를 결정하며, 이의 표 1의 깊이 0에 대응되는 로우(row)와의 교차지점은 상기 예시적인 색의 사용에 대한 값, 즉 21%를 나타낸다.
옥트리 인덱싱
깊이(Depth) 색(Color) 인덱스(Index) 옥트리 인덱싱(Octree Indexing)
R G B 0 1 2 3 4 5 6 7
0 1 0 0 4 21%
1 0 0 1 1 21%
2 0 0 0 0
3 0 1 1 3 21%
4 0 1 0 2 21&
5 1 0 1 5 21%
6 0 1 1 3 21%
7 0 0 1 1 21%
[48]개관적으로 보면(from a quick overview), 첫번째 노드의 브랜치(branch) 4가 이미지 내의 모든 색들에 대해 21%를 홀드하고 있음을 알 수 있다.
[49]색 사용 벡터의 모든 값들이 옥트리 그래프를 덧붙이기(populate) 위해 사용되면, 가장 이로운 색(the most benificial colours)의 서브-셋 내에 포함되기 위해 선택된 색들의 개수 Ms가 블록(220)에서 결정된다. Ms는 다음의 규칙들에 따라 선택된다.
[50]규칙 1: 만약 N(N+1)≤2Nmax 이면, Ms=N.
규칙 2: 만약 N(N+1)>2Nmax 이면, Ms=M. 여기서, M은 M<N이고 M(M-1)≥2(Nmax-N)을 만족하는 가장 작은 수임.
[51]만약, 규칙 2가 적용가능하다면, 원한다면, Ms는 닫힌 형식(closed form) 내에서 쉽게 찾아질 수 있다. 실제로, 아래의 정리는 올바르다.
정리( Theorem )
[52]N과 Nmax가 자연수이고, N<Nmax와 N(N+1)>2Nmax가 성립한다. [x]가 x의 정수 부분이라 하자. 그리고, x가 자연수이면 E(x)=[x]이고, 그렇지 않으면 E(x)=[x]+1이라 하자.
[53]m(m-1)≥2(Nmax-N)을 만족하는 가장 작은 자연수 M=m<N은 다음과 같이 결정된다.
Figure 112011014582006-pct00001

증명( Proof )
[54]부등식 m(m-1)≥2(Nmax-N)는 간단한 대수(algebra)를 이용하여 m2-m-2(Nmax-N)≥0이 된다. M2-M-2(Nmax-N)=0을 M에 대해 풀면, 우리는 2개의 루트(root)를 얻는다.
Figure 112011014582006-pct00002
,
Figure 112011014582006-pct00003
[55]부등식 m2-m-2(Nmax-N)≥0는 오직 양의 루트보다 큰값 M에 의해서만 만족될 수 있다.
Figure 112011014582006-pct00004
M은 자연수이어야 하므로, M=E(m1)이다.
그러므로,
Figure 112011014582006-pct00005
가 된다.
[56]Nmax=16인 경우에 Ms를 계산하는 2가지의 예에 대해 알아보자.
예1( Example 1)
[57]원본 색 맵에서 사용되는 색들의 개수 N=4라 하자.
[58]이 경우에, (1/2)N(N+1)=(1/2)4(4+1)=10.
10<16 이므로, 규칙 1이 적용되고, 결과적으로 Ms=N 또는 Ms=4이다.
[59]그러므로, 서브-셋 내로 포함되기 위하여 4개의 색이 선택되어야 한다.
예2( Example 2)
[60]원본 색 맵에서 사용되는 색들의 개수 N=9라 하자.
[61]이 경우에, (1/2)N(N+1)=(1/2)9(9-1)=36.
[62]36>16이므로, 규칙 2가 적용된다. 위의 정리에 따라서,
Figure 112011014582006-pct00006
또는
Figure 112011014582006-pct00007
이 얻어지며, 이는 M=E(4.27)=5, 결과적으로 Ms=5가 된다.
[63]그러므로, 서브-셋 내로 포함되기 위하여 5개의 색이 선택되어야 한다.
[64]서브-셋 내의 색의 개수 Ms가 결정되면, 가장 이로운 색을 선택하기 위해 옥트리 그래프가 노드에서 노드로 파싱된다. 예를 들어, 만약 16개의 색이 필요하다면, 각각의 선택된 색은 모든 화소에서 최소한 6% 사용될 것이 요구된다. 옥트리 그래프는 요구를 만족하는 노드들을 찾을 때까지 파싱된다. 만약 노드가 리프(leaf, full colour)라면, 결과적인 색은 각 노드의 자식 엔트리(child entry)를 그들에 대응하는 비율에 의해 평균하는 것에 의해 계산된다.
[65]선택된 색들은 원본 색 맵의 색들의 서브-셋을 형성하며, 이는 원본 색 맵의 변환을 수행하기 위해 가장 이로운 것으로 여겨진다.
[66]서브-셋의 변환이, 색들의 서브-셋 내의 이웃 색들(neighbouring colours)의 각 페어(pair) 내의 색들을 평균하는 것에 의해 선택된 색들을 보간(interpolating)하는 것을 통해 블록(222)에서 수행되므로, 결과적인
Figure 112011014582006-pct00008
개의 새로운 색은 이미 존재하는 N개의 색들에 더해진다. 각 페어의 적, 녹, 청 컴포넌트는 서로 독립적으로 평균된다. 그러므로, 고간 이후에 색들의 전체 개수는
Figure 112011014582006-pct00009
로 결정된다.
[67]보간 이후의 색들의 전체 개수 Mt는 색들의 개수 Nmin을 초과할 수 있다. 그러한 경우에는(블록 224에서 '참'으로 판별), 보간 이후의 색들은 중복(duplicate) 색들을 위해 체크된다. 이는 남아있는 색들이 유일(unique)하다는 것을 보장하기 위해 블록(226)에서 실질적으로 제거된다. 스케일된 색 맵(106)은 블록(226)에서 생성된 색들로 블록(228)에서 정의된다. 만약, 블록(222)의 보간 이후의 색들의 전체 개수 Mt가 Nmin보다 작으면(블록 224에서 '거짓'으로 판별), 스케일된 색 맵(106)은 블록(222)에서 생성된 모든 색들을 포함한다. 원본 색 맵의 변환은 블록(232)에서 멈춘다.
[68]도 3은 도 1의 블록(108, 색 맵된 이미지 스케일링)의 동작의 확장을 더욱 자세히 한 다이어그램(30)을 도시한다.
[69]Graphical Interchange Format(GIF)과 같은 이미지 인코딩 포맷들이 지역 최적화(regional optimization)를 지원한다는 것은 잘 알려져 있으며, 대부분의 인코딩된 GIF 에니메이션들은 지역 최적화되어 있다. 우리는, 원본 이미지를 스케일링하는 동안 처리되는 화소의 개수를 줄이기 위해, 쉽게 이용 가능한(readily available) 지역 최적화를 이용하려 한다. 이러한 목적으로, 시작에서(블록 300), 필요한 스케일 비율(scale ratio)을 결정하기 위해, 모바일 기기(mobile device)의 디스플레이 가능한 지역(displayable area)의 크기가 원본 이미지의 크기와 비교된다. 이 스케일 비율은, 스케일된 이미지를 위한 화소들의 선택(블록 302)을 결정하기 위해, 최적화된 지역 파라매터들(optimized regional parameters)에 적용된다. 선택에 있어서 (도 1의 단계 104에서 미리 생성된)스케일된 색 맵(106)으로부터 어떤 색들이 각 화소에 배정되어야 하는지를 결정하기 위해서는, 이 이상의 처리가 요구된다.
[70]모든 선택된 화소가 처리되지 않은 한(블록 304에서 '되었음(done)'으로 판별되지 않는 한), 블록(302)에서 선택된 각 화소(블록 304)에 대하여(블록 304에서 '함(do)'으로 판별), 블록(308)에서 블록(320)의 단계들이 수행된다. 각 화소에 대하여, 원본 화소 맵(블록 110)에 기반해 원본 이미지 내의 기여 화소들의 셋이 결정된다(블록 308). 각 화소의 색은 기여 화소들의 색들에 의존적이고, 기여 화소들의 보간 적,녹,청(R,G,B) 값에 의해서 결정되거나(블록 310에서 '참'으로 판별), 또는 보간을 완전히 건너뛰고(블록 310에서 '거짓'으로 판별) 블록(310)에서 수행되는 기여 화소들의 색들에 대한 분석에 의존하여 결정된다.
[71]본 발명의 실시예에서, 이-선형 보간(bi-linear interpolation)이 사용되지만, 다른 보간 기술이 이로운 환경이 있을 수 있음이 예상된다(contemplated).
[72]블록(108, 색 맵된 이미지 스케일링)의 동작을 기술하는 과정(30)이 더욱 자세히 설명되기에 앞서, 블록(312)와 블록(310)의 동작을 더욱 자세히 설명하기 위해 도 4와 도 5를 참조하기로 한다.
[73]스케일된 이미지의 화소를 P1이라 하기로 하자, 그리고 도 4의 다이어그램(40)에 나타난 바와 같이, 원본 이미지의 대응되는 화소들을 Q11, Q12, Q21, Q22라 하자. 각각의 P1, Q11, Q12, Q21, Q22 화소는 그에 대응하는 RGB 값으로 특징지어지며(characterized), 이는 각각 여기서 총괄하여 f(P1), f(Q11), f(Q12), f(Q21), f(Q22)로 표시된다. 화소 P1, Q11, Q12, Q21, Q22는 도 3의 단계(308)에서 모아지고, 단계(310)에서 더 분석되는 기여 화소들의 리스트를 형성한다. 분석은 f(Q11), f(Q12), f(Q21), f(Q22)가 다음의 조건을 만족하는지/아닌지를 판단하는 것으로 이루어진다.
f(Q11) = f(Q12) = f(Q21) = f(Q22) (1)
[74]조건 (1)이 적용되면, 보간은 다음과 같이 단순화된다.
f(P1) = f(Q11)
[75]이는 기여 화소 Q11, Q12, Q21, Q22 의 공통 색이 선택 과정에서 화소 P1으로 배정됨을 의미한다.
[76]이 서술(statement)을 증명해 보자.
실제로, 가장 일반적인 형태에 있어서, 비-선형 보간은 하기의 식에 따라 수행된다.
Figure 112011014582006-pct00010
(2)
[77]여기서 x,y는 P1의 좌표이고, xi,yi는 Qij(i=1,2;j=1,2)의 좌표이다.
[78]f(Q11) = f(Q12) = f(Q21) = f(Q22)이므로, 우리는 공통 곱셈 지수 f(Q11)를 괄호 밖으로 끄집어낼 수 있다.
Figure 112011014582006-pct00011
[79]대괄호 안의 부분들을 더하고 결과식을 단순화하면, 마침내
f(P1) = f(Q11) (3) 에 도달할 수 있다.
[80]기여 화소들의 리스트를 분석하는 단계들이 도 5의 다이어그램(50)에 도시된다. 시작에서(블록 500), 조건 (1)이 만족되었다고 가정되며, 이는 특별 "보간" 인디케이터(special "interpolate" indicator)를 "거짓"으로 셋팅한다(블록 502). 기여 화소들의 리스트 내의 엔트리들은 첫번째 비-투명(non-transparent) 엔트리를 찾기 위해 체크되며, 이는 다른 조건들에 대한 기준 엔트리(reference entry)로서 블록(504)에서 저장(save)된다. 기여 화소들의 리스트 내의 엔트리들은 또한 마지막 엔트리(last entry)를 찾기 위하여 블록(506)에서 체크된다. 만약, 마지막 엔트리가 찾아지면(블록 506에서 "되었음(done)"으로 판별), 기여 화소들의 리스트의 분석은 블록(516)에서 정지된다. 그렇지 않으면(블록 506에서 "함(do)"로 판별), 리스트의 처리는 블록(510)으로 진행된다. 만약, 기여 화소의 색이 투명하면(블록 510에서 "참"으로 판별), 투명 색은 별도로 다루어지므로, 블록(508)에서 그 기여 엔트리는 리스트로부터 제거된다. 그렇지 않으면(블록 510에서 "거짓"으로 판별), 블록(512)에서 현재의 엔트리는 블록(504)에서 저장된 기준 엔트리와 비교된다. 만약, 두 엔트리가 동일하면(블록 512에서 "참"으로 판별), 단계(516)에서 단계(512)가 반복된다. 그렇지 않으면(블록 512에서 "거짓"으로 판별), 블록(514)에서 "보간" 인디케이터는 "참"으로 셋팅되고, 조건 (1)이 분명히 만족되지 않기에, 남아있는 엔트리들에 대한 분석은 끝난다(블록 516).
[81]다시 도 3을 참조하여, 과정(30)과 블록(310)에 대해, 계속되는 기여 화소들의 색들의 분석에 대해, 연속적으로 알아보기로 한다.
[82]가장 양호한(favorable) 경우에 있어서, 기여 화소들의 리스트는 "보간" 인디케이터의 초기값(default value)를 변경하지 않고 고갈된고(exhausted), 이는 이미지 처리가 보간 블록을 스킵하고(블록 310에서 '거짓'으로 판별), 위의 식 (3)에 따라 화소 P1의 색을 셋팅하기 위해 바로 블록(320)으로 진행된다.
[83]그러나, 만약 "보간" 인디케이터의 초기값이 "참"으로 변경되면(블록 310에서 '참'으로 판별), 보간 단계(312)가 수행된다. 기여 화소들의 리스트는 f(Q11), f(Q12), f(Q21), f(Q22)가 다음의 조건들 중 하나를 만족하는지 아닌지를 알아내기 위하여 다시 분석된다(블록 312).
f(Q11) = f(Q12) 그리고 f(Q21) = f(Q22) (4)
f(Q11) = f(Q21) 그리고 f(Q12) = f(Q22) (5)
[84]조건 (4)가 적용되면, 보간 식 (2)는 다음과 같이 단순화된다.
Figure 112011014582006-pct00012
[85]이 서술을 증명해 보자.
실제로, f(Q12)를 f(Q11)로 대체하고 f(Q22)를 f(Q21)로 대체하여 (2)에 대입하면, 다음을 얻는다.
Figure 112011014582006-pct00013
[86]두번째와 세번째 항의 순서를 재배열하면 다음과 같이 된다.
Figure 112011014582006-pct00014
[87]괄호 안의 부분들을 더하고 단순화하면 결과적으로 다음을 얻는다.
Figure 112011014582006-pct00015
[88]"y"를 제거하면,
Figure 112011014582006-pct00016
그리고 양 부분을 단순화하면, 다음을 얻는다.
Figure 112011014582006-pct00017
(6)
[89]비슷하게, 만약 조건 (5)가 적용되면, 보간 식 (2)는 다음과 같이 단순화 된다.
Figure 112011014582006-pct00018
(7)
[90]모든 점에서의 증명은 전술된 진술의 증명과 유사하므로, 여기에서는 나타내지 않는다.
[91]식 (6)과 (7)에 기초한 보간은 일반식 (1)에 기초한 보간보다 훨씬 단순하며, 작은 메모리와 계산을 위한 작은 프로세서 사이클을 요구한다. 그러므로, 적용 가능한 경우에, 보간 프로세스를 속도를 상당히 높인다. 조건 (4)와 조건(5) 중 그 어느 것도 충족시키지 못하는 기여 화소들에 대해서, 보간은 식 (2)를 이용하여 수행된다. 그러나, GIF 이미지에 대해서, 보간 될 대부분의 화소는 조건 (1)을 충족할 것으로 기대된다. 그러므로, 약간의 보간만이 발생할 필요성이 있다.
[92]블록(312)에서 수행된 보간의 결과로, 화소 P1의 RGB 값은 원본 색 맵(102)을 이용하여 결정되고, 우리는 결과적인 색의 색 맵 인덱스를 결정하는 것에 이른다. 색 맵핑(colour mapping)은, 가장 가까운 짝(the closest match)을 찾는 것을 목표로 결과적인 색과 색 맵 내의 모든 색들 간의 기하학적인(euclidean) 거리를 계산하는 것을 수반하므로, 계산 집약적인 과정(computationally intensive procedure)으로 알려져 있다. 본 발명의 실시예에서, 색 맵핑이 실질적으로 수행되는 화소들의 개수는 최소화된다. 이는 결과적인 RGB 값들을 현재 프레임 또는 이전 프레임으로부터의 이전 화소들과 비교하는 것에 의해 달성된다(적절하다면). 만약 RGB 값들이 매치된다면(블록 314에서 "거짓"으로 판별), 이전 화소의 인덱스가 색 맵 검색(search)의 수행 없이 직접적으로 화소 P1에 적용된다(블록 320). 그렇지 않으면(블록 314에서 "참"으로 판별), 가장 가까운 짝을 찾기 위하여 블록(318)에서 색 맵 검색이 수행되고, 대응되는 인덱스를 화소 P1에 적용한다.
[93]화소의 색 맵 인덱스가 결정되자 마자, 이는 블록(320)에서 스케일된 이미지의 색 맵 내에 기록된다. 스케일된 화소 맵(블록 322)을 형성하기 위해 모든 화소가 처리될 때까지, 스케일된 이미지의 다음 화소에 대해서, 단계(304)에서 시작하여 모든 단계들은 반복된다. 과정(30)은 블록(324)에서 종료된다.
[94]본 발명의 스케일링 방법을 실현하는 시스템의 도시가 도 6을 참조하여 보여진다.
[95]도 6은 본 발명 실시예의 색 맵된 이미지를 스케일링하기 위한 시스템을 나타내는 다이어그램(60)을 보여준다. 이는 프로세서와 컴퓨터 판독가능 명령들이 저장되어 있는 (메모리와 같은)컴퓨터 판독가능 매체를 갖는 컴퓨터를 포함한다. 컴퓨터 판독가능 명령들은 프로세서에 의해 실행되어 상술한 방법의 단계들을 수행하고, 시스템의 601-612 모듈들을 형성한다. 모듈들은 특정 동작들을 수행하기 위한 다양한 수단들을 포함하는데, 시스템에 대해서는 아래에서 더욱 상세히 설명될 것이다.
[96]시스템(60)은 색 맵 분석 모듈(602, CMA: Colour Map Analyzer Module), 색 컬링 모듈(604, Colour Culling Module) 및 색 맵 향상 모듈(606, Colour Map Enhancement Module)을 포함하는 색 맵 변환 모듈(601, Colour Map Transformation Module)을 포함한다. 색 맵 향상 모듈(606)은 원본 색 맵으로부터 어느 2개 색의 조합들(combinations of any two colours from the original colour mao)을 생성하기 위한 수단을 포함하고; 각각의 조합에 대해, 상기 2개 색간의 보간을 수행하고, 상기 생성하기 위한 수단은 컴퓨터 판독가능 매체에 저장되는 (프로세서에 의해 실행되기 위한)컴퓨터 판독가능 프로그램 코드로 구현될 수 있다.
[97]색 맵 분석 모듈(602)은 상술한 바와 같이 원본 색 맵에서 사용되는 색들의 개수 N을 결정하고, 투명한 색을 제외한다. 색 맵 분석 모듈(602)은 화소 선택 모듈(608, Pixel Selection module), 색 맵 향상 모듈(606), 및 색 컬링 모듈(604)에 연결된다. 색 컬링 모듈(604)은 상술된 색들의 개수 Ms를 선택하기 위한 수단, 및 원본 색 맵에서의 색들의 사용 빈도를 나타내는 색 사용 벡터를 결정하고; 색 사용 벡터에 기초하여 옥트리 그래프를 생성하고; 서브-셋에 포함될 Ms개의 색들을 선택하기 위해 옥트리 그래프를 파싱(parsing)하는 수단을 포함한다. 두 수단은 컴퓨터 판독가능 매체에 저장되는 (프로세서에 의해 실행되기 위한)컴퓨터 판독가능 프로그램 코드로 구현될 수 있다.
[98]N의 값에 의존하여, 연결 607, 609 또는 611 중 오직 하나가 한번에 활성화된다(activated). 색 맵 분석 모듈(602)이 색들의 개수가 충분히 크다고 판단하면, 즉 N>Nmax, 원본 이미지 색 맵은 화소 선택 모듈(608)로 직접 입력된다. 그렇지 않으면, 즉 N<Nmax이면, 사용가능한 색들의 개수가 스케일된 이미지의 수용가능(acceptable) 품질을 유지하는데 충분하지 못하고, 원본 색 맵의 변환을 위해, 원본 이미지 색 맵이 색 맵 향상 모듈로 직접(N<Nmin이면) 또는 색 컬링 모듈을 통하여(N>Nmin이면) 색 맵 향상 모듈(606)로 입력된다. 색 컬링 모듈(604)의 목적은 스케일된 이미지의 품질에 작은 영향을 가지는 색들을 잘라내어 원본 색 맵 내에서 이용가능한 색들의 개수를 줄이는 것이다. 그러나 색 맵 향상 모듈(606)에 의해 수행될 변환을 상당히 느리게 할 수 있다. 색들을 줄이는 것은 도 2의 단계 212, 110, 216, 218 및 220에 따라 수행된다. 결과적으로, 색 컬링 모듈(604)은 색 맵 향상 모듈(606)에 변환을 수행하는데 있어서 가장 이로운 색들의 셋을 제공한다.
[99]변환은 도 2의 단계 222, 224 및 226에 따라 색들의 셋을 보간하는 것에 의해 수행된다. 결과적인 향상 색 맵은 스케일된 이미지를 위한 이상적인 색 맵에 합리적으로 좋게 근접한(reasonably good approximation) 것으로 여겨진다.
[100]화소 선택 모듈(608)은 상술한 방법에 따라 도 3의 단계(302)에 따라 스케일된 이미지에 포함될 원본 이미지의 화소들의 선택을 결정한다.
[101]색 보간 모듈(610)은, 상기 선택에서 각 화소에 기여하는 원본 이미지의 화소들을 수집하고 분석하는 것에 기초하고, 도 5를 참조하여 설명된 기여 화소들의 리스트를 분석하는 단계들에 따라, 상기 선택에서 화소들의 RGB 값이 결정되도록 한다.
[102]색 맵 인덱스 생성 모듈(612, Colour Map Index Generating Module)은, 색 보간 모듈(610)에 의해 생성된 RGB 값들과 스케일된 색 맵(106)에서 이용가능한 색들을 자신의 입력으로 받고, 그들을 비교하여 가장 가까운 짝을 고르고 그것의 인덱스를 대응되는 화소에 적용한다.
[103]그러므로, 색 맵된 이미지를 스케일링하는 개선된 방법 및 시스템이 제공된다.
[104]본 발명의 실시예는 Graphical Interchange Format(GIF)를 참조하여 설명되었지만, 본 발명의 원리는 다른 포맷들로 인코딩된 디지털 이미지들을 스케일링하는데도 역시 적용 가능하다. 예를 들어, PNG(Portable Network Graphics), BMP(Bitmap) 또는 색 맵을 사용하는 다른 포맷들에 적용 가능하다. 본 발명 실시예의 시스템은, CPU 및 실행되어 상술된 본 발명 실시예의 방법들을 수행하고 도 6에 도시된 시스템의 다양한 모듈들을 형성하는 컴퓨터 판독가능 명령을 저장하는 컴퓨터 판독가능 매체(예, 메모리, DVD, CD-ROM)를 포함하는, 범용 또는 전문적인(specialized) 컴퓨터를 포함한다. 대안적으로, 본 발명 실시예의 시스템은 펌웨어(firmware), 또는 펌웨어와 전문적인 컴퓨터의 조합으로 구현될 수 있다.
[105]상술한 색 맵된 이미지를 스케일링하는 방법은 정지 이미지들(still images)에도 적용될 수 있으며, 또는 대안적으로, 비디오 스트림 내의 이미지들을 스케일링하는 데에도 적용될 수 있다. 후자의 경우에, 이미지의 델타 지역(delta region)을 결정하는 것이 유리할 수 있는데, 이는 이미지를 포함하는 이전 비디오 프레임과 비교하여 변경되고, 상기 방법의 단계들을 오직 델타 지역에만 수행한다. 즉, 델타 지역을 원본 이미지로 사용한다.
[106]본 발명 방법들의 단계들을 수행하기 위한 명령들을 저장하는, 컴퓨터 판독가능 매체가 역시 제공된다. 컴퓨터 판독가능 매체는 메모리, DVD, CD-ROM, 플로피(floppy) 또는 다른 매체를 포함할 수 있다.
[107]본 발명은 바람직한 실시예에 따라 설명되었으나, 당업자에 의해 전술한 그리고 다양한 다른 변화가 가능함이 이해될 것이며, 본 발명의 범위를 벗어나지 않고 형식 및 세부적인 면에서 생략 또는 변경이 있을 수 있다.

Claims (17)

  1. 원본 색 맵과 원본 화소 맵을 가지는 원본 이미지를 스케일된 색 맵과 스케일된 화소 맵을 가지는 스케일된 이미지로 스케일링하는 방법에 있어서,
    (a) 스케일된 이미지와는 별도로, N개의 색을 가지는 상기 원본 색 맵을 상기 원본 색 맵과 상기 원본 이미지에 기초하여 스케일된 색 맵으로 변환하는 단계;
    (b) 상기 원본 이미지를 상기 스케일된 이미지로 스케일링하는 단계;
    (c) 상기 스케일된 이미지의 각 화소에 대하여, (i)상기 화소의 색을 정의하는 상기 원본 이미지의 기여 화소들의 셋을 결정하는 단계; (ii)상기 기여 화소들의 색들과 상기 화소의 상기 기여 화소들에 대한 기하학적 근접에 기초하여 상기 화소의 색을 결정하는 단계; (iii)상기 화소의 색과 상기 스케일된 색 맵 내의 색과의 대응성을 확립하고, 그것에 대응하는 색 맵 인덱스를 결정하는 단계; 및 (iv)상기 스케일된 화소 맵에 상기 결정된 색 맵 인덱스를 설정하는 단계를 포함하되,
    상기 (a) 단계는, 색 향상(enhancement)을 위해 상기 원본 색 맵에서 이용 가능한 색들의 서브-셋을 선택하는 단계를 포함하고,
    상기 색들의 서브-셋을 선택하는 단계는,
    N(N+1)≤2Nmax이면 Ms=N 이고;
    N(N+1)>2Nmax이면 Ms=M이라는 규칙에 따라,
    상기 색들의 서브-셋에서의 색들의 개수 Ms를 선택하는 단계 - M은 M(M-1)≥2(Nmax-N)을 만족하는 가장 작은 수이고 M<N이고, N은 상기 원본 색 맵의 색들의 개수이고, Nmax는 색들의 미리 설정된 최대 개수이고, Nmin은 색들의 미리 설정된 최소 개수임 - 를 포함하는
    이미지 스케일링 방법.
  2. 제 1항에 있어서,
    상기 (a) 단계는, N>Nmax 인 경우에, 상기 원본 색 맵을 상기 스케일된 색 맵으로 재-사용하는 단계를 포함하는
    이미지 스케일링 방법.
  3. 제 1항에 있어서,
    상기 (a) 단계는
    N<Nmin인 경우에, 상기 스케일된 색 맵을 생성하기 위해 상기 원본 색 맵에서 이용 가능한 색들의 개수를 증가시키는 단계를 더 포함하는
    이미지 스케일링 방법.
  4. 제 1항에 있어서,
    상기 (a) 단계는
    상기 선택된 색들의 서브-셋을 위해 색들의 개수를 증가시키는 단계; 및
    Nmin<N<Nmax인 경우에, 색들의 개수를 증가시키는 단계에서 얻어진 중복(duplicate) 색들을 제거하는 단계를 더 포함하는
    이미지 스케일링 방법.
  5. 제 3항에 있어서,
    상기 색들의 개수를 증가시키는 단계는
    상기 원본 색 맵으로부터 사전 결정된 2개 색들의 조합들을 생성하는 단계; 및
    각각의 조합에 대해 상기 2개 색들 간에 보간하는(interpolating) 단계를 더 포함하는
    이미지 스케일링 방법.
  6. 삭제
  7. 제 1항에 있어서,
    상기 색들의 서브-셋을 선택하는 단계는,
    상기 원본 색 맵 내의 색들의 사용 빈도를 나타내는 색 사용 벡터를 결정하는 단계;
    상기 색 사용 벡터에 기초하여 옥트리(octree) 그래프를 생성하는 단계; 및
    상기 서브-셋에 포함될 Ms개의 색들을 선택하기 위해 상기 옥트리 그래프를 파싱(parsing)하는 단계를 더 포함하는
    이미지 스케일링 방법.
  8. 제 1항에 있어서,
    상기 색들의 개수를 증가시키는 단계는,
    상기 색들의 서브-셋으로부터 사전 결정된 2개 색들의 조합들을 생성하는 단계; 및
    각각의 조합에 대해 상기 2개 색들 간에 보간하는 단계를 더 포함하는
    이미지 스케일링 방법.
  9. 제 1항 내지 제 5항과, 제 7항과 8항 중 어느 한 항에 있어서,
    상기 화소의 색을 결정하는 단계는,
    상기 기여 화소들의 색들이 동일한 경우에, 상기 화소의 색을 상기 기여 화소들의 색들과 동일하게 할당하는 단계; 또는
    상기 화소의 상기 색을 상기 기여 화소들 간의 보간 색들에 의해 할당하는 단계 중 어느 하나를 포함하고,
    상기 대응성을 확립하는 단계는, 상기 스케일된 색 맵에서 가장 가까운 짝(match)을 찾는 단계를 포함하는
    이미지 스케일링 방법.
  10. 제 1항 내지 제 5항과, 제 7항과 제 8항 중 어느 한 항에 있어서,
    상기 원본 및 스케일된 이미지는 GIF(Graphical Interchange Format), PNG(Portable Network Graphic), 및 BMP(Bitmap) 이미지들로부터 선택되는
    이미지 스케일링 방법.
  11. 원본 색 맵과 원본 화소 맵을 가지는 원본 이미지를 스케일된 색 맵과 스케일된 화소 맵을 가지는 스케일된 이미지로 스케일링하는 시스템에 있어서,
    상기 스케일된 이미지와는 별도로, 상기 원본 색 맵과 상기 원본 이미지에 기초하여 상기 원본 색 맵을 상기 스케일된 색 맵으로 변환하기 위한 색 맵 변환 모듈;
    상기 원본 이미지를 상기 스케일된 이미지로 스케일링하기 위한 화소 선택 모듈;
    상기 스케일된 이미지의 각 화소에 대하여, (i)상기 화소의 색을 정의하는 상기 원본 이미지의 기여 화소들의 셋; 및 (ii)상기 기여 화소들의 색들과 상기 화소의 상기 기여 화소들에 대한 기하학적 근접에 기초한 상기 화소의 상기 색을 결정하기 위한 색 보간 모듈; 및
    (iii)상기 화소의 상기 색과 상기 스케일된 색 맵 내의 색과의 대응성을 확립하고, 그것에 대응하는 색 맵 인덱스를 결정하고; (iv)상기 스케일된 화소 맵에 상기 결정된 색 맵 인덱스를 설정하기 위한 색 맵 인덱스 생성 모듈을 포함하되,
    상기 색 맵 변환 모듈은
    Nmin<N<Nmax 이면, 색 향상을 위해서 가장 이로운 상기 원본 색 맵에서 이용 가능한 색들의 서브-셋을 선택하기 위한 색 컬링(culling) 모듈 - N은 상기 원본 색 맵에서의 색들의 개수이고, Nmax는 색들의 미리 설정된 최대 개수이고, Nmin은 색들의 미리 설정된 최소 개수임 -을 포함하고,
    상기 색 컬링 모듈은
    N(N+1)≤2Nmax이면 Ms=N이고,
    N(N+1)>2Nmax이면 Ms=M라는 규칙에 따라,
    상기 색들의 서브-셋에서 색들의 개수 Ms를 선택하는 수단 - M은 M(M-1)≥2(Nmax-N)을 만족하는 가장 작은 수이고 M<N임 - 을 포함하는,
    스케일링 시스템.
  12. 제 11항에 있어서,
    상기 색 맵 변환 모듈은
    상기 원본 색 맵 내의 색들의 개수 N을 결정하고, 상기 색들의 개수 N을 Nmin 및 Nmax와 비교하기 위한 색 맵 분석 모듈을 포함하는
    스케일링 시스템.
  13. 삭제
  14. 제 11항 또는 제 12항에 있어서,
    상기 색 맵 변환 모듈은
    N<Nmax이면 상기 스케일된 색 맵을 생성하기 위해 상기 원본 색 맵 내에서 이용가능한 색들의 개수를 증가시키고, Nmin<N<Nmax이면 상기 선택된 색들의 서브-셋 내의 색들의 개수를 증가시키고, 중복 색들을 제거하기 위한 색 맵 개선 모듈을 포함하는
    스케일링 시스템.
  15. 제 14항에 있어서,
    상기 색 맵 개선 모듈은
    상기 원본 색 맵으로부터 사전 결정된 2개 색들의 조합들을 생성하고; 각 조합에 대해 2개의 색들 간에 보간하는 수단을 포함하는
    스케일링 시스템.
  16. 삭제
  17. 제 11항에 있어서,
    상기 색 컬링 모듈은
    상기 원본 색 맵에서의 색들의 사용 빈도를 나타내는 색 사용 벡터를 결정하고,
    상기 색 사용 벡터에 기초하여 옥트리(octree) 그래프를 생성하고,
    상기 서브-셋에 포함될 Ms개의 색들을 선택하기 위해 상기 옥트리 그래프를 파싱(parsing)하는 수단을 더 포함하는
    스케일링 시스템.
KR1020117004809A 2008-08-02 2008-10-16 색 맵된 이미지의 예측 스케일링을 위한 방법 및 시스템 KR101518357B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/185,081 2008-08-02
US12/185,081 US8107724B2 (en) 2008-08-02 2008-08-02 Method and system for predictive scaling of colour mapped images
PCT/CA2008/001836 WO2010015067A1 (en) 2008-08-02 2008-10-16 Method and system for predictive scaling of colour mapped images

Publications (2)

Publication Number Publication Date
KR20110055589A KR20110055589A (ko) 2011-05-25
KR101518357B1 true KR101518357B1 (ko) 2015-05-08

Family

ID=41608422

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117004809A KR101518357B1 (ko) 2008-08-02 2008-10-16 색 맵된 이미지의 예측 스케일링을 위한 방법 및 시스템

Country Status (8)

Country Link
US (3) US8107724B2 (ko)
EP (1) EP2304685A4 (ko)
JP (1) JP5474063B2 (ko)
KR (1) KR101518357B1 (ko)
CN (1) CN102105903B (ko)
CA (1) CA2725617C (ko)
IL (1) IL209724A (ko)
WO (1) WO2010015067A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8107724B2 (en) * 2008-08-02 2012-01-31 Vantrix Corporation Method and system for predictive scaling of colour mapped images
US20100253850A1 (en) * 2009-04-03 2010-10-07 Ej4, Llc Video presentation system
US8571311B2 (en) * 2011-12-15 2013-10-29 Microsoft Corporation Raster graphics image transcoding for file size reduction
DE112011106059T5 (de) 2011-12-28 2014-09-18 Intel Corporation Dimmen einer Anzeige in Reaktion auf Benutzer
CN112950747A (zh) * 2013-09-13 2021-06-11 斯特拉克斯私人有限公司 给图像分配颜色的方法和系统、计算机可读存储介质
CN105139341B (zh) * 2015-09-21 2018-05-29 合一网络技术(北京)有限公司 一种gif图像编辑方法及装置
CN110083735B (zh) * 2019-04-22 2021-11-02 广州方硅信息技术有限公司 图像筛选的方法、装置、电子设备及计算机可读存储介质
CN111626935B (zh) * 2020-05-18 2021-01-15 成都乐信圣文科技有限责任公司 像素图缩放方法、游戏内容生成方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006085301A2 (en) * 2005-02-09 2006-08-17 Mobixell Networks Image adaptation with target size, quality and resolution constraints

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4509043A (en) 1982-04-12 1985-04-02 Tektronix, Inc. Method and apparatus for displaying images
JPS60230693A (ja) 1984-04-27 1985-11-16 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション カラ−画像表示システム
US4907075A (en) 1987-07-28 1990-03-06 International Business Machines Corporation Method for selecting colors
US5181014A (en) 1987-10-26 1993-01-19 Tektronix, Inc. Method and apparatus for representing three-dimensional color data in a one-dimensional reference system
US4988984A (en) * 1988-10-31 1991-01-29 International Business Machines Corporation Image interpolator for an image display system
US5119186A (en) 1989-09-28 1992-06-02 International Business Machines Corporation Color mapping system and method
US5335295A (en) * 1991-05-08 1994-08-02 International Business Machines Corporation System and method for scaling a digital image
JPH05108774A (ja) * 1991-10-14 1993-04-30 Matsushita Electric Ind Co Ltd 画像アクセス方式
JP2582999B2 (ja) * 1992-07-22 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション カラーパレット発生方法、装置及びデータ処理システム並びにルックアップテーブル入力発生方法
US5418895A (en) 1992-11-25 1995-05-23 Eastman Kodak Company Method for displaying a high quality digital color image on a limited color display
JPH07110859A (ja) * 1993-10-14 1995-04-25 Matsushita Electric Ind Co Ltd 画像処理方法およびその装置
US5696539A (en) 1993-12-08 1997-12-09 Hewlett-Packard Company Method for matching colors of data displayed on connected computer systems
DE4421657A1 (de) * 1994-02-18 1996-02-01 Team Dr Knabe Ges Fuer Informa Verfahren zum Erzeugen einer Videoszene
US5790714A (en) * 1994-11-01 1998-08-04 International Business Machines Corporation System and method for scaling video
JP3137859B2 (ja) * 1994-12-26 2001-02-26 株式会社ピーエフユー インデックスイメージ表示方法
US5793883A (en) * 1995-09-29 1998-08-11 Siemens Medical Systems, Inc. Method for enhancing ultrasound image
US6259456B1 (en) * 1997-04-30 2001-07-10 Canon Kabushiki Kaisha Data normalization techniques
JPH11161782A (ja) * 1997-11-27 1999-06-18 Seiko Epson Corp カラー画像の符号化方法およびその符号化装置ならびにカラー画像の復号化方法およびその復号化装置
US6411730B1 (en) * 1999-01-15 2002-06-25 Adobe Systems Incorporated Histogram for generating a palette of colors
US6366292B1 (en) * 1999-06-22 2002-04-02 Oak Technology, Inc. Scaling method and apparatus for a flat panel display
KR20020064888A (ko) * 1999-10-22 2002-08-10 액티브스카이 인코포레이티드 객체 지향형 비디오 시스템
JP2001223734A (ja) * 2000-02-07 2001-08-17 Net Age Kk 電子メール送信遅延システム
US6819793B1 (en) * 2000-06-30 2004-11-16 Intel Corporation Color distribution for texture and image compression
US6727908B1 (en) * 2000-08-31 2004-04-27 Micron Technology, Inc. Non-linear interpolation scaling system for a graphics processing system and method for use thereof
JP2005501310A (ja) * 2001-05-02 2005-01-13 ビットストリーム インコーポレーティッド スケーリング方法及び/又は特定方向で情報媒体を表示する方法及びシステム
US6937759B2 (en) 2002-02-28 2005-08-30 Nokia Corporation Method and device for reducing image by palette modification
GB0229245D0 (en) * 2002-12-13 2003-01-22 Koninkl Philips Electronics Nv Television display unit
US7177474B2 (en) * 2003-11-10 2007-02-13 Mobixell Networks Inc. Video to animation conversion with file size constraint
US7948501B2 (en) * 2004-03-09 2011-05-24 Olympus Corporation Display control apparatus and method under plural different color spaces
EP1741282A1 (en) * 2004-04-30 2007-01-10 Nvidia Corporation Method and apparatus for vertically scaling pixel data
US8107724B2 (en) * 2008-08-02 2012-01-31 Vantrix Corporation Method and system for predictive scaling of colour mapped images

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006085301A2 (en) * 2005-02-09 2006-08-17 Mobixell Networks Image adaptation with target size, quality and resolution constraints

Also Published As

Publication number Publication date
EP2304685A1 (en) 2011-04-06
US8107724B2 (en) 2012-01-31
KR20110055589A (ko) 2011-05-25
JP5474063B2 (ja) 2014-04-16
JP2011530200A (ja) 2011-12-15
CA2725617C (en) 2014-09-30
CA2725617A1 (en) 2010-02-11
CN102105903A (zh) 2011-06-22
CN102105903B (zh) 2013-12-04
US20100027877A1 (en) 2010-02-04
WO2010015067A8 (en) 2010-12-23
US20130243317A1 (en) 2013-09-19
US8478038B2 (en) 2013-07-02
IL209724A (en) 2017-01-31
EP2304685A4 (en) 2017-01-25
WO2010015067A1 (en) 2010-02-11
US8660384B2 (en) 2014-02-25
US20120128245A1 (en) 2012-05-24
IL209724A0 (en) 2011-02-28

Similar Documents

Publication Publication Date Title
KR101518357B1 (ko) 색 맵된 이미지의 예측 스케일링을 위한 방법 및 시스템
JP4351394B2 (ja) 拡大あるいは縮小画像解像度変換の非線形および線形方法
US5847714A (en) Interpolation method and apparatus for fast image magnification
JPS60230693A (ja) カラ−画像表示システム
CN111770320B (zh) 一种色彩校正方法和装置、色彩校正设备和存储介质
EP4149114A1 (en) Point cloud encoding/decoding method, encoder, decoder, and storage medium
JP2006222965A (ja) 画像処理方法及び画像処理装置
JP2004054880A (ja) 色域圧縮の実施方法
JP2002304621A (ja) 大きいカラー・ルックアップテーブルの高速補間
US6373580B1 (en) Method and apparatus for multi-dimensional interpolation
JP2604971B2 (ja) 画像生成方法およびシステム
US7257276B2 (en) Digital image interpolation method
JP2009004952A (ja) 画像処理装置及びプログラム
JP2004186985A (ja) 画像処理方法および画像処理装置ならびに画像処理プログラム
JP2000270208A (ja) 画像処理装置及び画像処理方法
JPH0324673A (ja) 画像データ処理方法
US7468733B2 (en) Method and system for improving color reduction
US11711491B2 (en) Video image de-interlacing method and video image de-interlacing device
JP5085589B2 (ja) 画像処理装置および方法
US7599564B2 (en) Jpeg-compressed file creating method
CN113409436A (zh) 一种菱形像素排列的体绘制方法
Belyaev et al. Fast adaptive undersampling for volume rendering
JPH09107485A (ja) 色変換方法および色変換装置
CN116361495A (zh) 序列帧的存储方法、装置和电子设备
JPH09282449A (ja) 画像処理装置

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: 20180424

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190425

Year of fee payment: 5