KR100957942B1 - 컬러 매니지먼트를 제공하는 시스템 및 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 장치 - Google Patents

컬러 매니지먼트를 제공하는 시스템 및 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 장치 Download PDF

Info

Publication number
KR100957942B1
KR100957942B1 KR1020030022695A KR20030022695A KR100957942B1 KR 100957942 B1 KR100957942 B1 KR 100957942B1 KR 1020030022695 A KR1020030022695 A KR 1020030022695A KR 20030022695 A KR20030022695 A KR 20030022695A KR 100957942 B1 KR100957942 B1 KR 100957942B1
Authority
KR
South Korea
Prior art keywords
color
application programming
programming interface
data
interface function
Prior art date
Application number
KR1020030022695A
Other languages
English (en)
Other versions
KR20040000317A (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 KR20040000317A publication Critical patent/KR20040000317A/ko
Application granted granted Critical
Publication of KR100957942B1 publication Critical patent/KR100957942B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • G09G2320/0693Calibration of display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/06Colour space transformation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/12Use of DVI or HDMI protocol in interfaces along the display data pipeline

Abstract

서로 다른 컬러 표시 특성을 갖는 여러 가지 컴퓨팅 장치와 관련된 컬러 매니지먼트를 위한 시스템 및 방법이 제공된다. X11 그래픽 플랫폼은 장치 의존형 컬러로 시작하고 끝나는 ICC, sRGB 및 scRGB와 같은 컬러 매니지먼트 시스템을 지원하도록 강화된다. X11r6 내에 확대 RGB 컬러 스페이스뿐만 아니라 CMYK 컬러 스페이스가 또한 지원되므로, X11r6 그래픽 플랫폼을 확대하여 임의의 현대의 컬러 매니지먼트 표준을 지원할 수 있게 된다.
컬러 매니지먼트, 컬러 스페이스, 소스 장치, 수신 장치(destination device), sRGB, scRGB, 장치 링크 프로파일

Description

컬러 매니지먼트를 제공하는 시스템 및 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 장치{SYSTEMS AND METHODS FOR PROVIDING COLOR MANAGEMENT}
도 1a 및 1b는 X 컨소시움(Consortium)에 의한 X 프로토콜의 몇 가지 기본적인 양상을 도시한 도면.
도 2a는 본 발명이 실현될 수 있는 여러 가지 컴퓨팅 장치를 갖는 예시적인 네트워크 환경을 나타내는 블록도.
도 2b는 본 발명이 실현될 수 있는 예시적인 무제한 컴퓨팅 장치를 나타내는 블록도.
도 3a는 X11R5 컬러 매니지먼트 아키텍쳐의 예시적인 동작을 도시한 도면.
도 3b는 X11R6 컬러 매니지먼트 아키텍쳐의 예시적인 동작을 도시한 도면.
도 4a는 X11R6 컬러 매니지먼트 아키텍쳐의 또 다른 예시적인 양상을 도시한 도면.
도 4b는 컬러 매니지먼트 모듈(CMM) 컬러 매니지먼트 아키텍쳐의 예시적인 동작을 도시한 도면.
도 4c는 본 발명에 의해 제공된 컬러 매니지먼트 아키텍쳐를 도시한 도면.
도 5a 내지 5c는 여러 가지 컬러 스페이스와 관련된 본 발명의 예시적인 사용을 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
14 : 통신 네트워크/버스
10a, 10b : 서버 오브젝트
20 : 데이터베이스
110a, 110b, 110e : 컴퓨팅 장치
110c, 110d :오브젝트
120 : 프로세싱 유닛
130 : 시스템 메모리
140 : 착탈불가능 불휘발성 메모리 인터페이스
150 : 착탈가능 불휘발성 메모리 인터페이스
160 : 사용자 입력 인터페이스
170 : 네트워크 인터페이스
180 : 원격 컴퓨터
본 특허 문헌의 개시의 일부분은 저작권이 보호되는 특정 자료를 포함할 수 있다. 저작권 소유자는 특허청 파일 또는 기록에 나와 있는 그대로, 특허 문헌 또는 특허 개시 중 누구든지 복제 재현하는 것에 대해 이의가 없지만, 그렇지 않은 경우에는, 모든 저작권 권리를 보유한다. 다음의 고시는 본 문헌에 적용되겠다: Copyright ⓒ 2001, Microsoft Corp.
본 발명은 컬러 매니지먼트를 제공하는 시스템 및 방법에 관한 것이다. 더욱 구체적으로, 본 발명은 서로 다른 컬러 표시 특성을 갖는 여러 가지 장치와 관련하여 컬러 매니지먼트를 제공하는 시스템 및 방법에 관한 것이다.
컬러 스페이스는 3개 이상의 좌표에 의해 수치로 컬러를 나타내는 모델로서, 예를 들어 RGB 컬러 스페이스는 적, 녹, 청의 좌표로 컬러를 나타낸다.
컬러가 서로 다른 장치 및 재질 전반에 걸쳐 예상가능한 방식으로 재생되도록 하기 위해서, 컬러는 컬러를 생성하기 위해 사용된 메카니즘 및 재질의 특정 동작에 무관한 방식으로 나타내져야 한다. 예를 들면, 컬러 CRT와 컬러 프린터는 서로 아주 다른 메카니즘을 사용하여 컬러를 생성한다. 이러한 문제에 역점을 두어 다루기 위해, 현재의 방법들은 컬러가 추후에 각 장치에 대해 장치 의존형 컬러 좌표로 변환되는 장치 독립형 컬러 좌표를 사용하여 표시될 것을 요구한다. 현재, 장치 자체는 장치 의존형 시스템으로 변환하기 위한 메카니즘을 제공한다.
이와 관련하여, 컬러 매니지먼트는 오브젝트의 컬러, 예를 들어 이미지, 그래픽 또는 텍스트의 컬러를 이들의 현재 컬러 스페이스에서 모니터, 프린터 등과 같은 출력 장치의 컬러 스페이스로 변환하는 기술 또는 시스템을 나타내는 용어이다.
초기에, 운영 체제는 특정 컬러 스페이스, 예를 들어 RGB에 대한 지원을 표명함으로써 컬러를 지원했으나, RGB가 장치들 간에 서로 다르기 때문에, 컬러는 상이한 장치들 전반에 걸쳐 신뢰성있게 재생되지는 않았다.
이러한 전통적인 컬러 지원 수단이 부적절했기 때문에, 여러 가지 운영 체제는 장치 의존형 컬러의 특성을 장치 독립형 방식으로 나타내기 위해 ICC(International Color Consortium) 프로파일을 사용하기 위한 지원을 추가했다. ICC 장치 특성 프로파일 스펙은 공용되고 있으며, 예를 들어 ICC 웹사이트, 즉 www.color.org에서 얻어도 된다. ICC는 이미지를 생성한 입력 장치의 프로파일과 이 이미지를 표시한 출력 장치의 프로파일을 사용하여, 이미지를 입력 장치의 컬러 스페이스에서 출력 장치의 컬러 스페이스로 옮기는 변환을 만들어낸다. 이것은 매우 정확한 컬러를 만들어내는 반면에, 또한 이미지와 함께 입력 장치의 프로파일을 전송하고 변환을 통해 이미지를 처리하는 오버헤드를 수반하게 된다.
그래서, 중간의 장치 독립형 표준화 컬러 스페이스를 제공하려고 하는 과정에서 또 다른 기술이 개발되었다. 몇 가지 이들 컬러 매니지먼트 기술은 오늘날 MICROSOFT
Figure 112003012731753-pat00001
WINDOWS
Figure 112003012731753-pat00002
운영 체제 및 MICROSOFT
Figure 112003012731753-pat00003
OFFICE
Figure 112003012731753-pat00004
플랫폼과 같은 운영 체제 및 어플리케이션에 이미 존재한다. ICC 컬러 스페이스 이외의 컬러 스페이스는 표준 컬러 스페이스, 또는 줄여서 sRGB(국제 엔지니어링 컨소시움(IEC) Spec. No. 61966-2-1)를 포함하고, 이 sRGB는 WINDOWS98
Figure 112003012731753-pat00005
및 OFFICE2000
Figure 112003012731753-pat00006
부터 시작하여 핵심 기술로서 지원해 온 것이다. 컬러 매니지먼트 기술은 표준 확대 컬러 스페이스, 또는 줄여서 scRGB(IEC Spec. No. 61966-2-2)의 창출을 통해 계속 발전되어 왔다.
ICC, sRGB 및 scRGB의 통합으로, 컬러를 지원하는 여러 가지 유형의 입력 및 출력 컴퓨팅 장치에 관해서 해상도를 요구한다는 다수의 문제가 있다. 현재, sRGB는 IEC 61966-2-1 표준에 기초한, 윈도우 내의 디폴트 컬러 스페이스이다. sRGB-컴플라이언트(compliant) 장치는 컬러 매니지먼트가 잘 작동하도록 하기 위한 프로파일 또는 다른 지원을 제공하지 않아도 된다.
이와 관련하여, sRGB, scRGB 및 ICC 컬러 스페이스의 구조는 고정되고 명확한 의미를 지니며, 본 발명에 대한 배경이다. 이들 컬러 스페이스에 대한 참조는 본 분야에 숙련된 기술자 누구나 충분히 식별할 수 있게 한다는 의미를 갖지만, 그럼에도 불구하고 일반적인 설명은 뒤에 계속되고, 각각의 컬러 스페이스에 대한 소정의 공용 표준 스펙에 의해 보충될 수도 있다.
표준 RGB 컬러 스페이스인 sRGB는 RGB 지각 공간의 색조 응답과 CIEXYZ와 같은 물리적 휘도 공간 간의 비선형 관계를 설명하는 1-D 룩업 테이블(LUT)과, 적, 녹, 청의 원색들의 CIEXYZ 값과의 관계에 따라 적, 녹, 청의 원색들을 묘사하는 3x3 매트릭스와, 6500 Kelvin의 색온도와 같이 주광에 관련있는 CIEXYZ 표준으로 D65와 같은 지각적인 용어의 화이트 포인트 값과, 타겟 장치 컬러의 최종 사용자의 지각에 영향을 끼치는 주위, 배경, 밝기와 같은 선택적 뷰잉(viewing) 조건을 포함한다.
표준 확대 컬러 스페이스인 scRGB는 sRGB와 동일하지만, 그 값은 컬러의 가시 범위 밖으로 확대될 수 있다.
ICC 프로파일은 전형적으로 인간이 시각적으로 인식한 컬러에 상당하는 장치 의존형 컬러에 관한 정보를 포함하는 메타데이터 구조이다. 어떤 경우의 ICC 프로파일은 또한 장치 의존형이든 또는 장치 독립형이든 간에 소정의 2개의 컬러 스페이스 간의 변환 정보를 제공할 수 있다.
X 프로토콜은 원래 UNIX 운영 체제에 네트워크 투과성(transparent) 그래피컬 유저 인터페이스(GUI)를 제공할 필요성에 부응하여 1980년대 중반에 개발되었다. X는 MICROSOFT
Figure 112008025662058-pat00007
WINDOWS
Figure 112008025662058-pat00008
및 IBM
Figure 112008025662058-pat00009
의 Presentation Manager와 거의 비슷한 방식으로 그래피컬 정보의 디스플레이 및 관리를 제공한다.
다른 플랫폼의 컬러 매니지먼트 기술과 X 아키텍쳐의 핵심적인 차이는 X 프로토콜의 구조에 있다. WINDOWS
Figure 112003012731753-pat00010
및 IBM의 Presentation Manager와 같은 다른 플랫폼은 그래피컬 어플리케이션 로컬을 PC에 단순히 표시하는 반면에, X 프로토콜은 어플리케이션 레벨에서 클라이언트-서버 관계를 지정함으로써 어플리케이션의 프로세싱을 분산시킨다. 어플리케이션의 "what to do" 부분은 X 클라이언트로 불리고, X 서버라고 하는 "how to do" 부분인 디스플레이로부터 분리된다. X 클라이언트는 전형적으로 하나의 원격 기계에서 실행되는데, 이 원격 기계는 초과된 컴퓨팅 능력을 갖고 X 서버 상에 디스플레이한다. 그 이점은 순수 클라이언트-서버 및 분산된 프로세싱에 있다.
도 1a에 도시된 바와 같이, X 프로토콜은 어플리케이션(210a, 210b)과 이것의 디스플레이(240)간의 클라이언트-서버 관계를 정의한다. 이것에 맞추어, X 클라이언트라 불리는 어플리케이션(210a, 210b)은 X 서버(240)로 공지되어 있는 디스플레이로부터 분리된다. X 클라이언트(201a, 210b)는 X 라이브러리(220), 및 선택적으로 툴킷(toolkit)(230)을 포함한다. X 서버(240)는 장치(260)를 구동시키는 장치 구동기(250)를 포함한다. 도 1b에 도시된 바와 같이, X는 장치 의존 층(200b) 및 장치 독립 층(200a)을 지정하고 X 클라이언트(210)와 X 서버(240) 간의 통신을 위한 비동기식 네트워크 프로토콜에 기초하여 프로토콜을 형성함으로써 일반적인 윈도윙(windowing) 시스템을 더 제공한다. 실제로, X 프로토콜은 운영 체제 및 기본적인 하드웨어의 특수성을 숨긴다. 구조적 및 기술적 차이를 이렇게 가리는 것은 X 클라이언트 개발을 단순화시키고, X 윈도우 시스템의 높은 호환성에 새로운 발판을 제공한다.
X 방법의 장점은: (1) 로컬 및 네트워크 기반의 컴퓨팅이 사용자 및 개발자에게 동일하게 보이고 느껴지며, (2) X 서버는 여러 가지 언어 및 운영 체제에 지원을 고려해두어서 매우 호환적이고, (3) X 클라이언트는 또한 높은 호환도를 가지며, (4) X는 소정의 바이트 스트림 지향의 네트워크 프로토콜, 로컬 또는 리모트를 지원할 수 있고, (5) 어플리케이션이 성능상의 불이익을 당하지 않는다는 것이다.
그러므로, X 프로토콜의 설계는 어플리케이션과 그 디스플레이 사이의 클라이언트-서버 관계를 지정한다. X에서, 단일 스크린, 키보드 및 마우스를 관리하는 소프트웨어는 X 서버로 공지되어 있다. X 클라이언트는 X 서버 상에 표시하는 어플리케이션으로서, 때때로 "어플리케이션(the application)"으로 칭해지기도 한다. X 클라이언트는 X 서버에게 요청, 예를 들어 드로잉 또는 정보 요청을 보낸다. X 서버는 다수의 클라이언트로부터 요청을 받아들이고, 정보 요청, 사용자 입력 및 에러에 응답하여 X 클라이언트에게 회답을 보낸다.
X 서버는 로컬 기계에서 실행되고, 네트워크 기반 또는 로컬 IPC (interprocess communication) 기반의 X 클라이언트 요청을 받아들여 디멀티플렉스해서, 그것들에 따라 동작한다. X 서버는: (1) 드로잉(drawing) 요청을 스크린 상에 표시하고, (2) 정보 요청에 회답하며, (3) 요청시 에러(들)를 보고하고, (4) 키보드, 마우스 및 표시 장치를 관리하며, (5) 네트워크 상으로의, 또는 로컬 IPC를 통한, 키보드 및 마우스 입력을 각각의 X 클라이언트로 멀티플렉스하고, (6) 윈도우를 생성, 맵핑, 파기하며, (7) 윈도우에 기입 및 드로잉한다.
X 클라이언트는 기본적으로, X 프로토콜의 장점을 갖는 라이브러리, 예를 들어 Xlib 및 Xt의 도움으로 기입된 어플리케이션이다. X 클라이언트는: (1) 서버에게 요청을 보내고, (2) 서버로부터 이벤트들을 수신하며, (3) 서버로부터 에러들을 수신한다.
요청과 관련하여, X 클라이언트는 특정 동작이 발생하도록, 예를 들어 윈도우를 생성하도록 X 서버에게 요청을 한다. 성능 향상을 위해, X 클라이언트는 통상적으로 응답을 기대하거나 기다리지 않는다. 그 대신에, 요청은 전형적으로, 전달을 위해 신뢰성있는 네트워크 층에 남겨진다. X 요청은 4바이트의 임의의 배수이다.
회답과 관련하여, X 서버는 회답을 요구하는 특정 X 클라이언트 요청에 응답한다. 모든 요청이 회답을 요구하지는 않는다는 것을 알기 바란다. X 회답은 최소한 32 바이트를 갖는 4바이트의 임의의 배수이다.
이벤트와 관련하여, X 서버는 키보드 또는 마우스 입력을 포함하여 어플리케이션이 예정하고 있는 이벤트를 X 클라이언트에게 보낸다. 네트워크 트래픽을 최소화하기 위해, 예정된 이벤트만이 X 클라이언트에게 보내진다. X 이벤트는 32 바이트이다.
에러와 관련하여, X 서버는 X 클라이언트에게 요청시 에러를 보고한다. 에러는 이벤트와 같지만, 다르게 조작된다. X 에러는 이들의 조작을 간단하게 하기 위해 이벤트와 동일한 크기이다. 이들은 X 클라이언트의 에러 조작 루틴에 32 바 이트로 보내진다.
X 서버의 설계는 이것이 실현되는 플랫폼 하드웨어 및 운영 체제에 상당히 의존한다. 기초적인 기술의 능력이 증가됨에 따라, X 서버의 파워 및 능력도 증가되었다.
언급한 바와 같이, 도 1a에는 X 프로토콜의 장치 의존 층(200b) 및 장치 독립 층(200a)이 도시되어 있다. 장치 의존 층(200b)은 X 서버를 WINDOWS 또는 Solaris인 본래의 환경으로 로컬화하고, 기계로부터의 데이터 바이트를 바이트 오더링을 변화시켜 교환할 책임이 있으며, 바이트 오더링은 각각의 X 요청시 주지된다. 층(200b)은 하드웨어 및 운영 체제의 구조적 차이를 숨기고, 또한 키보드, 마우스 및 비디오에 대한 장치 구동기 의존성을 유지한다.
단일 스레디드 아키텍쳐의 경우, X 서버는 X 클라이언트들 간의 디멀티플렉싱 요청, 멀티플렉싱 회답, 이벤트 및 에러를 스케쥴링하기 위해 본래의 타임-슬라이스 아키텍쳐를 사용하는 단일 순차 프로세스이다.
멀티스레디드 아키텍쳐의 경우, X 서버는 운영 체제 및 하드웨어가 수행하도록 작업을 다수의 스레드로 나눔으로써 운영 체제의 성질을 활용할 수 있는 멀티스레디드 프로세스이다. 순수한 선점 멀티태스킹, 멀티스레디드 환경은 높은 정도의 파워를 X 서버에게 제공한다.
현재의 X 서버는 워크스테이션, X 단말기 및 PC X 서버를 포함한다. 워크스테이션은 복잡한 컴퓨팅 요구사항을 충분히 처리할 수 있을 만큼 강력하고, 보통 로컬 X 클라이언트 및 작은 퍼센트의 네트워크(원격) X 클라이언트를 표시한다. X 단말기는 그래픽 성능을 갖는 덤(dumb) 단말기이다. X 서버 소프트웨어는 호스트로부터 다운로드된다. X 단말기는 워크스테이션보다 저렴하고 보다 더 단순하게 유지된다. PC X 서버는 하나의 공통 데스크탑 내로 억세스하는 PC와 원격 어플리케이션 서버를 통합하고, 기존의 PC 투자 및 사용자 스킬 세트(데스크탑 조작 및 억세스)의 효과를 높이며, 사용자편에서 로컬 또는 원격 윈도우 매니지먼트를 제공하고, 사용하기가 쉽다.
X 컨소시움은 X11 그래픽 아키텍쳐를 설정했다. 지난 수년동안, 데스크탑은 생산성 또는 사용자 중심의 환경으로부터, 웹 프로토콜의 적응 및 브라우저 기반의 사용자 인터페이스에 의해 둘러싸인 중앙집중화 관리에 초점이 맞춰진 것으로 개발되어 왔다. X 컨소시으로부터 최근에 배포된 X 윈도우 시스템움-줄여서 X11R6.5.1, 또는 X11 또는 X11R6-은 재코딩(re-coding) 및 보안이 없이 급속한 전개를 가능하게 하는 X 어플리케이션과 브라우저의 통합 문제에 역점을 두어 다루었다.
가장 최근에 배포된 X11 그래픽 아키텍쳐는 최소한 X 컨소시움으로부터 월드 와이드 웹, www.x.org 상에서 공용된다. 간단하게 말하자면, X11R6 컬러 매니지먼트 시스템은 화이트 포인트 적응, 전역(gamut) 맵핑, 매트릭스 변환 및 1차원(1-D) 룩업 테이블(LUT)을 포함하는 오퍼레이션을 통해 (1) 플러그 접속 가능한 컬러 매니지먼트 기능을 지원하고, (2) 장치 독립형 어플리케이션 컨텐트를 장치 의존형 컬러 값으로 변환하는 것을 지원하는, 그래픽 프로토콜이다.
X 컨소시움이 X11을 설정했을 때, X11은 3x3 매트릭스 및 3개의 1-D LUT를 사용하여 표시 장치 RGB 컬러를 지정하도록 표준 RGB 컬러들 사이를 변환하기 위해 매우 단순한 컬러 매니지먼트 메카니즘을 지원했다. X11R6의 출현으로, X 컬러 매니지먼트 시스템(Xcms) 아키텍쳐는 과다한 장치 독립형 컬러 스페이스들 간의 변환 방법을 표시 장치 의존형 컬러에 제공하도록, 이전의 단순한 해결책을 확장한 Tektronix에 의한 작업에 기초하여 병합되었다. 이 해결책은 화이트 포인트 색채 적응 지원 및 전역 압축 지원의 추가에 초점을 맞추었다. X11r6 컬러 매니지먼트는 이렇게 3개의 채널 장치 독립형 컬러로 시작하여 표시 장치 의존형 컬러로 변환하는 워크플로우(workflow)를 가정한다.
X11r6 아키텍쳐는 이런 식으로 2개의 컬러 매니지먼트 해결책을 갖는다. 첫 번째 해결책은 CRT와 같은 간단한 표시 장치의 특성을 나타내기 위해 통상 사용된 단순한 3x3 매트릭스 및 3개의 1D LUT이다. 두 번째는 주로 화이트 포인트 변환 및 전역 압축으로 이루어진 Xcms이다. Xcms의 도입 이래, 컬러 매니지먼트는 진보해 왔으며, 이들 2개의 기술로 제한하여 발견된 해결책은 대부분 X11이 수신 장치만을 지원하고 소스가 장치 독립형인 것으로 가정하는 소스 및 수신 장치를 가정하기 때문에 부적절하다.
또한, ICC와 같은 메타데이터 장치 특성화 프로파일에 기초한 현대의 컬러 매니지먼트 해결책은 워크플로우가 3개 또는 4개 이상의 채널의 장치 의존형 컬러로 시작하고 끝나는 것으로 가정한다. 현재, X11은 3개의 장치 독립형 컬러로 시작하고 RGB 표시 장치 의존형 컬러로 끝나는 컬러 매니지먼트 워크플로우를 가능하게 할 뿐이다. sRGB 및 scRGB와 같은 표준 컬러 스페이스에 기초한 현대의 컬러 매니지먼트 해결책은 워크플로우가 소스 및 수신 장치 외부에서 완전히 장치 독립형인 것으로 보이도록, 메타데이터가 장치 자체에 포함되는 점을 제외하고는 현대의 메타데이터 해결책과 유사하다. 기본적으로 장치 컬러와 표준 컬러 스페이스 간의 메타데이터 변환은 소스 및 수신 하드웨어 자체 안에서만 존재한다. 이것은 훨씬 단순한 사용자 경험 및 오픈 네트워크 내의 컬러 컨텐트의 교환을 고려한 것이고, 또한 다수의 어플리케이션 또는 사용자로 이루어진 복잡한 워크플로우를 허용한다.
오늘날 존재하는 다른 종래의 해결책은 현재 X11R6과 통합되지 않으므로, 하나의 어플리케이션에 제한된다. 따라서, 잘라 붙이기, 인터어플리케이션 및 복잡한 워크플로우는 현재의 해결책으로 매우 제한된다. 게다가, 현재의 해결책은 CMYK(Cyan, Magenta, Yellow and blacK) 및 그 밖의 다른 컬러 스페이스의 지원과 관련하여 매우 제한된다. 그러므로, 표준 X11r6 그래픽 플랫폼이 각각 ICC, sRGB 및 scRGB 컬러 매니지먼트 시스템을 중심으로 만들어진 사실상의 산업용 메타데이터 컬러 매니지먼트 표준을 지원할 수 있게 하는 메카니즘이 필요하다. 또한, 장치 의존형 컬러로 시작하고 끝나는 ICC, sRGB, scRGB와 같은 현대의 컬러 매니지먼트 표준으로 지원할 수 있게 하는 메카니즘이 필요하다.
상기 설명에 비추어, 본 발명은 서로 다른 컬러 표시 특성을 갖는 여러 가지 컴퓨팅 장치와 관련하여 컬러 매니지먼트를 제공하는 시스템 및 방법을 제공한다. 더욱 구체적으로, 본 발명은 X11 그래픽 플랫폼으로 하여금 장치 의존형 컬러로 시작하고 끝나는 ICC, sRGB, scRGB와 같은 컬러 매니지먼트 시스템을 지원할 수 있게 하는 수단을 제공한다. 본 발명은 또한 X11r6 내의 확대된 RGB 컬러 스페이스뿐만 아니라 CMYK 컬러 스페이스를 지원하는 수단을 제공하므로, X11r6 그래픽 플랫폼을 확대하여 소정의 현대 컬러 매니지먼트 표준을 지원할 수 있게 된다.
본 발명의 여러 가지 실시예에 있어서, 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 장치는 컬러 매니지먼트 시스템과 관련하여 제공된다. 실시예들은 수신 장치(들)로의 변환을 위해 소스 장치(들)로부터 장치 독립형 컬러 데이터를 수신하는 단계, 소스 장치(들)과 수신 장치(들) 간의 컬러 특성 차(들)를 나타내는 장치 링크 프로파일을 생성하는 단계, 컬러 매니지먼트 시스템의 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 위장(spoofing)하는 단계 및 수신 장치(들)에 대한 수신 장치 의존형 컬러 값을 생성하는 함수를 불러내는 단계를 포함한다.
이하 본 발명의 다른 특징 및 실시예에 대해 설명하겠다.
본 발명에 따른 컬러 매니지먼트를 제공하는 시스템 및 방법에 대해 첨부된 도면을 참조하여 설명하겠다.
개략
본 발명은 X11r6 그래픽 플랫폼의 구조적 제한 내에서 여러 가지 현재 채택된 해결책을 사용하여 현대의 컬러 매니지먼트를 실현하는 방법 및 시스템을 제공한다. 언급된 바와 같이, X11은 3개의 장치 독립형 컬러로 시작하고 RGB 표시 장치 의존형 컬러로 끝나는 컬러 매니지먼트 워크플로우 아키텍쳐를 가정한다. 본 발명은 따라서 장치 의존형 컬러로 시작하고 끝나는 ICC, sRGB, scRGB와 같은 현대의 컬러 매니지먼트로 지원할 수 있게 하는 메카니즘을 제공한다. 본 발명은 또한 X11r6 내의 확대된 RGB 컬러 스페이스뿐만 아니라 CMYK 컬러 스페이스를 지원하기 위해 사용될 수 있고, 따라서 X11r6 그래픽 플랫폼을 확대하여 현대의 모든 컬러 매니지먼트 기술을 지원할 수 있다.
예시적인 네트워킹되고 분산된 환경
본 분야에 숙련된 기술자는 컴퓨터 또는 그 밖의 다른 클라이언트 또는 서버 장치가 하나의 컴퓨터 네트워크의 부분으로서 또는 분산된 컴퓨팅 환경 내에서 전개될 수 있다는 것을 이해할 수 있다. 이와 관련하여, 본 발명은 소정 수의 메모리 또는 저장 유닛, 및 소정 수의 저장 유닛 또는 볼륨과 교차하여 발생하는 소정 수의 어플리케이션 및 프로세스(컬러 매니지먼트 프로세스와 관련하여 사용될 수도 있음)를 갖고 있는 소정의 컴퓨터 시스템에 관련된 것이다. 본 발명은 하나의 네트워크 환경 또는 분산된 컴퓨팅 환경에서 전개되고 원격 또는 로컬 기억장치를 갖는 서버 컴퓨터 및 클라이언트 컴퓨터를 갖는 환경에 적용할 수도 있다. 본 발명은 또한 원격 또는 로컬 컬러 매니지먼트 서비스와 관련하는 정보를 발생, 수신 및 전송하기위한 프로그래밍 언어 기능, 해석 및 실행 능력을 갖는 독립형 컴퓨팅 장치에 적용될 수도 있다.
분산된 컴퓨팅은 컴퓨팅 장치와 시스템 사이의 직접 교환에 의해 컴퓨터 리소스 및 서비스를 공유하도록 돕는다. 이들 자원 및 서비스는 정보 교환, 캐시 기억장치, 및 파일용 디스크 기억장치를 포함한다. 분산된 컴퓨팅은 네트워크 접속의 장점을 취하여, 전체 기업에 유리하도록 클라이언트들이 이들의 집합된 힘을 효과적으로 발휘할 수 있게 한다. 이와 관련하여, 여러 가지 장치들은 본 발명의 기술을 이용할 수도 있는 컬러 매니지먼트 프로세스가 관련될 수 있는 어플리케이션, 오브젝트 또는 리소스를 가져도 된다.
도 2a는 예시적인 네트워킹되고 분산된 컴퓨팅 환경의 개략도를 제공한다. 분산된 컴퓨팅 환경은 컴퓨팅 오브젝트(10a, 10b 등), 및 컴퓨팅 오브젝트 또는 장치(110a, 110b, 110c 등)를 포함한다. 이들 오브젝트는 프로그램, 방법, 데이터 저장, 프로그램가능 로직 등을 포함할 수도 있다. 오브젝트는 PDA(personal digital assistants), 텔레비젼, MPEG-1(Moving Picture Experts Group) 오디어 레이어-3(MP3) 플레이어, 텔레비젼, 퍼스널 컴퓨터 등과 같은 동일하거나 상이한 장치의 일부분을 포함할 수도 있다. 각각의 오브젝트는 통신 네트워크(14)에 의해 다른 오브젝트와 통신할 수 있다. 이 네트워크는 도 2a의 시스템에 서비스를 제공하는 다른 컴퓨팅 오브젝트 및 컴퓨팅 장치를 그 자체에 포함할 수도 있다. 본 발명의 실시양상에 따라, 각각의 오브젝트(10a, 10b 등 또는 110a, 110b, 110c 등)는 컬러 매니지먼트 서비스를 요청할 수도 있는 어플리케이션을 포함할 수도 있다.
분산된 컴퓨팅 아키텍쳐에 있어서, 전통적으로 클라이언트로서 단독으로 사용되기도 한 컴퓨터는 그들 자신들 간에 직접 통신하고, 네트워크에서 어떤 역할이 가장 효율적인지 추정하여 클라이언트 및 서버로서 동작할 수 있다. 이것은 서버 상의 부하를 감소시키고, 모든 클라이언트가 다른 클라이언트에서 이용 가능한 자원을 억세스할 수 있게 함으로써, 전체 네트워크의 성능과 효율을 증가시킨다. 본 발명에 따른 컬러 매니지먼트 서비스는 이와 같이 클라이언트와 서버 사이에서 분산되어 전체 네트워크에 효율적인 방식으로 작동할 수 있다.
분산된 컴퓨팅은 여러 가지 지리적 경계를 넘어 더욱 효율적으로 비즈니스 전달 서비스 및 능력을 도와줄 수 있다. 게다가, 분산된 컴퓨팅은 네트워크 캐싱 메카니즘으로서 작동하여 데이터가 소모되는 지점에 더욱 가깝게 데이터를 이동할 수 있다. 분산된 컴퓨팅은 또한 컴퓨팅 네트워크가 지능 에이전트를 사용하여 동적으로 함께 작업할 수 있게 한다. 에이전트는 피어(peer) 컴퓨터에 상주하고, 여러 종류의 정보를 교환하여 통신한다. 에이전트는 또한 다른 피어 시스템 대신에 태스크를 개시할 수도 있다. 예를 들어, 지능 에이전트는 네트워크 상의 태스크 우선 순위를 결정하고, 트래픽 플로우를 변경하며, 파일을 국부적으로 탐색하거나 또는 바이러스와 같은 변칙적인 동작을 판단하여, 바이러스가 네트워크에 영향을 미치기 전에 바이러스를 중지시키기 위해 사용될 수 있다. 모든 종류의 다른 서비스들도 마찬가지로 생각될 수 있다. 그래피컬 오브젝트(들) 또는 다른 컬러 데이터가 사실상 물리적으로 한 곳 이상의 위치에 있을 수 있기 때문에, 컬러 매니지먼트를 분산하는 능력은 그러한 시스템에 매우 유용한 것이다.
또한, 110c와 같은 오브젝트는 다른 컴퓨팅 장치(10a, 10b 등 또는 110a, 110b 등)에 대한 호스트가 될 수 있다는 것을 알 수 있다. 그러므로, 도시된 물리적인 환경이 접속 장치를 컴퓨터로 나타내고 있을 지라도, 이러한 도시는 단지 예시적인 것이고, 물리적인 환경은 대안적으로 PDA, 텔레비젼, MP3 플레이어 등과 같은 여러 가지 디지털 장치나, 인터페이스, COM 오브젝트와 같은 소프트웨어 오브젝트 등을 포함하는 것으로 도시되거나 설명될 수 도 있다.
분산된 컴퓨팅 환경을 지원하는 여러 가지 시스템, 구성요소 및 네트워크 구 성이 있다. 예를 들어, 컴퓨팅 시스템은 로컬 네트워크 또는 널리 분산된 네트워크에 의해 유선 또는 무선 시스템으로 함께 접속될 수도 있다. 현재, 많은 네트워크들은 널리 분산된 컴퓨팅에 인프라스트럭처를 제공하고 서로 다른 많은 네트워크들을 둘러싸는 인터넷에 연결된다.
가정용 네트워킹 환경에서는, 전력선, 데이터(무선 및 유선), 음성(예를 들어, 전화) 및 엔터테인먼트 매체와 같이 유일한 프로토콜을 각각 지원할 수 있는 완전히 다른 네트워크 전송 매체가 최소한 4개 있다. 조명 스위치 및 가전기기와 같은 대부분의 가정용 제어 장치는 접속을 위해 전력선을 사용한다. 데이터 서비스는 광대역(예를 들어, DSL 또는 케이블 모뎀)으로 가정에 들어갈 수도 있으며, 무선, 예를 들어 Home RF(Home Radio Frequency) 또는 802.11b, 또는 유선, 예를 들어 Home PNA(Phoneline Networking Appliance), Cat5, 심지어 전력선, 상호통신 능력을 사용하여 가정 내로 억세스 가능하다. 음성 트래픽은 유선, 예를 들어 Cat3, 또는 무선, 예를 들어 셀 폰으로 가정에 들어갈 수도 있으며, Cat3 배선을 사용하여 가정 내로 분산될 수도 있다. 엔터테인먼트 매체, 또는 다른 그래피컬 데이터는 위성 또는 케이블을 통해 가정으로 들어갈 수도 있으며, 전형적으로 동축 케이블을 사용하여 가정으로 분산된다. IEEE 1394 및 DVI는 또한 매체 장치들의 다발들(clusters)에 대한 디지털 상호접속으로 출현하고 있다. 이러한 모든 네트워크 환경, 및 프로토콜 표준으로 출현할 수도 있는 그 밖의 것은 인터넷에 의해 외부 세계에 접속될 수 있는 인트라넷을 형성하도록 상호접속될 수도 있다. 간단하게 말하면, 여러 가지 다른 종류의 소스가 데이터의 저장 및 전송을 위해 존재하고, 따라서 더 나아가서 컴퓨팅 장치는 본 발명에 따른 그래픽 오브젝트(들) 또는 그 밖의 다른 컬러 데이터의 컬러 매니지먼트에 부수적으로 수반되는 억세스되거나 활용된 데이터와 같은 데이터를 공유하는 방식을 필요로 할 것이다.
게다가, 컬러는 여러 가지 물리적 또는 그 밖의 다른 현상을 나타내는데 효과적인 수단이므로, 데이터가 자기 공명 이미징 데이터이든지, 초음파 데이터이든지, 그래픽 이퀄라이징 데이터 이든지 간에 등등, 컬러는 빠른 지각 분석을 위해 인간에게 데이터를 나타내는 적절한 방식이다. 따라서, 여기에서 주시한 컬러 데이터용 소스는 무제한적이고, "컬러" 데이터로 간주되기 이전에 일련의 변환 과정을 거칠 수도 있다.
인터넷은 컴퓨터 네트워킹 분야에서 잘 알려져 있는 프로토콜의 TCP/IP(Transport Control Protocol/Interface Program) 슈트를 활용하는 네트워크 및 게이트웨이의 집합체를 통상적으로 일컫는 것이다. 인터넷은 사용자가 상호작용하여 네트워크를 통해 정보를 공유할 수 있게 하는 네트워킹 프로토콜을 실행하는 컴퓨터에 의해 상호접속된 지리상으로 분산된 원격 컴퓨터 네트워크의 시스템으로 설명될 수 있다. 이러한 널리 보급되어 있는 정보 공유 때문에, 인터넷과 같은 원격 네트워크는 본질적으로 제한없이 개발자가 특정 동작 또는 서비스를 실행하는 소프트웨어 어플리케이션을 설계할 수 있는 오픈 시스템으로 상당히 발전되어 왔다.
그러므로, 네트워크 인프라스트럭처는 클라이언트/서버, 피어-투-피어, 또는 하이브리드 아키텍쳐와 같은 네트워크 위상의 호스트를 가능하게 한다. "클라이언 트"는 관련되지 않은 다른 클래스 또는 그룹의 서비스를 사용하는 한 클래스 또는 그룹의 멤버이다. 그러므로, 컴퓨팅 시에, 하나의 클라이언트는 하나의 프로세스이고, 즉 대충, 다른 프로그램에 의해 제공된 서비스를 요청하는 한 세트의 명령 또는 태스크이다. 클라이언트 프로세스는 그 밖의 다른 프로그램 또는 서비스 자체에 대한 소정의 작업 상세를 "숙지"하지 않고 요청된 서비스를 활용한다. 클라이언트/서버 아키텍쳐, 특히 네트워킹된 시스템에서, 클라이언트는 보통, 다른 컴퓨터, 예를 들어 서버에 의해 제공된 공유 네트워크 자원을 억세스하는 컴퓨터이다. 도 2a의 예에서, 컴퓨터(110a, 110b 등)는 클라이언트로 생각될 수 있고, 컴퓨터(10a, 10b 등)는 서버로서 생각될 수 있는데, 서버(10a, 10b 등)는 그 다음에 클라이언트 컴퓨터(110a, 110b 등)에서 복제되는 데이터를 유지한다.
서버는 전형적으로 인터넷과 같은 원격 네트워크를 통해 억세스 가능한 원격 컴퓨터 시스템이다. 클라어언트 프로세스는 제1 컴퓨터 시스템에서 동작되고, 서버 프로세스는 제2 컴퓨터 시스템에서 동작되어, 통신 매체를 통해 서로 통신함으로써, 분산된 기능을 제공하여, 다수의 클라이언트가 서버의 정보-개더링(gathering) 능력의 장점을 갖게 할 수 있다.
클라이언트 및 서버는 프로토콜 층에 의해 제공된 기능을 이용하여 서로 통신한다. 예를 들어, HTTP(Hypertext-Transfer Protocol)는 WWW(World Wide Web)와 함께 사용되는 공통 프로토콜이다. 전형적으로, URL(Universal Resource Locator) 또는 IP(Internet Protocol) 어드레스 같은 컴퓨터 네트워크 어드레스는 서버 또는 클라이언트 컴퓨터를 서로 식별하기 위해 사용된다. 네트워크 어드레스는 URL 어드레스로 불릴 수 있다. 예를 들어, 통신은 통신 매체를 통해 제공될 수 있다. 특히, 클라이언트 및 서버는 높은 용량의 통신을 위해 TCP/IP 접속을 통해 서로 연결될 수도 있다.
이와 같이, 도 2a는 본 발명이 이용될 수 있는 예시적인 네트워킹되거나 분산된 환경을 도시한 것으로, 이러한 환경에서 서버는 네트워크/버스를 통해 클라이언트 컴퓨터와 통신한다. 더욱 상세하게, 다수의 서버(10a, 10b 등)는 본 발명에 따라 다수의 클라이언트 또는 원격 컴퓨팅 장치(110a, 110b, 110c 등), 예를 들어 포터블 컴퓨터, 포켓용(handheld) 컴퓨터, 신(thin) 클라이언트, 네트워킹된 가전기기, 또는 비디오 카세트 레코더(VCR), 텔레비젼(TV), 오븐, 조명, 히터 등과 같은 그 밖의 다른 장치와, LAN, WAN, 인트라넷, 인터넷 등의 통신 네트워크/버스(14)를 통해 상호접속된다. 따라서, 본 발명은 그래피컬 오브젝트(들) 또는 소정의 다른 컬러 데이터를 바람직하게 프로세스하거나 디스플레이하는 것과 관련하여 소정의 컴퓨팅 장치에 적용할 수도 있다는 것이 고려된다.
통신 네트워크/버스(14)가 인터넷인 네트워크 환경에서, 예를 들어 서버(10a, 10b 등)는 클라이언트(110a, 110b, 110c, 110d, 110e 등)가 HTTP와 같은 다수의 공지된 프로토콜 중의 소정의 프로토콜을 통해 통신하는 웹 서버일 수 있다. 서버(10a, 10b 등)는 또한 클라이언트(110a, 110b, 110c, 110d, 110e 등)로서 동작할 수도 있으며, 이것은 분산 컴퓨팅 환경의 특색이기도 하다. 통신은 적절한 경우에 유선 또는 무선이 될 수도 있다. 클라이언트 장치(110a, 110b, 110c, 110d, 110e 등)는 통신 네트워크/버스(14)를 통해 통신할 수도 또는 안 할 수도 있으며, 그것과 연관된 독립적인 통신을 할 수도 있다. 예를 들어, TV 또는 VCR의 경우에, 그것의 제어에 대한 네트워킹된 양상이 있을 수도 또는 없을 수도 있다. 각각의 클라이언트 컴퓨터(110a, 110b, 110c, 110d, 110e 등) 및 서버 컴퓨터(10a, 10b 등)는 다양한 어플리케이션 프로그램 모듈 또는 오브젝트(135)가 갖춰질 수도 있고, 파일이 저장되거나 또는 파일의 일부분(들)이 다운로드되거나 이동될 수도 있는 여러 가지 형태의 저장 소자 또는 오브젝트로의 접속 또는 억세스가 갖춰질 수도 있다. 임의의 컴퓨터(10a, 10b, 110a, 110b 등)는 본 발명에 따라 처리된 중간 컬러 오브젝트(들) 또는 데이터 또는 컬러 오브젝트(들) 또는 데이터를 저장하는 데이터베이스 또는 메모리(20)와 같은 데이터베이스 또는 본 발명에 따른 다른 저장 소자의 유지 및 갱신을 책임지기도 한다. 그러므로, 본 발명은 억세스하여 컴퓨터 네트워크/버스(14)와 상호작용할 수 있는 클라이언트 컴퓨터(110a, 110b 등), 및 클라이언트 컴퓨터(110a, 110b 등) 및 다른 유사한 장치, 및 데이터베이스(20)와 상호작용하기도 하는 서버 컴퓨터(10a, 10b 등)를 갖고 있는 컴퓨터 네트워크 환경에 이용될 수 있다.
예시적인 컴퓨팅 장치
도 2b 및 이후의 설명은 본 발명이 실현될 수 있는 적절한 컴퓨팅 환경의 간략한 개략적인 설명을 제공하고자 하는 것이다. 그러나, 포켓용, 포터블 및 모든 종류의 그 밖의 다른 컴퓨팅 장치 및 컴퓨팅 오브젝트는 상술된 바와 같이 본 발명과 관련하여 사용하기 위해 고려된다는 것을 이해해야 한다. 그러므로, 범용 컴퓨터가 후술되지만, 이것은 한 예이고, 본 발명은 네트워크/버스 상호운용성 및 상호작용을 갖는 신(thin) 클라이언트와 같은 다른 컴퓨팅 장치로 실현될 수도 있다. 그러므로, 본 발명은 매우 작거나 또는 최소한의 클라어언트 리소스가 관련되는 네트워킹된 호스팅 서비스의 환경, 예를 들어 클라이언트 장치가 가전기기 내에 배치된 오브젝트, 또는 다른 컴퓨팅 장치 및 오브젝트들과 같이 네트워크/버스에 대한 인터페이스로서만 동작하는 네트워킹 환경에서 실현되기도 한다. 본질에 있어서, 데이터가 저장되거나 데이터가 검색될 수도 있는 임의의 장소는 본 발명의 컬러 매니지먼트 기술의 동작을 위해 바람직하거나 또는 적절한 환경이다.
필요한 것은 아니지만, 본 발명은 하나의 장치 또는 오브젝트에 대한 서비스의 개발자에 의해 사용하기 위한 운영 체제를 통해 실현될 수 있고/있거나, 본 발명의 컬러 매니지먼트 기술과 관련하여 동작하는 어플리케이션 소프트웨어 내에 포함될 수 있다. 소프트웨어는 클라이언트 워크스테이션, 서버 또는 그밖의 다른 장치와 같은 하나 이상의 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령들의 일반적인 콘텍스트로 설명되기도 한다. 일반적으로, 프로그램 모듈은 특정 태스크를 실행하거나 특정 추상 데이터 유형을 실현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 전형적으로, 프로그램 모듈의 기능은 여러 실시예에서 원하는 바와 같이 결합되거나 분산될 수도 있다. 게다가, 본 분야에 숙련된 기술자들은 본 발명이 다른 컴퓨터 시스템 구성으로 실시될 수도 있다는 것을 알 수 있을 것이다. 본 발명과 함께 사용하기 적절한 그밖의 다른 잘 공지되어 있는 컴퓨팅 시스템, 환경, 및/또는 구성은 PC, 자동화 금전출납기, 서버 컴퓨터, 포켓용 또는 랩탑 장치, 멀티-프로세서 시스템, 마이크로프로세서 기반 시 스템, 프로그램가능한 소비자 전자제품, 네트워크 PC, 가전기기, 조명, 환경 제어 소자, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는데, 이것에 제한되는 것은 아니다. 본 발명은 또한 통신 네트워크/버스 또는 그 밖의 다른 데이터 전송 매체를 통해 링크되는 원격 프로세싱 장치에 의해 태스크가 실행되는 분산된 컴퓨팅 환경에서 실시되기도 한다. 분산된 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체 내에 위치될 수도 있으며, 클라이언트 노드는 번갈아서 서버 노드로서 동작할 수도 있다.
도 2b는 이와 같이 본 발명이 실현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 한 예를 도시한 것으로서, 위에서 명백하게 밝힌 바와 같이, 컴퓨팅 시스템 환경(100)은 단지 적절한 컴퓨팅 환경의 한 예이지, 본 발명의 사용이나 기능의 범위에 대해 소정의 제한을 주고자 하는 것은 아니다. 컴퓨팅 환경(100)은 예시적인 동작 환경(100)에 도시된 구성요소들 중 소정의 한 구성요소 또는 이들의 조합에 관해 어떠한 종속성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
도 2b를 참조하면, 본 발명을 실현하는 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 구성요소는 프로세싱 유닛(120), 시스템 메모리(130), 및 이 시스템 메모리를 포함하는 여러 가지 시스템 구성요소를 프로세싱 유닛(120)에 연결하는 시스템 버스(121)를 포함할 수도 있는데, 이것에 제한되는 것은 아니다. 시스템 버스(121)는 여러 가지 버스 아키텍쳐들 중 임의의 아키텍쳐를 사용하여 메모리 버스 또는 메모리 제어기, 주변 버스 및 로컬 버스를 포함하는 몇 가지 유형의 버스 구조들 중 임의의 구조로 될 수 있다. 예를 들어(제한적인 것은 아님), 이러한 아키텍쳐는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 PCI(Peripheral Component Interconnect) 버스(또한 Mezzanine 버스로 공지되어 있음)를 포함한다.
컴퓨터(110)는 전형적으로 여러 가지 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 억세스될 수 있는 소정의 시판중인 매체가 될 수 있으며, 휘발성 및 불휘발성 매체, 착탈가능 및 착탈불가능 매체를 포함한다. 예를 들어(제한적인 것은 아님), 컴퓨터 판독가능 매체는 컴퓨터 저장 매체와 통신 매체를 포함해도 된다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령들, 데이터 구조, 프로그램 모듈 또는 그 밖의 다른 데이터와 같은 정보를 저장하기 위한 소정의 방법 또는 기술로 실현된 휘발성 및 불휘발성, 착탈가능 및 착탈불가능 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 그 밖의 다른 메모리 기술, CDROM, DVD, 또는 그 밖의 다른 광 디스크 기억 장치, 자기 카세트, 자기 테이프, 자기 디스크 기억장치, 그 밖의 다른 자기 기억 장치, 또는 원하는 정보를 저장하기 위해 사용될 수 있고 컴퓨터(110)에 의해 억세스될 수 있는 소정의 다른 매체를 포함하는데, 이것에 제한되는 것은 아니다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 전송 메카니즘과 같은 변조된 데이터 신호 내의 그 밖의 다른 데이터를 구현하고, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 하나 이상의 자체 특성 세트를 갖거나 또는 신호 내의 암호화정보에 관한 방식으로 변경되는 신호를 의미한다. 예를 들어(제한적인 것은 아님), 통신 매체는 유선 네트워크, 직접 유선 접속과 같은 유선 매체, 및 음파, RF, 적외선 및 그 밖의 다른 무선 매체와 같은 무선 매체를 포함한다. 또한, 상기의 임의의 조합은 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132)과 같은 휘발성 및/또는 불휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 개시 중과 같이 컴퓨터(110) 내의 소자들 간의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(133)(BIOS)은 전형적으로 ROM(131)내에 저장된다. RAM(132)은 전형적으로 프로세싱 유닛(120)으로 즉시 억세스 가능하고/하거나 현재 프로세싱 유닛(120)에 의해 동작되고 있는 프로그램 모듈 및/또는 데이터를 포함한다. 예를 들어(제한적인 것은 아님), 도 2b는 운영 체제(134), 어플리케이션 프로그램(135), 그 밖의 다른 프로그램 모듈(136), 및 프로그램 데이터(137)를 도시한 것이다.
컴퓨터(110)는 또한 그 밖의 다른 착탈가능/착탈불가능, 휘발성/불휘발성 컴퓨터 저장 매체를 포함해도 된다. 단지 예를 들기 위해, 도 2b는 착탈불가능, 불휘발성 자기 매체로부터/로 판독 또는 기입하는 하드 디스크 드라이브(141), 착탈가능, 불휘발성 자기 디스크(152)로부터/로 판독 또는 기입하는 자기 디스크 드라이브(151), 및 CD ROM 또는 다른 광 매체와 같은 착탈가능, 불휘발성 광 디스크(156)로부터/로 판독 또는 기입하는 광 디스크 드라이브(155)를 도시한 것이다. 예시적인 동작 환경에서 사용될 수 있는 그 밖의 다른 착탈가능/착탈불가능, 휘발성/불휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상 RAM, 고상 ROM 등을 포함하는데, 이것에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 전형적으로 인터페이스(140)와 같은 착탈불가능 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 인터페이스(150)와 같은 착탈가능 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
상술되고 도 2b에 도시된 드라이브 및 이와 관련된 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 그 밖의 다른 데이터의 저장을 컴퓨터(110)에 제공한다. 도 2b에서, 예를 들어, 하드 디스크 드라이브는 운영 체제(144), 어플리케이션 프로그램(145), 그 밖의 다른 프로그램 모듈(146) 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 이들 구성요소는 운영 체제(134), 어플리케이션 프로그램(135), 그 밖의 다른 프로그램 모듈(136) 및 프로그램 데이터(137)와 동일하거나 다를 수 있다는 것을 알기 바란다. 운영 체제(144), 어플리케이션 프로그램(145), 그 밖의 다른 프로그램 모듈(146) 및 프로그램 데이터(147)는 최소한으로 이들이 서로 다른 카피라는 것을 도시하기 위해 여기에 서로 다른 참조부호로 주어진다. 사용자는 통상 마우스, 트랙볼 또는 터치패드라고 하는 포인팅 장치(161) 및 키보드(162)와 같은 입력 장치를 통해 컴퓨터(110) 내로 커맨드 및 정보를 입력시킬 수도 있다. 그 밖의 다른 입력 장치(도시되지 않음)는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너 등을 포함하기도 한다. 이들 및 다른 입력 장치는 시스템 버스(121)에 연결된 사용자 입력 인터페이스(160)를 통해 프로세싱 유닛(120)에 자주 접속되는데, 병렬 포트, 게임 포트 또는 USB(Universal Serial Bus)와 같은 그 밖의 다른 인터페이스 및 버스 구조에 의해 접속되기도 한다. 노스브리지(Northbridge)와 같은 그래픽 인터페이스(182)는 또한 시스템 버스(121)에 접속되기도 한다. 노스브리지는 CPU 또는 호스트 프로세싱 유닛(120)과 통신하는 칩셋(chipset)으로서, AGP(Accelerated Graphics Port) 통신을 책임지는 것으로 가정한다. 하나 이상의 그래픽 프로세싱 유닛(GPU)(184)은 그래픽 인터페이스(182)와 통신할 수도 있다. 이와 관련하여, GPU(184)는 레지스터 기억장치와 같은 온칩 메모리 기억장치를 일반적으로 포함하고, GPU(184)는 비디오 메모리(186)와 통신한다. 그러나, GPU(184)는 코프로세서의 한 예에 불과하므로, 여러 가지 코프로세싱 장치가 컴퓨터(110) 내에 포함될 수도 있다. 모니터(191) 또는 다른 형태의 표시 장치는 또한 비디오 메모리(186)와 번갈아 통신할 수도 있는 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터(191) 이외에, 컴퓨터는 또한 출력 주변 인터페이스(195)를 통해 접속될 수도 있는 스피커(197) 및 프린터(196)와 같은 다른 주변 출력 장치를 포함할 수도 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 로컬 접속을 사용하여 네트워킹되거나 또는 분산된 환경에서 동작할 수도 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 루터, 네트워크 PC, 피어 장치 또는 다른 일반적인 네트워크 노드일 수 있으며, 도 2b에 하나의 메모리 기억장치(181)만이 도시되어 있지만, 전형적으로 컴퓨터(110)와 관련하여 상술된 다수의 또는 모든 소자 를 포함한다. 도 2b에 도시된 로컬 접속은 LAN(171) 및 WAN(173)을 포함하는데, 다른 네트워크/버스를 포함할 수도 있다. 이러한 네트워킹 환경은 가정, 사무실, 기업에 걸친 컴퓨터 네트워크, 인트라넷 및 인터넷에서는 통상적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 전형적으로 모뎀(172), 또는 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위한 다른 수단을 포함한다. 내부 또는 외부에 있을 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 다른 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수도 있다. 네트워킹된 환경에서, 컴퓨터(110)에 관련하여 묘사된 프로그램 모듈, 또는 그것의 일부분은 원격 메모리 저장 장치에 저장될 수도 있다. 예를 들어(제한적인 것은 아님), 도 2b는 메모리 장치(181)에 상주하는 원격 어플리케이션 프로그램(185)을 도시한 것이다. 도시된 네트워크 접속은 예시적인 것이고, 컴퓨터들간의 통신 링크를 설정하는 다른 수단이 사용될 수도 있다는 것을 알 수 있을 것이다.
예시적인 분산된 컴퓨팅 프레임워크 또는 아키텍쳐
여러 가지 분산된 컴퓨팅 프레임워크는 퍼스널 컴퓨터와 인터넷의 접근을 고려하여 개발되었으며 개발되고 있다. 개인 및 사무적인 사용자는 어플리케이션 및 컴퓨팅 장치를 위한 끊어짐 없이 상호동작 가능하고 웹 가능한 인터페이스를 마찬가지로 구비하고 있으며, 컴퓨팅 동작이 점점 웹 브라우저 또는 네트워크 지향적으로 되게 한다.
예를 들어, MICROSOFT
Figure 112008025662058-pat00011
’s.NET 플랫폼은 웹 기반 데이터 저장소 및 다운로드 가능한 장치 소프트웨어와 같은 빌딩-블록 서비스, 서버를 포함한다. 일반적으로 말하자면, .NET 플랫폼은 (1) 전영역의 컴퓨팅 장치를 함께 작동시키는 능력 및 이들 전체에서 자동으로 갱신되어 동기된 사용자 정보를 갖는 능력, (2) HTML보다 XML의 더 많은 사용에 의해 가능해진 웹사이트에 대한 증가된 상호작용 능력, (3) 예를 들어, Office.NET과 같은 소프트웨어 또는 e-mail과 같은 여러 가지 어플리케이션의 매니지먼트를 위해 중앙 시작 포인트로부터 사용자로의 제품 및 서비스의 주문화 억세스 및 전달을 특징으로 하는 온라인 서비스, (4) 사용자와 장치 간의 정보의 동기화뿐만 아니라 정보의 효율성 및 정보로의 억세스 용이성을 증가시키는 중앙집중 데이터 저장소, (5) e-mail, 팩스 및 전화와 같은 여러 가지 통신 매체를 통합하는 능력, (6) 재사용가능 모듈을 생성하는 능력을 개발자에게 제공함으로써, 생산성 증가 및 프로그래밍 에러의 수 감소, 및 (7) 또한 그 밖의 다른 많은 크로스-플랫폼 통합 특징을 제공한다.
여기에서는 예시적인 실시예들이 컴퓨팅 장치에 상주하는 소프트웨어와 관련하여 설명되었지만, 본 발명의 하나 이상의 부분들은 또한 컬러 매니지먼트 서비스가 모든 .NET의 언어 및 서비스에 의해 실행되고, 지원되거나 또는 이를 통해 억세스될 수 있도록, 운영 체제, 어플리케이션 프로그래밍 인터페이스(API) 또는 코프로세서와 요청 오브젝트 사이의 "매개자(middle man)" 오브젝트를 통해 실현될 수도 있고, 또한 그 밖의 다른 분산된 컴퓨팅 프레임워크로 실현될 수도 있다.
X11의 컬러 매니지먼트
발명의 배경 부분에 관련된 바와 같이, X11R6 컬러 매니지먼트 시스템은 화이트 포인트 적응, 전영역 맵핑, 매트릭스 변환 및 1-D LUT를 포함하는 오퍼레이션을 통해, 플러그접속 가능하고 장치 의존형 컬러 값으로의 장치 독립형 어플리케이션 컨텐트의 번환을 지원하는 컬러 매니지먼트 기능을 지원하는 그래픽 프로토콜이다.
X11r6 아키텍쳐는 2가지 컬러 매니지먼트 해결책을 갖는다. 첫 번째 해결책은 CRT와 같은 간단한 표시 장치의 특성을 나타내기 위해 통상 사용된 단순한 3x3 매트릭스 및 3개의 1D LUT이다. 두 번째는 주로 화이트 포인트 변환 및 전역 압축으로 어루어지는 Xcms이다. Xcms의 도입 이래, 컬러 매니지먼트는 진보해 왔으며, 이들 2가지 기술로 제한되어 발견된 해결책은 대부분 X11이 수신 장치만을 지원하는 소스 및 수신 장치를 가정하고 소스가 장치 독립형이라고 가정하기 때문에 부적절하다. 다행히, Xcms는 이러한 아키텍쳐 내에서 더욱 융통성있게 수행할 수 있게 한다.
CIELAB는 HVS(Human Visual System)를 나타내는 점에서 이전의 CIELUV보다 이들 값의 균일한 컬러 스페이싱을 더욱 잘 나타내는 모델로서 1976년에 CIE에 의해 채택된 시스템이다. CIELAB는 L, a, b라고 하는 리차드 헌터(Richard Hunter)의 초기(1942) 시스템에 기초한 대립 컬러 시스템이다. 컬러 대립은 시신경과 뇌 사이의 어딘가에서, 망막의 컬러 자극이 명암간의 구별, 적색과 녹색간의 구별, 및 청색과 황색간의 구별로 변환된다는 1960년대 중반의 발견과 상관이 있다. CIELAB는 이들 값을 3개의 축: L*, a*, b*로 나타낸다. 완전한 전문어로는 1976 CIE L*a*b* 스페이스이다.
중앙 수직축은 밝기를 나타내고, L*로 표시되며, 밝기에 대한 값은 0(흑색)에서 100(백색)까지 미친다. 컬러 축은 컬러가 적색과 녹색 양쪽 모두가 될 수 없거나, 또는 청색과 황색 양쪽 모주가 될 수 없다는 사실에 기초한 것인데, 왜냐하면 이들 컬러는 서로 보색이기 때문이다. 각각의 축에서, 그 값은 포지티브에서 네가티브까지 미친다. a-a'축 상에서, 포지티브값은 적색의 양을 나타내는 반면, 네가티브값은 녹색의 양을 나타낸다. b-b'축 상에서, 황색은 포지티브이고, 청색은 네가티브이다. 2개의 축에서, 제로는 무채색의 회색이다. CIEXYZ 데이터 구조는 특정 컬러 스페이스 내에서 특정 컬러의 x, y, z 좌표를 포함하는 X11에 의해 이용된 데이터 구조이다.
X11r5가 작동하는 방법의 예가 도 3a에 도시되어 있으며, X11 내에 다이렉트컬러(directcolor) 또는 트루컬러(truecolor) 표면을 가정한다. 장치 독립형 RGB 값으로부터, 휘도에 대해 선형인 표시 장치 의존형의 RGB 값은 3x3 매트릭스(300)를 통해 생성된다. 그 다음, 표시 장치 의존형의 비선형 RGB 값은 주어진 감마(γ) 값, 예를 들어 γ=1.0인 경우에 대해 3개의 1-D LUT(310)를 통해 생성된다. 이들 장치 의존형 값은 그 다음 표시 장치(320)를 통해 재생된다. 이와 관련하여, 장치(320)는 표시 장치(320)에 특정된 3x3 매트릭스 및 1-D LUT를 제공한다.
구체적으로, X 컬러 스페이스 변환 콘텍스트(XCCC)는 함수, toCIEXYZ 및 fromCIEXYZ에 대한 2개의 일반적인 포인터를 지원한다. X11r6이 작동하는 방법의 예는 도 3b에 도시되어 있다. 장치 독립형 컬러 값들, 예를 들어 CIELAB, CIELUV, CIEYxy, CIEXYZ, TekHVC, cmdPad에서, CIEXYZ 값은 X11 라이브러리, Xlib 내에서 표준 컬러 스페이스 변환 메카니즘을 통해 생성된다. 그 다음, 장치 화이트 포인트 CIEXYZ 값은 Xcms 화이트 포인트 변환 구성요소(330)를 통해 생성된다. 그 다음, 장치 전역 CIEXYZ 값은 Xcms 전역 압축 변환 구성요소(340)를 통해 생성된다. 그 다음, 장치 의존형 RGB 값은 위에서 부분적으로 설명된 ZX11r5 메카니즘에 의해 또는 XCCC의 fromCIEXYZ 메카니즘을 통해 생성된다.
그러므로, 도 4a에 도시된 바와 같이, X 플랫폼 내의 컬러 매니지먼트는 X11 데이터 구조를 생성하거나 또는 X11 데이터 구조를 장치 의존형 값으로 변환하는 동작을 하는 toCIEXYZ 및 fromCIEXYZ 함수를 통해 달성된다.
표준 WINDOWS
Figure 112003012731753-pat00012
컬러 매니지먼트 모듈(CMM)의 동작은 도 4b에 도시된다. 여러 가지 소스 장치 의존형 컬러 스페이스 및 장치 프로파일들 중의 임의의 것으로부터, CMM은 표준 CMM 함수를 통해 장치 독립형 컬러 스페이스, 예를 들어 ICC, sRGB, scRGB로 변환할 수 있다. 그 다음, 수신 장치 프로파일을 통해, 독립형 컬러 스페이스 값은 수신 장치에 적절한 컬러 스페이스로 변환된다.
도 4c에 도시된 바와 같이, 본 발명은 표준 ICC 프로파일 및 컬러 매니지먼트 방법에 의해 제공된 서포트로 XCCC의 toCIEXYZ 및 fromCIEXYZ 함수를 증대시키는 메카니즘을 제공한다.
이것을 달성하기 위해, 먼저, 명시적으로 사용자 인터페이스(UI)를 통하거나 또는 암시적으로 장치 결합을 통해 적절한 소스 및 수신 프로파일을 지정한다. 이들 2개의 장치 프로파일에서, 표준 WINDOWS
Figure 112008025662058-pat00013
CMM 함수를 사용하여 소스 장치에서 수신 장치로 직접 변환하는 장치 링크 프로파일을 생성할 수 있으며, 이는 소스 장치 및 수신 장치 컬러 특성 차의 궁극적인 관계를 처리한다. X11 아키텍쳐는 장치 링크 프로파일을 사용하여 소스를 수신 컬러 또는 이미지로 변환시키는 표준 CMM 기반의 컬러 변환 함수를 X11의 fromCIEXYZ 함수 포인터가 가리키게 함으로써 소스 장치로부터 수신 장치로의 값의 전달을 달성하는 프로세스를 수행하게 된다. 표준 CMM 서포트는 WINDOWS
Figure 112008025662058-pat00014
Image Color Matching(ICM) 인터페이스 또는 그 밖의 다른 ICC 컬러 매니지먼트 시스템 인터페이스로부터 X11로 포트(port)될 수 있다.
도 5a 내지 5c는 본 발명의 몇 가지 예를 도시한 것이다. 이들 예에서, 화이트 포인트, 전역 압축 및 그 밖의 다른 기능들은 설명의 간략화를 위해 널 오퍼레이션으로 디폴트된다.
도 5a에서, RGB 또는 sRGB 소스 장치 컬러는 소스 장치에 존재한다. 소스 장치와 수신 장치 간의 장치 링크 프로파일을 계산한 후, 본 발명은 소스 장치 RGB가 CIEXYZ라고 가정하여 X 시스템을 속이는 동작을 한다. 그 다음, 장치 의존형 수신 컬러는 인수로서 장치 링크 프로파일을 포함하는 fromCIEXYZ 함수를 통해 생성된다.
도 5b에서, CMYK 소스 장치 컬러는 소스 장치에 존재한다. 소스 장치와 수신 장치 간의 장치 링크 프로파일을 계산한 후, 본 발명은 소스 장치 RGB가 cmsPad XcmsColor 타입이라고 가정하여 X 시스템을 속이는 동작을 한다. 그 다음, 장치 의존형 수신 컬러는 인수로서 장치 링크 프로파일을 포함하는 fromCIEXYZ 함수를 통해 생성된다.
도 5c에서, scRGB 소스 장치 컬러는 소스 장치에 존재한다. 소스 장치와 수신 장치 간의 장치 링크 프로파일을 계산한 후, 장치 의존형 수신 컬러는 장치 링크 프로파일을 포함하는 fromCIEXYZ 함수를 통해 생성된다. 대안적으로, 확대된 장치 의존형 수신 컬러는 장치 링크 프로파일을 포함하는 fromCIEXYZ 함수를 통해 생성된다. 이러한 변환에서는, Xcmscolors가 부호가 붙지 않은 쇼트들(shorts)이고, scRGB가 부호가 있는 플로트들(floats)이라는 사실에 보상이 제공된다. 선택적으로, 색조 압축은 따로 추가적인 3개의 1-D LUT를 통해 달성될 수 있다.
RIMM RGB(EK/PIMA), ROMM RGB(EK/PIMA), esRGB(HP/PIMA)와 같은 다른 컬러 매니지먼트 해결책은 상기 도 5c의 예를 사용하여 지원될 수 있다. 본 발명의 상기 예의 각각에 있어서, X 함수들인, fromCIEXYZ 및 toCIEXYZ는 데이터를 현대의 컬러 매니지먼트 시스템으로부터 수신한 것으로 속거나 위장된다.
API들을 위장(spoofing)하는 것에 관한 상세에 관해서, 여기에서는 2개의 무제한적인 대안이 제안된다. 첫째, 장치 독립형 어플리케이션 컨텐트에서 장치 의존형 컬러 값으로 이동할 때, 본 발명은 fromCIEXYZ 함수를 위장하여, 장치 의존형 컬러 값에서 CIEXYZ로 실제로 변환시킨 다음에, 3x3 매트릭스 및 1-D LUT를 사용하여 특정 출력 장치의 특성을 나타낸다. 장치 의존형(dd)에서 장치 독립형(di) 값으로 변환시키기 위해서, 이 프로세스는 역으로 되고, toCIEXYZ API가 대신 위장된다.
대안적으로, 장치 독립형 어플리케이션 컨텐트에서 장치 의존형 컬러 값으로 이동할 때, 본 발명은 fromCIEXYZ API를 위장하여 장치 의존형 컬러 값에서 CIEXYZ로 실제로 변환시키고, 그 다음에 3x3 매트릭스를 항등(identity) 매트릭스로 설정하고 1-D LUT를 항등 LUT로 설정하여, 매트릭스와 LUT로 특성을 나타낼 수 없는 복잡한 수신 장치를 지원한다. 장치 독립형(dd)에서 장치 의존형(di) 값으로 변환시키기 위해, 이 프로세스는 역으로 되고, toCIEXYZ API가 대신 위장된다.
여기에서 이용된 바와 같이, "spoof fromCIEXYZ", 또는 "spoof toCIEXYZ"는 프로토콜 디폴트 공급 함수에 대한 포인터를, ICC 호환 컬러 매니지먼트 모듈로 실제 불러내어 컬러를 dd에서di로, 또는 dd에서 dd로 변환시키는 함수로 대체한다는 것을 의미한다.
상술된 바와 같이, 본 발명의 예시적인 실시예가 여러 가지 컴퓨팅 장치 및 네트워크 아키텍쳐와 관련하여 설명되었지만, 기본적인 개념은 컬러 매니지먼트에 바람직한 소정의 컴퓨팅 장치 또는 시스템에 적용될 수 있다. 그러므로, 본 발명에 따라 개선된 신호 프로세싱을 제공하는 기술은 여러 가지 어플리케이션 및 장치에 적용될 수 있다. 예를 들어, 본 발명의 알고리즘(들)은 하나의 컴퓨팅 장치의 운영 체제에 적용되어, 장치상의 분리된 오브젝트로서, 다른 오브젝트의 부분으로서, 서버로부터 다운로드가능한 오브젝트로서, 하나의 장치 또는 오브젝트와 네트워크 간의 "매개자"로서, 분산된 오브젝트로서 제공될 수 있다. 예시적인 프로그래밍 언어, 명칭 및 예들이 여러 가지 선택종류를 대표하여 여기에서 선택되었는데, 이들 언어, 명칭 및 예들은 제한하고자 하는 것은 아니다. 본 분야에 숙련된 기술자들은 본 발명에 의해 달성된 것과 동일, 유사 또는 대등한 컬러 매니지먼트를 달성하는 오브젝트 코드를 제공하는 방법이 많이 있다는 것을 알 수 있을 것이다.
여기에 설명된 여러 가지 기술은 하드웨어 또는 소프트웨어와 관련하여, 또는 적절한 경우에 이 둘의 조합으로 실현될 수도 있다. 그러므로, 본 발명의 방법 및 장치, 또는 그것의 어떤 실시양상 또는 부분들은 플로피 디스켓, CD-ROM, 하드 드라이브, 또는 소정의 다른 기계-판독가능 저장 매체와 같은 유형의 매체로 구현된 프로그램 코드(즉, 명령어)의 형태를 취할 수 있으며, 프로그램 코드가 컴퓨터와 같은 기계로 로드되거나 기계에 의해 실행될 때, 그 기계는 본 발명을 실시하는 장치가 된다. 프로그램가능한 컴퓨터 상에서 프로그램 코드를 실행하는 경우에, 컴퓨팅 장치는 보통 프로세서, 이 프로세서에 의해 판독가능한 저장 매체(휘발성 및 불휘발성 메모리 및/또는 저장 소자를 포함), 최소한 하나의 입력 장치 및 최소한 하나의 출력 장치를 포함할 것이다. 예를 들어 데이터 프로세싱 API 등을 사용하여 본 발명의 신호 프로세싱 서비스를 이용할 수 있는 하나 이상의 프로그램은 하이레벨 절차의 또는 오브젝트 지향의 프로그래밍 언어로 실현되어 컴퓨터 시스템과 통신하는 것이 바람직하다. 그러나, 프로그램(들)은 원한다면 어셈블리 또는 기계어로 실현될 수 있다. 어떤 경우에, 언어는 컴파일되거나 번역된 언어일 수도 있고, 하드웨어 구현들과 결합될 수도 있다.
또한, 본 발명의 방법 및 장치는 전선 또는 케이블을 통하거나, 광섬유를 통하거나, 또는 소정의 다른 형태의 전송을 통하는 것과 같이, 어떤 전송 매체를 통해 전송된 프로그램 코드의 형태로 구현된 통신을 통해 실시될 수도 있고, 여기에서 프로그램 코드가 EPROM과 같은 기계로 수신되어 로드되고, 이 기계에 의해 실행될 때, 게이트 어레이, 프로그램가능 논리 장치(PLD), 클라이언트 컴퓨터, 비디오 레코더 등, 또는 상기 예시적인 실시예에서 설명된 신호 프로세싱 능력을 갖는 수신 기계는 본 발명을 실시하는 장치가 된다. 범용 프로세서 상에서 실현될 때, 프로그램 코드는 프로세서와 결합하여 본 발명의 기능을 불러내는 동작을 하는 독특한 장치를 제공한다. 부수적으로, 본 발명과 관련하여 사용된 소정의 저장 기술은 변함없이 하드웨어와 소프트웨어의 조합이 될 수도 있다.
본 발명은 여러 가지 특징의 양호한 실시예와 관련하여 설명되었지만, 다른 유사한 실시예들이 사용될 수도 있고, 본 발명을 벗어나지 않고서 본 발명의 동일한 기능을 실행하도록 상술된 실시예에 변경 및 첨가가 이루어질 수도 있다는 것을 알 수 있을 것이다. 예를 들어, 본 발명의 예시적인 네트워크 환경은 피어 투 피어 네트워킹된 환경과 같은 네트워킹된 환경의 상황에서 설명되었지만, 본 분야에 숙련된 기술자들은 본 발명이 이것에 제한되지 않고, 여기에 설명된 방법이 게이밍 콘솔, 포켓용 컴퓨터, 포터블 컴퓨터와 같은 소정의 컴퓨팅 장치 또는 환경에 유선이든 무선이든 적용할 수 있으며, 통신망을 통해 접속되어 네트워크 간에 상호작용하는 소정 수의 컴퓨팅 장치에 적용될 수도 있다는 것을 인식할 수 있을 것이다. 또한, 특히 무선 네트워킹된 장치의 수가 계속 늘어남에 따라, 포켓용 장치 운영 체제 및 그 밖의 어플리케이션 특정 운영 체제를 포함하여 여러 가지 컴퓨터 플랫폼이 심사숙고되어야 한다는 것이 강조되어야 한다. 또한, 본 발명은 다수의 프로 세싱 칩 또는 장치 내에서 실현되거나 또는 이들 사이를 교차하여 실현될 수 있으며, 이와 유사하게 다수의 장치들 사이를 교차하여 저장이 실행될 수도 있다. 그러므로, 본 발명은 소정의 한 실시예에 제한되어서는 안되고, 첨부된 청구범위에 따라 그 넓이와 범위가 해석되어야 한다.

Claims (56)

  1. 컬러 매니지먼트를 제공하는 방법에 있어서,
    최소한 하나의 수신 장치(destination device)로의 트랜슬레이션(translation)을 위해 장치 독립형 컬러 데이터를 최소한 하나의 소스 장치로부터 수신하는 단계;
    상기 최소한 하나의 소스 장치와 상기 최소한 하나의 수신 장치 사이의 최소한 하나의 컬러 특성 차(differential)를 나타내는 장치 링크 프로파일을 생성하는 단계;
    컬러 매니지먼트 시스템의 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 위장(spoofing)하는 단계; 및
    상기 최소한 하나의 수신 장치에 대한 수신 장치 의존형 컬러 값을 생성하기 위해 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 불러내는 단계
    를 포함하는 컬러 매니지먼트 제공 방법.
  2. 제1항에 있어서, 상기 위장 단계는 최소한 하나의 X11 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 단계를 포함하는 컬러 매니지먼트 제공 방법.
  3. 제2항에 있어서, 상기 위장 단계는 toCIEXYZ 함수 및 fromCIEXYZ 함수 중에서 최소한 하나의 함수를 위장하는 단계를 포함하는 컬러 매니지먼트 제공 방법.
  4. 제1항에 있어서, 상기 위장 단계는 상기 장치 링크 프로파일을 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수에 제공하는 단계를 포함하는 컬러 매니지먼트 제공 방법.
  5. 제1항에 있어서, 상기 최소한 하나의 소스 장치 및 상기 최소한 하나의 수신 장치는 컴퓨팅 장치 및 소프트웨어 오브젝트 중에서 최소한 하나를 포함하는 컬러 매니지먼트 제공 방법.
  6. 제1항에 있어서, 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 불러내는 상기 단계를 수행한 후, 제2 컬러 매니지먼트 시스템의 최소한 하나의 함수를 불러내는 단계를 더 포함하는 컬러 매니지먼트 제공 방법.
  7. 제6항에 있어서, 상기 제2 컬러 매니지먼트 시스템의 최소한 하나의 함수를 불러내는 단계는 CMM(Color Management Modules)을 불러내는 단계를 포함하는 컬러 매니지먼트 제공 방법.
  8. 제1항에 있어서, 상기 장치 독립형 컬러 데이터는 표준 컬러 스페이스(sRGB) 데이터, 표준 확대 컬러 스페이스(scRGB) 데이터, 국제 컬러 컨소시움(ICC) 프로파일 데이터, 및 시안, 마젠타, 옐로우 및 블랙(CMYK) 데이터 중에서 최소한 하나를 포함하는 컬러 매니지먼트 제공 방법.
  9. 제1항에 있어서, 상기 장치 독립형 컬러 데이터는 scRGB, RIMM RGB (EK/PIMA), ROMM RGB (EK/PIMA) 및 esRGB (HP/PIMA) 컬러 데이터 중에서 최소한 하나를 포함하는 컬러 매니지먼트 제공 방법.
  10. 제9항에 있어서, 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 불러내는 상기 단계를 수행한 후, 부호가 붙은 부동 소숫점 수를 부호가 붙지 않은 쇼트(short) 데이터 타입의 데이터로 변환하는 단계를 더 포함하는 컬러 매니지먼트 제공 방법.
  11. 제9항에 있어서, 상기 불러내는 단계는 상기 장치 링크 프로파일 내의 3개의 1-D 룩업 테이블(LUT)을 통해 색조 압축을 제공하는 단계를 포함하는 컬러 매니지먼트 제공 방법.
  12. 제1항에 있어서, 상기 위장 단계는,
    장치 의존형 컬러 값에서 CIEXYZ 값으로 변환시키기 위해 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 단계; 및
    (1) 특정 출력 장치의 특성을 나타내기 위해 상기 장치 링크 프로파일 내의 3x3 매트릭스 및 1-D 룩업 테이블(LUT)을 이용하는 단계, 및 (2) 상기 장치 링크 프로파일의 3x3 매트릭스를 항등(identity) 매트릭스로 설정하고 상기 장치 링크 프로파일의 1-D LUT를 항등 LUT로 설정하는 단계 중 하나의 단계를 행하는 단계
    를 포함하는 컬러 매니지먼트 제공 방법.
  13. 삭제
  14. 제1항에 있어서, 상기 위장 단계는 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수에 공급된 프로토콜 디폴트에 대한 포인터를, ICC 호환가능 컬러 매니지먼트 모듈을 불러내는 함수로 대체하는 단계를 포함하는 컬러 매니지먼트 제공 방법.
  15. 제1항의 컬러 매니지먼트 제공 방법을 제공하기 위한 코프로세싱 장치.
  16. 제1항의 컬러 매니지먼트 제공 방법을 실행하기 위한 컴퓨터 실행가능한 명령어가 기록된 컴퓨터 판독가능 기록매체.
  17. 제1항의 컬러 매니지먼트 제공 방법을 실행하기 위한 수단을 포함하는 컴퓨팅 장치.
  18. 컬러 매니지먼트를 제공하기 위한 컴퓨터 판독가능 매체에 있어서,
    최소한 하나의 수신 장치로의 트랜슬레이션을 위해 장치 독립형 컬러 데이터를 최소한 하나의 소스 장치로부터 수신하는 단계;
    상기 최소한 하나의 소스 장치와 상기 최소한 하나의 수신 장치 사이의 최소한 하나의 컬러 특성 차를 나타내는 장치 링크 프로파일을 생성하는 단계;
    컬러 매니지먼트 시스템의 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 단계; 및
    상기 최소한 하나의 수신 장치에 대한 수신 장치 의존형 컬러 값을 생성하기 위해 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 불러내는 단계
    를 포함하는 방법을 실행하기 위한 컴퓨터 실행가능 명령어(instructions)가 저장되어 있는 컴퓨터 판독가능 매체.
  19. 제18항에 있어서, 상기 위장 단계는 최소한 하나의 X11 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 단계를 포함하는 컴퓨터 판독가능 매체.
  20. 제19항에 있어서, 상기 위장 단계는 toCIEXYZ 함수 및 fromCIEXYZ 함수 중에서 최소한 하나의 함수를 위장하는 단계를 포함하는 컴퓨터 판독가능 매체.
  21. 제18항에 있어서, 상기 위장 단계는 상기 장치 링크 프로파일을 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수에 제공하는 단계를 포함하는 컴퓨터 판독가능 매체.
  22. 제18항에 있어서, 상기 최소한 하나의 소스 장치 및 상기 최소한 하나의 수신 장치는 컴퓨팅 장치 및 소프트웨어 오브젝트 중에서 최소한 하나를 포함하는 컴퓨터 판독가능 매체.
  23. 제18항에 있어서, 상기 방법은, 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 불러내는 상기 단계를 수행한 후, 제2 컬러 매니지먼트 시스템의 최소한 하나의 함수를 불러내는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  24. 제23항에 있어서, 상기 제2 컬러 매니지먼트 시스템의 최소한 하나의 함수를 불러내는 단계는 CMM(Color Management Modules)을 불러내는 단계를 포함하는 컴퓨터 판독가능 매체.
  25. 제18항에 있어서, 상기 장치 독립형 컬러 데이터는 표준 컬러 스페이스(sRGB) 데이터, 표준 확대 컬러 스페이스(scRGB) 데이터, 국제 컬러 컨소시움(ICC) 프로파일 데이터, 및 시안, 마젠타, 옐로우 및 블랙(CMYK) 데이터 중에서 최소한 하나를 포함하는 컴퓨터 판독가능 매체.
  26. 제18항에 있어서, 상기 장치 독립형 컬러 데이터는 scRGB, RIMM RGB (EK/PIMA), ROMM RGB (EK/PIMA) 및 esRGB (HP/PIMA) 컬러 데이터 중에서 최소한 하나를 포함하는 컴퓨터 판독가능 매체.
  27. 제26항에 있어서, 상기 방법은, 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 불러내는 상기 단계를 수행한 후, 부호가 붙은 부동 소숫점 수를 부호가 붙지 않은 쇼트 데이터 타입의 데이터로 변환하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  28. 제26항에 있어서, 상기 불러내는 단계는 상기 장치 링크 프로파일 내의 3개의 1-D 룩업 테이블(LUT)을 통해 색조 압축을 제공하는 단계를 포함하는 컴퓨터 판독가능 매체.
  29. 제18항에 있어서, 상기 위장 단계는
    장치 의존형 컬러 값에서 CIEXYZ 값으로 변환시키기 위해 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 단계; 및
    (1) 특정 출력 장치의 특성을 나타내기 위해 상기 장치 링크 프로파일 내의 3x3 매트릭스 및 1-D 룩업 테이블(LUT)을 이용하는 단계, 및 (2) 상기 장치 링크 프로파일의 3x3 매트릭스를 항등 매트릭스로 설정하고 상기 장치 링크 프로파일의 1-D LUT를 항등 LUT로 설정하는 단계 중, 하나의 단계를 행하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  30. 삭제
  31. 제18항에 있어서, 상기 위장 단계는 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수에 공급된 프로토콜 디폴트에 대한 포인터를, ICC 호환가능한 컬러 매니지먼트 모듈을 불러내는 함수로 대체하는 단계를 포함하는 컴퓨터 판독가능 매체.
  32. 컬러 매니지먼트와 관련하여 사용하기 위한 컴퓨팅 장치에 있어서,
    최소한 하나의 수신 장치로의 트랜슬레이션을 위해 장치 독립형 컬러 데이터를 최소한 하나의 소스 장치로부터 수신하는 입력 컴포넌트(component);
    상기 최소한 하나의 소스 장치와 상기 최소한 하나의 수신 장치 사이의 최소한 하나의 컬러 특성 차를 나타내는 장치 링크 프로파일을 생성하는 프로세싱 컴포넌트;
    컬러 매니지먼트 시스템의 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 위장 컴포넌트(spoof component); 및
    상기 최소한 하나의 수신 장치에 대한 수신 장치 의존형 컬러 값을 생성하기 위해 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 불러내는 출력 컴포넌트
    를 포함하는 컴퓨팅 장치.
  33. 제32항에 있어서, 상기 위장 컴포넌트는 최소한 하나의 X11 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 컴퓨팅 장치.
  34. 제33항에 있어서, 상기 위장 컴포넌트는 toCIEXYZ 함수 및 fromCIEXYZ 함수 중에서 최소한 하나의 함수를 위장하는 컴퓨팅 장치.
  35. 제32항에 있어서, 상기 위장 컴포넌트는 상기 장치 링크 프로파일을 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수에 제공하는 컴퓨팅 장치.
  36. 제32항에 있어서, 상기 최소한 하나의 소스 장치 및 최소한 하나의 수신 장치는 컴퓨팅 장치 및 소프트웨어 오브젝트 중에서 최소한 하나를 포함하는 컴퓨팅 장치.
  37. 제32항에 있어서, 제2 컬러 매니지먼트 시스템의 최소한 하나의 함수를 불러내는 호출(invocation) 컴포넌트를 더 포함하는 컴퓨팅 장치.
  38. 제37항에 있어서, 상기 제2 컬러 매니지먼트 시스템의 최소한 하나의 함수를 불러내는 호출 컴포넌트는 CMM(Color Management Modules)을 불러내는 것을 포함하는 컴퓨팅 장치.
  39. 제32항에 있어서, 상기 장치 독립형 컬러 데이터는 표준 컬러 스페이스(sRGB) 데이터, 표준 확대 컬러 스페이스(scRGB) 데이터, 국제 컬러 컨소 시움(ICC) 프로파일 데이터, 및 시안, 마젠타, 옐로우 및 블랙(CMYK) 데이터 중에서 최소한 하나를 포함하는 컴퓨팅 장치.
  40. 제32항에 있어서, 상기 장치 독립형 컬러 데이터는 scRGB, RIMM RGB (EK/PIMA), ROMM RGB (EK/PIMA) 및 esRGB (HP/PIMA) 컬러 데이터 중에서 최소한 하나를 포함하는 컴퓨팅 장치.
  41. 제40항에 있어서, 부호가 붙은 부동 소숫점 수를 부호가 붙지 않은 쇼트 데이터 타입의 데이터로 변환하는 변환 컴포넌트를 더 포함하는 컴퓨팅 장치.
  42. 제40항에 있어서, 상기 출력 컴포넌트는 상기 장치 링크 프로파일 내의 3개의 1-D 룩업 테이블(LUT)을 통해 색조 압축을 제공하는 컴퓨팅 장치.
  43. 제32항에 있어서, 상기 위장 컴포넌트는 장치 의존형 컬러 값에서 CIEXYZ 값으로 변환시키기 위해 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 위장하고; (1) 특정 출력 장치의 특성을 나타내기 위해 상기 장치 링크 프로파일 내의 3x3 매트릭스 및 1-D 룩업 테이블(LUT)을 이용하고, (2) 상기 장치 링크 프로파일의 3x3 매트릭스를 항등 매트릭스로 설정하고 상기 장치 링크 프로파일의 1-D LUT를 항등 LUT로 설정하는 것 중에서, 한가지를 행하는 컴퓨팅 장치.
  44. 삭제
  45. 제32항에 있어서, 상기 위장 컴포넌트는 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수에 공급된 프로토콜 디폴트에 대한 포인터를, ICC 호환 컬러 매니지먼트 모듈을 불러내는 함수로 대체하는 컴퓨팅 장치.
  46. 컬러 매니지먼트를 제공하는 방법에 있어서,
    최소한 하나의 수신 장치로의 트랜슬레이션을 위해 장치 독립형 컬러 데이터를 최소한 하나의 소스 장치로부터 수신하는 단계;
    상기 최소한 하나의 소스 장치와 상기 최소한 하나의 수신 장치 사이의 최소한 하나의 컬러 특성 차를 나타내는 장치 링크 프로파일을 생성하는 단계;
    최소한 하나의 X11 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 단계; 및
    상기 최소한 하나의 수신 장치에 대한 수신 장치 의존형 컬러 값을 생성하기 위해 상기 최소한 하나의 X11 어플리케이션 프로그래밍 인터페이스 함수를 불러내는 단계
    를 포함하는 컬러 매니지먼트 제공 방법.
  47. 제46항에 있어서, 상기 위장 단계는 toCIEXYZ 함수 및 fromCIEXYZ 함수 중에서 최소한 하나의 함수를 위장하는 단계를 포함하는 컬러 매니지먼트 제공 방법.
  48. 제46항에 있어서, 상기 위장 단계는 상기 장치 링크 프로파일을 최소한 하나의 X11 어플리케이션 프로그래밍 인터페이스 함수에 제공하는 단계를 포함하는 컬러 매니지먼트 제공 방법.
  49. 제46항에 있어서, 상기 최소한 하나의 X11 어플리케이션 프로그래밍 인터페이스 함수를 불러내는 상기 단계를 수행한 후, CMM(Color Management Modules) 시스템의 최소한 하나의 함수를 불러내는 단계를 더 포함하는 컬러 매니지먼트 제공 방법.
  50. 제46항에 있어서, 상기 위장 단계는
    장치 의존형 컬러 값에서 CIEXYZ 값으로 변환시키기 위해 상기 최소한 하나의 X11 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 단계; 및
    (1) 특정 출력 장치의 특성을 나타내기 위해 상기 장치 링크 프로파일 내의 3x3 매트릭스 및 1-D 룩업 테이블(LUT)을 이용하는 단계, 및 (2) 상기 장치 링크 프로파일의 3x3 매트릭스를 항등 매트릭스로 설정하고 상기 장치 링크 프로파일의 1-D LUT를 항등 LUT로 설정하는 단계 중, 하나의 단계를 행하는 단계
    를 포함하는 컬러 매니지먼트 제공 방법.
  51. 삭제
  52. 제46항에 있어서, 상기 위장 단계는 상기 최소한 하나의 X11 어플리케이션 프로그래밍 인터페이스 함수에 공급된 프로토콜 디폴트에 대한 포인터를 함수로 대체하는 단계를 포함하는 컬러 매니지먼트 제공 방법.
  53. 컴퓨터 실행가능 명령어를 포함하는 다수의 컴퓨터-실행가능 모듈이 저장되어 있는, 컬러 매니지먼트를 제공하는 최소한 하나의 컴퓨터 판독가능 매체에 있어서, 상기 모듈은,
    최소한 하나의 수신 장치로의 트랜슬레이션을 위해 장치 독립형 컬러 데이터를 최소한 하나의 소스 장치로부터 수신하는 수단;
    상기 최소한 하나의 소스 장치와 상기 최소한 하나의 수신 장치 사이의 최소한 하나의 컬러 특성 차를 나타내는 장치 링크 프로파일을 생성하는 수단;
    컬러 매니지먼트 시스템의 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 수단; 및
    상기 최소한 하나의 수신 장치에 대한 수신 장치 의존형 컬러 값을 생성하기 위해 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 불러내는 수단
    를 포함하는 최소한 하나의 컴퓨터 판독가능 매체.
  54. 제53항에 있어서, 상기 위장 수단은 최소한 하나의 X11 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 최소한 하나의 컴퓨터 판독가능 매체.
  55. 컬러 매니지먼트와 관련하여 사용하기 위한 컴퓨팅 장치에 있어서,
    최소한 하나의 수신 장치로의 트랜슬레이션을 위해 장치 독립형 컬러 데이터를 최소한 하나의 소스 장치로부터 수신하는 수단;
    상기 최소한 하나의 소스 장치와 상기 최소한 하나의 수신 장치 사이의 최소한 하나의 컬러 특성 차를 나타내는 장치 링크 프로파일을 생성하는 수단;
    컬러 매니지먼트 시스템의 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 수단; 및
    상기 최소한 하나의 수신 장치에 대한 수신 장치 의존형 컬러 값을 생성하기 위해 상기 최소한 하나의 어플리케이션 프로그래밍 인터페이스 함수를 불러내는 수단
    을 포함하는 컴퓨팅 장치.
  56. 제55항에 있어서, 상기 위장 수단은 최소한 하나의 X11 어플리케이션 프로그래밍 인터페이스 함수를 위장하는 컴퓨팅 장치.
KR1020030022695A 2002-06-24 2003-04-10 컬러 매니지먼트를 제공하는 시스템 및 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 장치 KR100957942B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/179,823 2002-06-24
US10/179,823 US7184057B2 (en) 2002-06-24 2002-06-24 Systems and methods for providing color management

Publications (2)

Publication Number Publication Date
KR20040000317A KR20040000317A (ko) 2004-01-03
KR100957942B1 true KR100957942B1 (ko) 2010-05-13

Family

ID=22658133

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030022695A KR100957942B1 (ko) 2002-06-24 2003-04-10 컬러 매니지먼트를 제공하는 시스템 및 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 장치

Country Status (15)

Country Link
US (1) US7184057B2 (ko)
EP (1) EP1376532A3 (ko)
JP (1) JP4637458B2 (ko)
KR (1) KR100957942B1 (ko)
CN (1) CN100385435C (ko)
AU (1) AU2003203675B2 (ko)
BR (1) BR0301069A (ko)
CA (1) CA2424653A1 (ko)
MX (1) MXPA03004603A (ko)
MY (1) MY135081A (ko)
NO (1) NO327644B1 (ko)
PL (1) PL360752A1 (ko)
RU (1) RU2337392C2 (ko)
TW (1) TWI270799B (ko)
ZA (1) ZA200302808B (ko)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7289663B2 (en) * 2002-07-24 2007-10-30 Eastman Kodak Company Producing an extended color gamut luminance-chrominance digital image from a captured image
US7646817B2 (en) * 2003-03-28 2010-01-12 Microsoft Corporation Accelerating video decoding using a graphics processing unit
JP4336950B2 (ja) * 2003-05-15 2009-09-30 富士ゼロックス株式会社 画像処理装置
DE50311550D1 (de) * 2003-06-23 2009-07-09 Logo Beteiligungsges Mbh Verfahren zur Ausgabe eines digitalen Dokuments aus einer Farbmanagementlosen Anwendung auf einem Ausgabegerät, mit Farbkorrektur durch ein zusätzliches Programm-Modul
KR100839959B1 (ko) * 2003-09-01 2008-06-20 삼성전자주식회사 디스플레이장치
US7472398B2 (en) * 2003-11-17 2008-12-30 Hewlett-Packard Development Company, L.P. Method and system for hosting an application with a facade server
JP2005236356A (ja) * 2004-02-17 2005-09-02 Seiko Epson Corp カラーマッチングシステム及び表示装置
JP3931886B2 (ja) * 2004-03-30 2007-06-20 コニカミノルタビジネステクノロジーズ株式会社 デバイスリンクプロファイルの作成方法および装置並びに画像処理装置
US7602537B2 (en) * 2004-05-06 2009-10-13 Canon Kabushiki Kaisha Gamut mapping with primary color rotation
JP2005340926A (ja) * 2004-05-24 2005-12-08 Canon Inc 画像処理装置おける処理方法、画像処理装置
US7944593B2 (en) * 2004-09-09 2011-05-17 Infoprint Solutions Company, Llc Method and apparatus for efficient processing of color conversion
JP5676070B2 (ja) 2004-11-01 2015-02-25 テクニカラー インコーポレイテツド 拡張された色空間コンテンツのマスタリングおよび配信を行う方法およびシステム
KR100647954B1 (ko) * 2005-01-07 2006-11-23 엘지전자 주식회사 화질 개선부가 구비된 이동 단말기 및 이동 단말기표시장치 화질 개선 방법
US20070035752A1 (en) * 2005-08-15 2007-02-15 Microsoft Corporation Hardware-accelerated color data processing
KR100736939B1 (ko) * 2005-10-08 2007-07-10 삼성전자주식회사 지능형 색역 관리 방법
WO2007078563A2 (en) 2005-12-21 2007-07-12 Thomson Licensing Constrained color palette in a color space
EP1838083B1 (en) * 2006-03-23 2020-05-06 InterDigital CE Patent Holdings Color metadata for a downlink data channel
JP4823051B2 (ja) * 2006-12-21 2011-11-24 キヤノン株式会社 結合ルックアップテーブルを生成する方法、画像処理装置、画像形成装置
JP4608509B2 (ja) * 2007-03-14 2011-01-12 セイコーエプソン株式会社 合成ルックアップテーブル作成装置、合成ルックアップテーブル作成方法および印刷装置
JP5025323B2 (ja) * 2007-05-10 2012-09-12 キヤノン株式会社 色処理装置および方法
US7916341B2 (en) * 2007-11-29 2011-03-29 Canon Kabushiki Kaisha Generating an Interim Connection Space for spectral data
US7986829B2 (en) * 2007-11-29 2011-07-26 Canon Kabushiki Kaisha Generating a transformed interim connection space for spectral data
US7940423B2 (en) * 2007-11-30 2011-05-10 Canon Kabushiki Kaisha Generating a device independent interim connection space for spectral data
US8009906B2 (en) * 2007-12-11 2011-08-30 Canon Kabushiki Kaisha Spectral gamut mapping based on a colorimetric gamut mapping
US8098400B2 (en) * 2008-01-23 2012-01-17 Canon Kabushiki Kaisha Gamut mapping in spectral space based on an objective function
EP2109304A1 (en) * 2008-04-07 2009-10-14 Océ-Technologies B.V. Color management method, module, and program product, and printer ussing said method
US10129513B2 (en) 2008-08-28 2018-11-13 Thomson Licensing Color metadata for a downlink data channel
US8490026B2 (en) * 2008-10-27 2013-07-16 Microsoft Corporation Painting user controls
JP2011081030A (ja) * 2009-10-02 2011-04-21 Tani Electronics Corp 検索型カラー暗号化ファイルの構成方法および検索型カラー暗号化ファイルシステム
TWI415104B (zh) * 2010-02-05 2013-11-11 Marketech Int Corp 顯示面板之色純度的調校方法、調校系統以及具有該已調校的顯示面板之顯示裝置
US8610739B2 (en) 2010-04-12 2013-12-17 Nvidia Corporation Graphics processing unit based color management of output devices
US9521298B2 (en) * 2010-07-13 2016-12-13 Red Hat, Inc. Color management system
LT3595281T (lt) * 2011-05-27 2022-05-25 Dolby Laboratories Licensing Corporation Spalvų kontrolės keičiamo mastelio sistemos, apimančios kintamo lygio metaduomenis
RS64021B1 (sr) * 2011-12-06 2023-03-31 Dolby Laboratories Licensing Corp Računarski program i računarski čitljiv medijum koji ima skladišten tok bitova za poboljšanje razmene slikovnih podataka baziranih na perceptualnoj nelinearnosti osvetljenosti kroz različita svojstva displeja
US10242650B2 (en) 2011-12-06 2019-03-26 Dolby Laboratories Licensing Corporation Perceptual luminance nonlinearity-based image data exchange across different display capabilities
KR101517515B1 (ko) * 2013-02-04 2015-05-04 주식회사 케이비데이타시스템 Qr 코드를 이용한 즉시 결제 시스템 및 방법
US10078436B2 (en) * 2015-02-25 2018-09-18 Htc Corporation User interface adjusting method and apparatus using the same
CN105302854B (zh) * 2015-09-20 2019-03-26 杭州电子科技大学 一种移动终端图像颜色再现一致性的方法
US9858686B2 (en) * 2016-02-10 2018-01-02 Google Llc Dynamic color determination for user interface components of a video player
US10674043B2 (en) 2016-07-08 2020-06-02 Hewlett-Packard Development Company, L.P. Color table compression
CN109155810B (zh) * 2016-07-08 2020-12-01 惠普发展公司,有限责任合伙企业 颜色查找表压缩
KR200485483Y1 (ko) 2017-07-19 2018-01-12 이병한 기능성 공용 옷장
WO2020100200A1 (ja) * 2018-11-12 2020-05-22 Eizo株式会社 画像処理システム、画像処理装置、およびコンピュータープログラム
JP7447821B2 (ja) * 2019-02-14 2024-03-12 大日本印刷株式会社 医療機器用色修正装置
WO2023277878A1 (en) * 2021-06-29 2023-01-05 Hewlett-Packard Development Company, L.P. Color gamut mapping
KR20230007752A (ko) 2021-07-06 2023-01-13 주식회사 아트인가구 기능성 공용 옷장

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0998299A (ja) * 1995-10-02 1997-04-08 Canon Inc 画像処理装置及び方法
JPH10322566A (ja) 1997-05-21 1998-12-04 Canon Inc 画像処理装置及び画像処理方法
JP2001103331A (ja) 1999-07-12 2001-04-13 Canon Inc カラー画像データ管理方法及び装置
JP2001218079A (ja) 1999-11-15 2001-08-10 Canon Inc 色管理システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754184A (en) * 1993-01-06 1998-05-19 Eastman Kodak Company Digital color system and method which provides a visual match across different input and output viewing conditions
US6362808B1 (en) * 1997-07-03 2002-03-26 Minnesota Mining And Manufacturing Company Arrangement for mapping colors between imaging systems and method therefor
US6307961B1 (en) * 1997-07-31 2001-10-23 Pgi Graphics Imaging Llc User-interactive corrective tuning of color profiles
EP1079606A3 (en) 1999-08-11 2003-07-09 Canon Kabushiki Kaisha Color space adjustment for multiple different substrates

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0998299A (ja) * 1995-10-02 1997-04-08 Canon Inc 画像処理装置及び方法
JPH10322566A (ja) 1997-05-21 1998-12-04 Canon Inc 画像処理装置及び画像処理方法
JP2001103331A (ja) 1999-07-12 2001-04-13 Canon Inc カラー画像データ管理方法及び装置
JP2001218079A (ja) 1999-11-15 2001-08-10 Canon Inc 色管理システム

Also Published As

Publication number Publication date
CN1467655A (zh) 2004-01-14
US20030234793A1 (en) 2003-12-25
BR0301069A (pt) 2004-08-17
AU2003203675B2 (en) 2009-11-19
JP4637458B2 (ja) 2011-02-23
TWI270799B (en) 2007-01-11
RU2003110508A (ru) 2005-01-10
JP2004032700A (ja) 2004-01-29
PL360752A1 (en) 2003-12-29
CN100385435C (zh) 2008-04-30
EP1376532A3 (en) 2005-11-16
CA2424653A1 (en) 2003-12-24
NO20031558D0 (no) 2003-04-07
TW200402645A (en) 2004-02-16
MY135081A (en) 2008-01-31
NO327644B1 (no) 2009-09-07
RU2337392C2 (ru) 2008-10-27
US7184057B2 (en) 2007-02-27
NO20031558L (no) 2003-12-29
AU2003203675A1 (en) 2004-01-22
MXPA03004603A (es) 2004-01-22
ZA200302808B (en) 2003-10-14
KR20040000317A (ko) 2004-01-03
EP1376532A2 (en) 2004-01-02

Similar Documents

Publication Publication Date Title
KR100957942B1 (ko) 컬러 매니지먼트를 제공하는 시스템 및 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 장치
RU2389067C2 (ru) Системы и способы для проецирования содержимого с компьютерных устройств
JP3705617B2 (ja) 協同システムにおけるアプリケーション共用パレット管理の方法および装置
US5806081A (en) Method and system for embedding a device profile into a document and extracting a device profile from a document in a color management system
KR20050031866A (ko) 원격 장치 매체 능력을 판정하는 시스템 및 방법
US20050091302A1 (en) Systems and methods for projecting content from computing devices
US6292166B1 (en) System and method for sharing diverse display types in a bit map sharing collaborative tool
US20090066717A1 (en) Color Management System that Enables Dynamic Balancing of Performance with Flexibility
US6483515B1 (en) Method and apparatus for displaying data patterns in information systems
JP2001103331A (ja) カラー画像データ管理方法及び装置
WO1996010882A1 (en) Method and system for color image compression in conjunction with color transformation techniques
US20070035751A1 (en) Gamut shape dependent color management system
GB2484736A (en) Connecting a display device via USB interface
US6795084B2 (en) Heuristic determination of color reproduction parameters
US7342682B2 (en) Incremental color transform creation
MXPA06002071A (es) Edicion de color interactiva voluminosa.
US20170201763A1 (en) Digital watermarking for securing remote display protocol output
AU3656799A (en) Method and apparatus of supporting a video protocol in a network environment
CN110574356A (zh) 动态色域可调整显示器
US9674405B2 (en) Output control system, output control method, and recording medium
WO2021018179A1 (zh) 文字特效处理方法及装置
US20130136345A1 (en) Creating a luminance effect using an icc profile
JP2003122544A (ja) プレビューサービス用サーバ装置

Legal Events

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

Payment date: 20130416

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140417

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160419

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 10