NO327644B1 - Systemer og fremgangsmater for a handtere farger - Google Patents

Systemer og fremgangsmater for a handtere farger Download PDF

Info

Publication number
NO327644B1
NO327644B1 NO20031558A NO20031558A NO327644B1 NO 327644 B1 NO327644 B1 NO 327644B1 NO 20031558 A NO20031558 A NO 20031558A NO 20031558 A NO20031558 A NO 20031558A NO 327644 B1 NO327644 B1 NO 327644B1
Authority
NO
Norway
Prior art keywords
color
data
function
interface function
connection profile
Prior art date
Application number
NO20031558A
Other languages
English (en)
Other versions
NO20031558D0 (no
NO20031558L (no
Inventor
Michael D Stokes
Adrian Secchia
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of NO20031558D0 publication Critical patent/NO20031558D0/no
Publication of NO20031558L publication Critical patent/NO20031558L/no
Publication of NO327644B1 publication Critical patent/NO327644B1/no

Links

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

Description

TEKNISK OMRÅDE
Foreliggende oppfinnelse er rettet mot systemer og fremgangsmåter for å håndtere farger. Mer spesielt er foreliggende oppfinnelse rettet mot systemer og fremgangsmåter for å håndtere farger i forbindelse med en rekke innretninger som har forskjellige fargevisningskarakteristikker.
BAKGRUNN FOR OPPFINNELSEN
Et fargerom er en modell for å representere farger i patentstyrets tre eller flere koordinater, f.eks. RGB-fargerommet som representerer farger uttrykt ved røde, grønne og blå koordinater.
For at en farge skal reproduseres på forutsigbar måte over forskjellige innretninger og materialer, må fargene beskrives på en måte som er uavhengig av den spesielle oppførselen til de mekanismer og materialer som brukes til å frembringe fargen. Farge-katodestrålerør (CRT) og fargeskrivere benytter f.eks. meget forskjellige mekanismer for å frembringe farge. For å håndtere denne oppgaven krever nåværende fremgangsmåter at farge må beskrives ved å benytte anord-ningsuavhengige fargekoordinater som så blir omformet til anordningsavhengige fargekoordinaterfor hver anordning. Fortiden utgjør selve anordningen mekanismen for omforming til det anordningsavhengige system.
I dette henseende er fargeforvaltning et uttrykk som beskriver en teknologi eller et system som omsetter fargene til et objekt, f.eks. bilder, grafikk eller tekst, fra deres aktuelle fargerom til fargerommet til utmatingsinnretninger slik som moni-torer, skrivere og lignende.
Tidligere understøttet operativsystemer farge ved å erklære understøttelse for et spesielt fargerom, f.eks. RGB; siden RGB imidlertid varierer mellom innretninger, ble farge ikke pålitelig reprodusert blant forskjellige innretninger.
Siden slike tradisjonelle fargeunderstøttelsesmidler var utilstrekkelige, ga forskjellige operativsystemer understøttelse for å benytte internasjonale farge-konsortiumsprofiler (ICC-profiler) for å karakterisere innretningsavhengige farger på en innretningsuavhengig måte. ICC-spesifikasjonen for karakterisering av en profil er allment tilgjengelig og kan f.eks. hentes fra ICC-nettsiden, dvs. www. color. org. ICC benytter profilene til innmatingsinnretningen som frembrakte et bilde, og utmatingsinnretningen som viste bildet, og lage en transformasjon som flytter bildet fra innmatingsinnretningens fargerom til utmatingsinnretningens fargerom. Selv om dette resulterte i meget nøyaktig farge, innebærer det også ekstra omkostninger for å transportere innmatingsinnretningens profil med bildet og kjø-ring av bildet gjennom transformasjonen.
Ytterligere teknikker ble så utviklet i et forsøk på å tilveiebringe mellomliggende innretningsuavhengige, standardiserte fargerom. Noen av disse fargeforvaltningsteknikkene finnes allerede i operativsystemer og anvendelser i dag, slik som MICROSOFT® WINDOWS®-operativsystemene og MICROSOFT®OFFICE®-plattformene. Andre fargerom enn ICC-fargerommet innbefatter standardfargerommet eller kort benevnt sRGB, International Engineering Consortium (IEC) spesifikasjon nr. 61966-2-1), som er blitt understøttet som en kjerneteknologi begyn-nende med WINDOWS98® og OFFICE2000®. Fargeforvaltningsteknikker har fort-satt å utvikle seg gjennom redigeringen av det utvidede standardfargerom eller scRGB som forkortelse (IEC-spesifikasjon nr. 61966-2-2).
Med integrasjon av ICC, sRGB og scRGB er det et antall oppgaver som krever løsning når det kommer til de forskjellige typer innmatings- og utmatings-datainnretninger som understøtter farge. For tiden er sRGB standardfargerommet i Windows, basert på standarden IEC 61966-2-1. En sRGB-tilpasset innretning må ikke tilveiebringe en profil eller annen understøttelse for fargeforvaltning for å virke bra.
I denne forbindelse har strukturene til sRGB-, scRGB- og ICC-fargerommene en fast og bestemt betydning, og er bakgrunnen for oppfinnelsen. Selv om henvisning til disse fargerommene har en betydning som utgjør tilstrekke-lig identifikasjon for enhver fagkyndig på området, følger likevel en generisk beskrivelse som kan supplementeres av en hvilken som helst av de allment tilgjengelige standardspesifikasjoner for de respektive fargerom.
RGB-standardfargerommet, sRGB, innbefatter endimensjonale oppslagstabeller (LUTer, Look Up Tables) som beskriver ikke-lineære relasjoner mellom den tonale responsen til RGB-oppfatningsrom og fysiske luminansrom, slik som CIEXYZ, en 3x3-matrise som beskriver de røde, grønne og blå primærfargene slik
s
de er relatert til ClEXYZ-verdier, hvitpunktverdien i sansingsmessige uttrykk, slik som D65 for en ClEXYZ-standard som korrelerer til dagslys som en fargetempera-tur på 6500 Kelvin og eventuelle betraktningsforhold slik som omgivende bak-
grunnslysstyrke som påvirker en sluttbrukers oppfatning av fargene til målinnret-ningen.
Det utvidede standardfargerom, scRGB, er det samme som sRGB, men verdiene kan utvides til utenfor fargenes synlige område.
En ICC-profil er typisk en metadata-struktur som innbefatter informasjon vedrørende innretningsavhengige farger når det gjelder deres ekvivalente visuelt sansede farger hos mennesker. I visse tilfeller kan ICC-profiler også fremskaffe omsettingsinformasjon mellom to forskjellige fargerom, uansett om de er farge-avhengige eller innretningsuavhengige.
X-protokollen blir utviklet i midten av 1980-årene som reaksjon på behovet for å fremskaffe et nettransparent grafisk brukergrensesnitt (GUI) primært for UNIX-operativsystemet. X sørger for visning og forvaltning av grafisk informasjon, omtrent på samme måte som MICROSOFT® WINDOWS® og IBM®'S Presentation Manager.
Hoveddifferansen mellom X-arkitekturen og fargeforvaltningsteknikkene til andre plattformer ligger i oppbyggingen av X-protokollen. Mens WINDOWS® og andre plattformer, slik som IBM's Presentation Manager ganske enkelt viser grafiske applikasjoner lokalt for PCen, distribuerer X-protokollen behandlingen av applikasjonene ved å spesifisere et klient/server-forhold ved applikasjonsnivået. "Hva skal gjøres"-delen av applikasjonen blir kalt en X-klient og er atskilt fra "hvordan skal det gjøres"-delen, fremvisningen, kalt X-serveren. X-klienter kjøres typisk på én fjerntliggende maskin som har beregningskraft i overflod, og vises på en X-server. Fordelen er en virkelig klientserver og distribuert behandling.
Som vist på fig. 1A, definerer X-protokollen en klient/server-relasjon mellom en applikasjon 210a, 210b og dens visning 240. For å oppfylle dette blir applikasjonen 210a, 210b kalt en X-klient, skilt fra visningsanordningen, kjent som X-serveren 240. X-klientene 210a, 210b innbefatter et X-bibliotek 220 og eventuelt en verktøymappe 230. X-serveren 240 innbefatter innretningsdrivere 250 for å dri-ve en innretning 260. Som vist på fig. 1B, tilveiebringer X videre et felles vindus-system ved å spesifisere både et innretningsavhengig 200b og et innretningsuavhengig lag 200a og baserer protokollen på en asynkron nettprotokoll for kommunikasjon mellom en X-klient 210 og en X-server 240.1 virkeligheten skjuler X-protokollen de karakteristiske egenskapene til operativsystemet og underliggende maskinvare. Denne maskering av arkitektoniske- og tekniske forskjeller forenkler utvil-lingen av X-klienten og gir et springbrett for X Window-systemets høye bærbarhet.
Fordeler ved X-løsningen innbefatter: (1) lokal og nettbasert beregning ser ut som og føles som den samme for både brukeren og utvikleren, (2) X-serveren er meget bærbar når det gjelder å tillate understøttelse for en rekkes språk og operativsystemer, (3) X-klienter har også en høy grad av flyttbarhet, (4) X kan un-derstøtte en hvilken som helst dataordstrøm-orientert nettprotokoll, lokal eller fjerntliggende, og (5) applikasjoner underkastes ikke en ytelsesstraff.
Utformingen av X-protokollen spesifiserer således et klient/server-forhold mellom en applikasjon og dens visningsanordning. IX er programvaren som styrer en enkelt skjerm, tastaturet og musen kjent som en X-server. En X-klient er en applikasjon eller et brukerprogram som vises på X-serveren og som noen ganger kalles "applikasjonen". X-klienten sender anmodninger, f.eks. anmodninger om en tegning eller informasjon, til X-serveren. X-serveren aksepterer anmodninger fra mange klienter og sender tilbake svar til X-klienten som reaksjon på informasjonsanmodninger, en brukerinnmatning og feil.
X-serveren kjøres på den lokale maskin og aksepterer og demultiplekser nettbaserte eller lokale interprosess-kommunikasjonsbaserte (IPC) X-klientanmodninger og handler på bakgrunn av disse. X-serveren (1) viser tegnings-anmodninger på skjermen, (2) svarer på informasjonsanmodninger, (3) rapporterer feil i en anmodning, (4) forvalter tastatur-, mus- og visnings-innretningen, (5) multi-plekser tastatur- og mus-innmatning på nettet eller via en lokal IPC, til de respektive X-klienter, (6) skaper, tilordner og ødelegger vinduer og (7) skriver og tegner i vinduer.
X-klienten er hovedsakelig en applikasjon skrevet ved hjelp av biblioteker, f.eks. Xlib og Xt, som med fordel benytter X-protokollen. X-klienten (1) sender anmodninger til serveren, (2) mottar anmodninger fra serveren og (3) mottar feil fra serveren.
Når det gjelder anmodninger, retter X-klienter anmodninger til X-serveren om at en viss handling skal finne sted, f.eks. å lage et vindu. For å forbedre ytel-sen verken forventer X-klienten normalt eller venter på en reaksjon. I stedet blir anmodningen vanligvis overlatt til det pålitelige nettlag for levering. X-anmodninger er en hvilken som helst multippel av 4 byte (dataord).
Når det gjelder svar, reagerer X-serveren på visse X-klientanmodninger som krever et svar. Det skal bemerkes at ikke alle anmodninger krever et svar. X-svar er en hvilken som helst multippel av 4 byte med et minimum på 32 byte.
Med hensyn til hendelser videresender X-serveren til X-klienten en hendelse som applikasjonen forventer innbefattende tastatur- eller mus-innmating. For å minimalisere nettrafikk blir bare forventede hendelser sendt til X-klienter. X-hendelser har en lengde på 32 byte.
Når det gjelder feil rapporterer X-serveren feil i anmodninger til X-klienten. Feil er som en hendelse, men blir håndtert forskjellig. X-feil har samme størrelse som hendelser for å forenkle håndteringen av disse. De blir sendt til feilhåndte-ringsrutinen til X-klienten som 32 byte.
Utformingen av en X-server er i sterk grad avhengig av maskinvaren og operativsystemet til den plattformen som den implementeres på. Ettersom kapasitetene til de underliggende teknologier har øket, så har kraften og kapasitetene til X-serveren også øket.
Som nevnt illustrerer fig. 1A at det er et innretningsavhengig lag 200b i X-protokollen og et innretningsuavhengig lag 200a. Det innretningsavhengige lag 200b er ansvarlig for å lokalisere X-serveren for det naturlig forekommende miljø, være seg WINDOWS eller Solaris, og for å skifte om dataord fra maskiner med forskjellig dataord-rekkefølge, og dataord-rekkefølge er notert i hver X-anmodning. Lag 200b skjuler de arkitektoniske differanser i maskinvare og operativsystemer og opprettholder også avhengigheter i innretningsdrivanordninger for tastaturet, musen og videoen.
For en enkeltkjedet (singelthreaded) arkitektur er X-serveren en eneste sekvensiell prosess som benytter den naturlige tidsrammearkitekturen for å plan-legge demultiplekseringsanmodninger, multiplekseringssvar, hendelser og feil blant X-klienter.
For en flerkjedet arkitektur er X-serveren en flerkjedet prosess som er i stand til å utnytte beskaffenheten til operativsystemet ved å bryte opp jobber i flere tråder som operativsystemet og maskinvaren kan utføre. Flerkjedede miljøer for virkelig forhånds-disponert multioppgavekjøring gir X-serveren en høy grad av kraft.
Dagens X-servere innbefatter arbeidsstasjoner, X-terminaler og PC X-servere. Arbeidsstasjoner er kraftige nok til å håndtere komplekse beregningsbehov og vanligvis fremvise lokale X-klienter og en liten andel av nettets (fjerntliggende) X-klienter. X-terminaler er uintelligente terminaler med grafikkapasitet. X-server-programvare blir lastet ned fra en vert. X-terminaler er mindre kostbare enn arbeidsstasjoner og enklere å vedlikeholde. PC X-servere integrerer PC og fjerntliggende sapplikasjonsserver-tilgang til en felles spormaskin, noe som minsker eksisterende PC-investeringer og brukersett (bordmaskin-manipulering og tilgang), tilveiebringer lokal eller fjern vindusstyring etter brukerens ønsker og er lette å bruke.
X-konsortiet etablerte X11-grafikkarkitekturen. I løpet av de siste år har
borddatamaskinen utviklet seg fra et produktivitets- eller bruker-sentrert miljø til ett som er fokusert på sentralisert administrasjon omgitt av tilpasningen av nettprotokoll- og nettleser-baserte brukergrensesnitt. De seneste X Window-systemer fra X-konsortium, X11 R6.5.1 eller X11 eller X11R6 som forkortelse, har tatt seg av opp-gavene med å integrere X-applikasjoner og nettlesere for å muliggjøre hurtig utvik-ling uten omkoding og sikkerhet.
Det seneste slippet av X11-grafikkarkitekturen er allment tilgjengelig på verdensveven, i det minste fra X-konsortiet, www. x. ora. Kort sagt er X11R6-fargeforvaltningssystemet en grafikkprotokoll som via operasjoner som innbefatter hvitpunkt-tilpasning, fargerom-tilordning, matriseomforminger og endimensjonale oppslagstabeller, (1) understøtter fargeforvaltningsfunksjoner som er innpluggbare, og (2) understøtter omsetting av innretningsuavhengig applikasjonsinnhold til innretningsavhengige fargeverdier.
Når X-konsortiet opprettet X11, understøttet X11 en meget enkel farge-forvaltningsmekanisme for å omforme mellom RGB-standardfarger til RGB-farger spesifikke for fremvisningsinnretninger ved å benytte en 3x3-matrise og 3 endimensjonale oppslagstabeller. Med fremkomsten av X11R6 ble arkitekturen til X-fargeforvaltningssystemet (Xcms) inkorporert, basert på arbeid av Tektronix som utvidet den tidligere enkle løsning til å omfatte en fremgangsmåte for omforminger mellom en mangfoldighet av innretningsuavhengige fargerom til fremvisnings-innretning-avhengige farger. Denne løsningen fokuserte på tilføyelse av kromatisk hvitpunkt-tilpasningsunderstøttelse og fargerom-kompresjonsunderstøttelse.
X11 R6-fargeforvaltning inntar således en arbeidsflyt som begynner med tre innretningsuavhengige fargekanaler og omformer dem til fremvisningsanordnings-avhengige farger.
X11 R6-arkitekturen har således to fargeforvaltningsløsninger. Den første løsningen er den enkle 3x3-matrisen og tredimensjonale oppslagstabeller som vanligvis brukes til å karakterisere enkle visningsanordninger, slik som katode-strålerør (CRT). Den annen er Xcms som hovedsakelig består av en hvitpunkt-omforming og fargerom-kompresjon. Siden innføringen av Xcms har fargeforvaltning avansert og funnet løsninger begrenset til disse to teknikker er innadekvat, fordi de fleste antatte kilde- og destinasjons-innretninger hvor X11 bare understøt-ter en destinasjonsinnretning, og antar at kilden er innretningsuavhengig.
Moderne fargeforvaltningsløsninger basert på metadata-innretningskarak-teriserende profiler, slik som ICC, forutsetter også at arbeidsflyten begynner og ender med 3, 4 eller flere kanaler for innretningsavhengige farger. For tiden mulig-gjør X11 bare en arbeidsflyt for fargeforvaltning som begynner med tre innretningsuavhengige farger og ender med RGB-farger som er avhengige av visnings-innretningen. Moderne fargeforvaltningsløsninger basert på standard fargerom, slik som s-RGB og scRGB er lik moderne metadata-løsninger, bortsett fra at me-tadataene befinner seg i selve innretningen slik at arbeidsflyten synes å være full-stendig innretningsuavhengig utenfor kilde- og destinasjons-innretningene. Metadata-omformingen mellom innretningsfarger og standardfargerommet finnes hovedsakelig bare innenfor selve kilde- og destinasjons-maskinvaren. Dette mulig-gjør meget enklere brukererfaringer og utveksling av fargeinnhold i åpne nett, og muliggjør også kompleks arbeidsflyt bestående av mange applikasjoner eller brukere.
Andre tidligere kjente løsninger som finnes i dag, kan for tiden ikke integre-res med X11R6 og er derfor begrenset til en enkelt applikasjon. Klipp og lim, inter-ne applikasjoner og komplekse arbeidsflyter er følgelig meget begrenset med foreliggende løsninger. Dessuten er de foreliggende løsninger meget begrenset med hensyn til å understøtte cyan, magenta, gult og sort (CMYK) og andre fargerom. Det er således et behov for en mekanisme som gjør det mulig for den standard X11 R6-grafikkplattformen å understøtte den defacto industristandarden med metadata-fargeforvaltning som er bygd opp omkring ICC-, sRGB og scRGB-fargeforvaltningssystemene. Det er fremdeles et behov for en mekanisme som muliggjør understøttelse av moderne fargeforvaltningsstandarder, slik som ICC, sRGB og scRGB, som begynner og ender med innretningsavhengige farger.
Den nærmeste tidligere kjente teknikken går frem av patentdokumentet EP1079606 som beskriver et system og en metode for å regulere farge som trans-formeres mellom ulike systemer, hvor det i fremgangsmåten benyttes en fortol-kingstabell for å transformere farger mellom en enhet som har et avhengig-koordinatsystem og annen enhet som har et spesifikk-koordinatsystem.
OPPSUMMERING AV OPPFINNELSEN
I lys av det foregående tilveiebringer foreliggende oppfinnelse systemer og fremgangsmåter for å fremskaffe fargeforvaltning i forbindelse med en rekke beregningsinnretninger som har forskjellige fargevisningskarakteristikker. Mer spesielt tilveiebringer oppfinnelsen anordninger for å gjøre det mulig for X11-grafikkplattformen å understøtte fargeforvaltningssystemer, slik som ICC, sRGB og scRGB som begynner og ender med innretningsavhengige farger. Oppfinnelsen tilveiebringer også en anordning for å undersåtte CMYK-fargerom så
vel som utvidede RGB-fargerom innenfor X11R6, for derved å utvide den grafiske X11R6- plattformen til å understøtte enhver moderne fargeforvaltningsstandard.
I forskjellige utførelsesformer av oppfinnelsen er det fremskaffet fremgangsmåter, datamaskinlesbare media og beregningsinnretninger i forbindelse med fargeforvaltningssystemer. Utførelsesformene innbefatter mottakeruavhen-gige fargedata fra én eller flere kildeinnretninger for omsetting til én eller flere destinasjonsinnretninger, generering av en innretningsforbindelsesprofil som representerer fargekarakteristikk-forskjeller mellom kildeinnretningen eller kildeinnret-ningene og destinasjonsinnretningen eller destinasjonsinnretningene, ved å paro-diere minst én applikasjonsprogrammerende grensesnittfunksjon for et fargeforvaltningssystem og en påkallingsfunksjon for å generere destinasjonsinnretning-avhengige fargeverdier for én eller flere destinasjonsinnretninger.
Andre trekk og utførelsesformer av foreliggende oppfinnelse blir beskrevet nedenfor.
KORT BESKRIVELSE AV TEGNINGENE
Systemet og fremgangsmåtene for å tilveiebringe fargeforvaltning i samsvar med foreliggende oppfinnelse, blir nærmere beskrevet under henvisning til de ved-føyde tegninger, hvor: Fig. 1A og 1B illustrerer visse rudimentære aspekter ved X-protokollen fra X-konsortiet. Fig. 2A er et blokkskjema som representerer et eksempel på et nettmiljø med en rekke beregningsinnretninger hvor foreliggende oppfinnelse kan implementeres; Fig. 2B er et blokkskjema som representerer et eksempel på en ikke begrensende beregningsinnretning hvor foreliggende oppfinnelse kan implementeres; Fig. 3A illustrerer eksempler på virkemåten til X11R5 fargeforvaltningsarkitekturen: Fig. 3B illustrerer eksempler på virkemåten til X11 R6-fargeforvaltningsarkitekturen; Fig. 4A illustrerer ytterligere eksempler på aspekter ved X11 R6-fargeforvaltningsarkitekturen; Fig. 4B illustrerer eksempler på virkningen av fargeforvaltningsmodulen (CMM) i fargeforvaltningsarkitekturen; Fig. 4C illustrerer den fargeforvaltningsarkitektur som fremskaffes ved hjelp av foreliggende oppfinnelse; og Fig. 5A til 5C illustrerer eksempler på bruk av forliggende oppfinnelse i forbindelse med en rekke fargerom.
DETALJERT BESKRIVELSE AV OPPFINNELSEN
Oversikt
Foreliggende oppfinnelse tilveiebringer således fremgangsmåter og systemer for å implementere moderne fargeforvaltning ved å benytte en rekke for tiden anvendte løsninger innenfor de arkitektoniske begrensningene til X11R6-grafikkplattformen. Som nevnt forutsetter X11 en arbeidsflyt-arkitektur for fargeforvaltning som begynner med tre innretningsuavhengige farger og ender med vis-ningsinnretning-avhengige RGB-farger. Oppfinnelsen tilveiebringer således en mekanisme som muliggjør understøttelse av moderne fargeforvaltning slik som ICC, sRGB og scRGB, som begynner og ender med innretningsavhengige farger. Oppfinnelsen kan også brukes til å understøtte CMYK-fargerom samt utvidede RGB-fargerom innenfor X11R6, for således å utvide X11 R6-grafikkplattformen til å understøtte alle moderne fargeforvaltningsteknikker.
Eksempler på nettilknvttede og distribuerte miljøer.
En vanlig fagkyndig på området vil forstå at en datamaskin eller en annen klient- eller server-innretning kan være utplassert som en del av et datanett, eller i et distribuert beregningsmiljø. I denne forbindelse angår foreliggende oppfinnelse ethvert datasystem som har et hvilket som helst antall minne- eller lagringsenheter, og ethvert antall brukerprogrammer (applikasjoner) og prosesser som inntreffer over et hvilket som helst antall lagringsenheter eller volumer, som kan brukes i forbindelse med en fargeforvaltningsprosess. Foreliggende oppfinnelse kan gjelde et miljø med serverdatamaskiner og klientdatamaskiner utplassert i et nettmiljø eller et distribuert beregningsmiljø, som har fjerntliggende eller lokal lagring. Foreliggende oppfinnelse kan også anvendes i forbindelse med alenestående beregningsinnretninger som har programmeringsspråk-funksjonalitet, tolkning og utførelseskapasitet for å generere, motta og sende informasjon i forbindelse med fjerntliggende eller lokale fargeforvaltningstjenester.
Distribuert beregning letter deling av datamaskinressurser og tjenester ved direkte utveksling mellom beregningsinnretninger og systemer. Disse ressursene og tjeneste innbefatter utveksling av informasjon, hurtiglager og platelager for filer. Distribuert beregning trekker fordeler av mulighet til nettilkopling, noe som tillater klienter å minske sin kollektive datakraft for å gi fordeler til hele foretaket. I denne forbindelse kan en rekke innretninger ha applikasjoner, formål eller ressurser som kan implisere en fargeforvaltningsprosess som kan benytte teknikkene i henhold til foreliggende oppfinnelse.
Fig. 2A er et skjematisk diagram av et eksempel på et nettilknyttet eller distribuert beregningsmiljø. Det distribuerte beregningsmiljø omfatter beregningsobjekter 10a, 10b, osv., og beregningsobjekter eller innretninger 110a, 110b, 110c, osv. Disse objektene kan omfatte programmer, fremgangsmåter, datalagre, programmerbar logikk, osv. Objektene kan omfatte deler av de samme eller forskjellige innretninger, slik som personlige digitale assistenter (PDA), fjernsynsapparater, audiolag-3 (MP3)-spiller i henhold til ekspertgruppen for levende bilder, MPEG-1, Moving Picture Experts Group, fjernsynsapparater, personlige datamaskiner, osv. Hvert objekt kan kommunisere med et annet objekt ved hjelp av kommunikasjonsnettet 14. Dette nettet kan selv omfatte andre beregningsobjekter og beregningsinnretninger som leverer tjenester til systemet på fig. 2A. I samsvar med et aspekt av oppfinnelsen kan hvert objekt 10a, 10b, osv. eller 110a, 110b,
110c osv. inneholde en applikasjon som kan anmode om fargeforvaltningstjenester.
I en distribuert beregningsarkitektur kommuniserer datamaskiner som tradi-sjonelt kan ha blitt brukt bare som klienter, direkte innbyrdes og kan virke som både klienter og servere, i avhengighet av hvilken rolle som er mest effektiv for nettet. Dette reduserer belastningen på servere og tillater alle klientene å aksessere ressurser som er tilgjengelige på andre klienter, for derved å øke kapasiteten og effektiviteten til hele nettet. Fargeforvaltningstjenester i samsvar med foreliggende oppfinnelse kan således distribueres blant klienter og servere, og virke på en måte som er effektiv for hele nettet.
Distribuert beregning kan hjelpe forretningsforetak til å levere tjenester og kapasiteter som er mer effektive over diverse geografiske grenser. Distribuert beregning kan dessuten flytte data nærmere det punkt hvor dataene blir brukt, for å
virke som en hurtiglagringsmekanisme i nettet. Distribuert beregning gjør det også mulig for beregningsnett å arbeide sammen på en dynamisk måte uten intelligente agenter. Agenter befinner seg på likestilte datamaskiner og kommuniserer forskjellige typer informasjon frem og tilbake. Agenter kan også innlede oppgaver på veg-ne av andre likestilte systemer. Intelligente agenter kan f.eks. brukes til å prioritere oppgaver i et nett, endre trafikkflyt, søke etter filer lokalt eller bestemme unormal
oppførsel, slik som et virus, og stanse det før det påvirker nettet. Alle slags andre tjenester kan også tenkes. Siden ett eller flere grafiske objekter eller andre fargedata i praksis kan være fysisk lokalisert på ett eller flere steder, er evnen til å dis-tribuere fargeforvaltningstjenester av stor nytte i et slikt system.
Man vil også forstå at et objekt, slik som 110c, kan befinne seg hos en annen beregningsinnretning 10a, 10b, osv., eller 110a, 110b, osv. Selv om det fysiske miljø som er skissert, således kan vise de sammenkoplede innretninger som datamaskiner, er denne illustrasjonen kun ment som et eksempel, og det fysiske miljø kan alternativt skisseres eller beskrives som omfattende forskjellige digitale innretninger, slik som PDA'er, fjernsynsapparater, MP3-spillere, osv., program-vareobjekter slik som grensesnittanordninger, COM-objekter og lignende.
Det finnes en rekke systemer, komponenter og nettkonfigurasjoner som understøtter distribuerte beregningsmiljø. Beregningssystemer kan f.eks. koples sammen ved hjelp av kabel eller trådløse systemer, ved hjelp av lokalnett eller regionnett. For tiden er mange av nettene koplet til internett som gir infrastrukturen for meget distribuert beregning og omfatter mange forskjellige nett.
I hjemmenett-miljøer er det minst fire forskjellige nettransport-medier som hvert kan understøtte en unik protokoll, slik som kraftlinje, data (både trådløs og ledningsført), tale (f.eks. telefon) og underholdnings-media. De fleste styringsinn-retninger i hjemmet, slik som lysbrytere og utstyr, kan benytte kraftledningen som sammenknytningsmedium. Datatjenester kan komme inn i hjemmet som bredbånd (f.eks. enten DSL eller kabelmodem) og kan aksesseres i hjemmet ved å benytte enten trådløse, f.eks. hjemmeradiofrekvens (HomeRF) eller 802.11b, eller led-ningsført, f.eks. hjemmetelefonlinjenett-anordning (PNA), Cat 5, og endog kraft-linjetilkopling. Taletrafikk kan komme inn i hjemmet enten som ledningsført, f.eks. Cat 3, eller trådløst, f.eks. mobiltelefoner, og kan distribueres i hjemmet ved å bruke Cat 3-ledningsføring. Underholdningsmedia eller andre grafiske data kan komme inn i hjemmet enten via satellitt eller kabel, og blir vanligvis distribuert i hjemmet ved å bruke koaksialkabel. IEEE 1394 og DVI kommer også som digitale sammenkoplinger for grupper av mediainnretninger. Alle disse nettmiljøene og andre som kan dukke opp som protokollstandarder, kan sammenkoples for å dan-ne et intranett som kan være tilkoplet verdenen utenfor ved hjelp av internett. Kort sagt finnes det en lang rekke forskjellige kilder for lagring og overføring av data, og følgelig vil fremflytting av beregningsinnretninger kreve måter å dele data på, slik som data som aksesseres eller utnyttes i forbindelse med fargeforvaltning av ett eller flere grafiske objekter eller andre fargedata i forbindelse med foreliggende oppfinnelse.
Farge er dessuten et effektivt middel når det gjelder å representere en rekke fysiske eller andre fenomener, og uansett om dataene er magnetiske resonans-avbildningsdata, ultralyddata, grafikkutjevningsdata, osv., er farge derfor ofte en passende måte å presentere dataene for mennesker for hurtig oppfatningsmessig analyse. Kilden for fargedata slik den er tenkt her, er følgelig ubegrenset og kan gjennomgå en rekke transformasjoner før de betraktes som "fargedata".
Internett refererer vanligvis til samlingen av nett og porter som utnytter transportstyringsprotokoll/grensesnittprogram (TCP/IP) protokoller, som er velkjente på datanett-området. Internett kan beskrives som et system av geografisk distribuerte, fjerntliggende datamaskinnett som er sammenkoplet ved hjelp av datamaskiner som utfører nettprotokoller som gjør det mulig for brukere å vekselvirke og dele informasjon over nettene. På grunn av slik utbredt informasjonsdeling har fjernnett, slik som internett, derfor utviklet seg hovedsakelig langt til et åpent system for hvilket utviklere kan utforme programvareapplikasjoner for å utføre spesia-liserte operasjoner eller tjenester, hovedsakelig uten noen begrensninger.
Nettets infrastruktur gjør det således mulig for en vert i nettopologier slik som klient/server, likemann-til-likemann, eller hybrid-arkitekturer. "Klienten" er et medlem av en klasse eller gruppe som benytter tjenestene til en annen klasse eller gruppe som den ikke er relatert til. Ved beregning er derfor en klient en prosess, dvs. grovt sett et sett med instruksjoner eller oppgaver som anmoder om en tjeneste levert av et annet program. Klientprosessen benytter den etterspurte tjeneste uten å måtte "kjenne" eventuell arbeidsdetaljer om det andre programmet eller selve tjenesten. I en klient/server-arkitektur, spesiell et nettsystem, er en klient vanligvis en datamaskin som aksesserer delte nettressurser fremskaffet av en annen datamaskin, f.eks. en server. I eksempelet på fig. 2a, kan datamaskiner 110a, 110b, osv. tenkes på som klienter, og datamaskinene 10a, 10b osv. kan tenkes på som servere hvor servere 10a, 10b, osv. opprettholder dataene som så blir kopiert i klientdatamaskinene 110a, 110b, osv.
En server er typisk et fjerndatamaskinsystem som kan aksesseres over et fjernnett, slik som internett. Klientprosessen kan være aktiv i et første datasystem, og serverprosessen kan være aktiv i et annet datasystem som kommuniserer med hverandre over et kommunikasjonsmedium for derved å frembringe distribuert funksjonalitet og gjør det mulig for flere klienter å trekke fordel av informasjons-innsamlingsegenskapene til serveren.
Klient og server kommuniserer med hverandre ved å benytte den funksjonalitet som er fremskaffet ved hjelp av et protokoll-lag. Hypertekst-transferprotokollen (HTTP) er f.eks. en vanlig protokoll som brukes i forbindelse med verdensveven (WWW, World Wide Web). En datanett-adresse slik som en universell ressurslokalisator (URL) eller en internettprotokoll-adresse (IP-adresse) blir typisk brukt til å identifisere serveren eller klientdatamaskinene for hverandre. Nettadressene kan refereres til som URL-adresser. Kommunikasjon kan f.eks. tilveiebringes over et kommunikasjonsmedium. Spesielt kan klienten og serveren koples til hverandre via TCP/IP-forbindelser for kommunikasjon med høy kapasi-tet.
Fig. 2A illustrerer et eksempel på et nettkoplet eller distribuert miljø med en server i kommunikasjon med klientdatamaskiner via et/en nett/buss hvor foreliggende oppfinnelse kan anvendes. Mer detaljert er et antall servere 10a, 10b, osv. koplet sammen med via et/en kommunikasjons-nett/buss 14, som kan være et LAN, WAN, intranett, internett osv., med et antall klienter eller fjernberegningsinn-retninger 110a, 110b, 110c, 110d, 110e, osv., slik som bærbare datamaskiner, håndholdte datamaskiner, en tynn klient, nettkoplingsutstyr eller andre innretninger, slik som en videokassett-opptaker (VCR, Video Cassette Recorder), et fjern-syn (TV), en ovn, lys, en oppvarmingsanordning og lignende i overensstemmelse med foreliggende oppfinnelse. Det er således tenkt at foreliggende oppfinnelse kan anvendes i forbindelse med en hvilken som helst beregningsinnretning som det er ønskelig å behandle eller fremvise ett eller flere grafiske objekter eller eventuelle andre fargedata i forbindelse med.
I et nettmiljø hvor kommunikasjonsnettet/bussen 14 er internett, kan f.eks. serverne 10a, 10b , osv. være nettservere som klientene 110a, 110b, 110c, 11 Od, 11 Oe, osv. kommuniserer med via et antall kjente protokoller, slik som HTTP. Servere 10a, 10b, osv. kan også tjene som klienter 110a, 110b, 110c, 11 Od, 11 Oe osv., som kan være karakteristiske for et distribuert beregningsmiljø. Kommunikasjoner kan være ledningsførte eller trådløse, avhengig av omstendighetene. Klient-innretninger 110a, 110b, 110c, 11 Od, 11 Oe, osv. kan eller behøver ikke å kommunisere via kommunikasjonsnettet/bussen 14, og kan ha tilknyttede, uavhengige kommunikasjoner. I tilfelle med et TV eller en VCR kan det være eller behøver ikke å være et nettkoplingsaspekt i forbindelsen med styringen av disse. Hver kli-entdatamaskin, 110a, 110b, 110c, 110d, 11 Oe, osv. og serverdatamaskinen 10a, 10b, osv., kan være utstyrt med forskjellige brukerprogram-moduler eller -objekter 135 og med forbindelser eller tilgang til forskjellige typer lagringselementer eller objekter, over hvilke filer kan lagres eller til hvilke én eller flere deler av filer kan lastes ned eller migreres. En hvilken som helst datamaskin 10a, 10b, 110a, 110b, osv. kan være ansvarlig for å opprettholde og oppdatere en database 20 eller et annet lagringselement i samsvar med foreliggende oppfinnelse, slik som en database eller et minne 20 for lagring av ett eller flere fargeobjekter eller data eller ett eller flere mellomliggende fargeobjekter eller data behandlet i henhold til oppfinnelsen. Foreliggende oppfinnelse kan således utnyttes i et datamaskin-nettmiljø som har klientdatamaskiner 110a, 110b, osv. som kan aksessere og vekselvirke med et/en data-nett/buss 14 og serverdatamaskiner 10a, 10b, osv. som kan vekselvirke med klientdatamaskiner 110a, 110b, osv., og andre lignende innretninger og databaser 20.
Eksempel på bereaninasinnretnina
Fig. 2B og den følgende diskusjon er ment å gi en kort, generell beskrivelse av et egnet beregningsmiljø hvor oppfinnelsen kan implementeres. Man vil imidlertid forstå at håndholdte, bærbare og andre beregningsinnretninger og beregningsobjekter av alle typer kan tenkes brukt i forbindelse med foreliggende oppfinnelse, som beskrevet ovenfor. Selv om en universell datamaskin blir beskrevet nedenfor, er således dette bare et eksempel, og foreliggende oppfinnelse kan implementeres med andre beregningsinnretninger, slik som en tynn klient med innbyrdes nett/buss-operasjon og interaksjon. Foreliggende oppfinnelse kan således implementeres i miljø bestående av nettilknyttede vertstjenester hvor meget små eller minimale klientressurser inngår, f.eks. et nettmiljø hvor klientinnretningen kun tje-ner som et grensesnitt til nettet/bussen, slik som et objekt plassert i et apparat, samt i andre beregningsinnretninger og objekter. Alle steder hvor data kan lagres eller hvorfra data kan innhentes, er hovedsakelig, eller fortrinnsvis, et miljø for an-vendelse av fargeforvaltningsteknikkene i henhold til oppfinnelsen.
Selv om det ikke er nødvendig, kan oppfinnelsen implementeres via et operativsystem for bruk av én som utvikler tjenester for en innretning eller et objekt, og/eller som er innbefattet i brukerprogramvare som opererer i forbindelse med fargeforvaltningsteknikkene i henhold til oppfinnelsen. Programvare kan beskrives i den generelle sammenheng med datamaskin-utførbare instruksjoner, slik som programmoduler som utføres ved hjelp av én eller flere datamaskiner, slik som klient-arbeidsstasjoner, servere eller andre innretninger. Generelt innbefatter programmoduler rutiner, programmer, objekter, komponenter, datastrukturer og lignende som utfører spesielle oppgaver eller implementerer spesielle, abstrakte da-tatyper. Funksjonaliteten til programmodulene kan typisk kombineres eller distribueres etter ønske i forskjellige utførelsesformer. Fagkyndige på området vil dessuten innse at oppfinnelsen kan praktiseres i forbindelse med andre utforminger av datasystemer. Andre velkjente datasystemer, miljøer og/eller konfigurasjoner som kan være egnet for bruk i forbindelse med oppfinnelsen, innbefatter, men er ikke begrenset til, personlige datamaskiner (PC'er), minibanker, serverdatamaskiner, lomme- eller bærbare -innretninger, multiprosessor-systemer, mikroprosessorba-serte systemer, programmerbar forbrukerelektronikk, nettilknyttede PCer, appara-ter, lys, miljøstyringselementer, minidatamaskiner, stormaskiner og lignende. Oppfinnelsen kan også praktiseres i fordelte beregningsmiljøer hvor oppgaver blir ut-ført ved hjelp av fjernbehandlingsinnretninger som er forbundet med hverandre gjennom et kommunikasjonsnett eller en buss eller et annet dataoverføringsmedi-um. I et distribuert beregningsmiljø kan programmodulene være lokalisert i både lokale og fjerntliggende datalagringsmedier innbefattende minnelagringsinnret-ninger, og klientnoder kan i sin tur oppføre seg som servernoder.
Fig. 2B illustrerer således et eksempel på et egnet beregningssystem-miljø 100 hvor oppfinnelsen kan implementeres, selv om beregningssystem-miljøet 100 som klart uttrykt ovenfor, bare er ett eksempel på et egnet beregningsmiljø, og ikke er ment å antyde noen begrensning med hensyn til omfanget for bruk eller funksjonalitet i forbindelse med oppfinnelsen. Heller ikke skal beregningsmiljøet 100 tolkes som å være avhengig av eller inneholde krav med hensyn til én av eller en kombinasjon av komponenter som er illustrert i eksempelet på operativmiljøet 100.
Det vises til fig. 2B hvor et systemeksempel for implementering av oppfinnelsen innbefatter en universal-beregningsinnretning i form av en datamaskin 110. Komponenter i datamaskinen 110 kan innbefatte, men er ikke begrenset til, en prosesseringsenhet 120, et systemminne 130 og en systembuss 121 som forbin-der forskjellige systemkomponenter med hverandre, innbefattende systemminne med behandlingsenheten 120. Systembussen 121 kan være én av flere typer busstrukturer som innbefatter en minnebuss eller en minnestyringsenhet, en peri-feribuss og en lokalbuss som benytter en hvilken som helst av antall bussarkitek-turer. For eksempel, og ikke ment som noen begrensning, innbefatter slike arkitekturer industriarkitektur-bussen (ISA-strukturen), mikrokanalarkitektur-bussen (MCA-bussen), en forbedret ISA-buss (EISA-buss), en lokalbuss i henhold til Video Electronics Standards Association (VESA) og periferikomponent-sammenkoplingsbussen (PCI-bussen) (også kjent som Mezzanine-bussen).
Datamaskinen 110 innbefatter typisk en rekke datamaskinlesbare media. De datamaskinlesbare media kan være et hvilket som helst tilgjengelig medium som kan aksesseres av en datamaskin 110, og som innbefatter både flyktige og ikke-flyktige media, fjembare og ikke-fjernbare media. Ved hjelp av et ikke begrensende eksempel kan datamaskinlesbare media omfatte datalagringsmedia og kommunikasjonsmedia. Datalagringsmedia innbefatter både flyktige og ikke-flyktige, fjernbare og ikke-fjernbare media implementert ved hjelp av en hvilken som helst metode eller teknologi for lagring av informasjonen, slik som datamaskinlesbare instruksjoner, datastrukturer, programmoduler eller andre data. Datalagringsmedia innbefatter, men er ikke begrenset til, direkteteger (RAM), leselager (ROM), elektrisk slettbare og programmerbare leselagre (EEPROM), flash-minner eller annen minneteknologi, kompaktplate-leselagre (CDROM), digitale, tilpas-ningsdyktige plater (DVD, digital versatile disks) eller andre optiske platelagre, magnetiske kassetter, magnetbånd, magnetplate-lagre eller andre magnetiske lagringsinnretninger, eller et hvilket som helst annet medium som kan brukes til å lagre den ønskede informasjon og som kan aksesseres ved hjelp av en datamaskin 110. Kommunikasjonsmedia omfatter typisk datamaskinlesbare instruksjoner, datastrukturer, programmoduler og andre data i et modulert datasignal, slik som en bærebølge eller en annen transportmekanisme, og som innbefatter et hvilket som helst informasjonsleveringsmedium. Uttrykket "modulert datasignal" betyr et signal som har én eller flere av sine karakteristikker fastsatt eller endret på en måte for å kode informasjon i signalet. Ved hjelp av et ikke begrensende eksempel innbefatter kommunikasjonsmedia ledningskoplede media slik som et ledningsnett eller en direkteledningsforbindelse, og trådløse media slik som akustiske, radio-frekvente, infrarøde og andre trådløse media. Kombinasjoner av en hvilken som helst av de ovennevnte skal også være innbefattet innenfor rammen av datamaskinlesbare media.
Systemminnet 130 innbefatter datalagringsmedia i form av flyktige og/eller ikke-flyktige minner, slik som et leselager (ROM) 131 og et direktelager (RAM) 132. Et grunnleggende inn/ut-system 133 (BIOS) som innholder de grunnleggende rutiner som bidrar til å overføre informasjon mellom elementer i datamaskinen 110, slik som ved start, er vanligvis lagret i ROM 131. RAM 132 inneholder typisk data og/eller programmoduler som er umiddelbart tilgjengelige for og/eller som for tiden blir bearbeidet på prosesseringsenheten 120. Som et ikke begrensende eksempel illustrerer fig. 2B et operativsystem 134, brukerprogrammer 135, andre programmoduler 136 og programdata 137.
Datamaskinen 110 kan også innbefatte andre fjembare/ikke-fjernbare, flyktige, ikke-flyktige datalagringsmedia. Som et eksempel, og kun et eksempel, illustrerer fig. 2B et hardplatedrev 141 (harddisk-drev) som leser fra eller skriver til ikke-fjembare, ikke-flyktige magnetiske media, et magnetplate-drev 151 som leser fra eller skriver til en fjernbar, ikke-flyktig magnetplate 152, og et optisk platedrev 155 som leser fra eller skriver til en fjernbar, ikke-flyktig optisk plate 156, slik som et CD ROM eller andre optiske media. Andre fjernbare/ikke fjernbare, flyktige/ ikke-flyktige datalagringsmedia som kan brukes i eksempelet på driftsmiljøet, innbefatter, men er ikke begrenset til, magnetbånd-kassetter, flashminne-kort, digitale videoplater, digitale videobånd, faststoff-RAM, faststoff-ROM og lignende. Hardplatedrevet 141 er typisk koplet til systembussen 121 gjennom et ikke-fjernbart minnegrensesnitt slik som grensesnittet 140, og magnetplatedrevet 151 og det optiske platedrevet 155 er typisk koplet til systembussen 121 ved hjelp av et fjernbart minnegrensesnitt, slik som grensesnittet 150.
Drevene og deres tilknyttede datalagringsmedia som er diskutert ovenfor og illustrert på fig. 2B, tilveiebringer lagring av datamaskinlesbare instruksjoner, datastrukturer, programmoduler og andre data for datamaskinen 110. På fig. 2B er f.eks. hardplatedrevet 141 illustrert som om det lagrer operativsystemet 144, brukerprogrammene 145, andre programmoduler 146 og programdata 147. Legg merke til at disse komponenter enten kan være de samme som eller være forskjellige fra operativsystemet 134, brukerprogrammene 135, andre programmoduler 136 og programdata 137. Operativsystemet 144, brukerprogrammene 145, andre programmoduler 146 og programdata 147 er gitt forskjellige tall her for å illustrere at de, i det minste, er forskjellige kopier. En bruker kan innføre kommandoer og informasjon i datamaskinen 110 gjennom innmatingsinnretninger slik som et tastatur 162 og en pekerinnretning 161, vanligvis kalt en mus, en styrekule eller en be-røringsskjerm. Andre innmatingsinnretninger (ikke vist) kan innbefatte en mikrofon, en styrespak, en spillpute, en satellittantenne, en skanner eller lignende. Disse og andre innmatingsinnretninger blir ofte koplet til prosesseringsenheten 120 gjennom et brukerinnmatingsgrensesnitt 160 som er koplet til systembussen 121, men kan være tilkoplet ved hjelp av andre grensesnitt- og buss-strukturer, slik som en parallellport, en spilleport eller en universell seriebuss (USB). Et grafisk grensesnitt 182 slik som Northbridge, kan også være tilkoplet systembussen 121. Northbridge er et brikkesett som kommuniserer med CPU, eller vertsprosesserings-enheten 120, og som tar ansvaret for akselererte grafikkport-kommunikasjoner (AGP-kommunikasjoner). Én eller flere grafikkbehandlingsenheter (GPU'er) 184 kan kommunisere med grafikkgrensesnittet 182.1 denne forbindelse innbefatter GPLTene 184 vanligvis et minnelager på brikken, slik som et registerlager, og GPlTene 184 kommuniserer med et videominne 186. GPLTene 184 er imidlertid kun et eksempel på en koprosessor, og dermed kan en lang rekke koprosesse-ringsinnretninger være innbefattet i datamaskinen 110. En monitor 191 eller en visningsanordning av en annen type, er også koplet til systembussen 121 via et grensesnitt, slik som et videogrensesnitt 190, som igjen kan kommunisere med videominnet 186.1 tillegg til monitoren 191 kan datamaskinene også innbefatte andre eksterne utmatingsinnretninger slik som høyttalere 197 og skrivere 196, som kan være tilkoplet gjennom et utmatingsgrensesnitt 195 for eksternenheter.
Datamaskinen 110 kan operere i et nettmiljø eller et distribuert miljø som benytter logiske forbindelser til én eller flere fjerntliggende datamaskiner, slik som en fjerntliggende datamaskin 180. Den fjerntliggende datamaskin 180 kan være en personlig datamaskin, en server, en ruter, en nett-PC, en likestilt innretning eller en annen vanlig nettnode, og innbefatter typisk mange av eller alle de elementer som er beskrevet ovenfor i forbindelse med datamaskinen 110, selv om bare en minnelagringsinnretning 181 er blitt illustrert på fig. 2B. De logiske forbindelser som er skissert på fig. 2B, innbefatter et lokalnett (LAN) 171 og et regionnett (WAN) 173, men kan også innbefatte andre nett/busser. Slike nettmiljøer er vanlige i hjem, på kontorer, på bedriftsomfattende datanett, intranett og på internett.
Benyttet i et lokalnett-miljø blir datamaskinen 110 koplet til lokalnettet 171 gjennom et nettgrensesnitt eller en adapter 170. Brukt i et regionnett-miljø innbefatter datamaskinen 110 typisk et modem 172 eller en annen innretning for å opp-rette kommunikasjoner over regionnettet 173, slik som internett. Modemet 172 som kan være internt eller eksternt, kan være koplet til systembussen 121 via bru-kerinnmatingsgrensesnittet 160, eller ved hjelp av andre passende mekanismer. I et nettkoplingsmiljø kan programmoduler skissert i forhold til datamaskinen 110, eller deler av disse, være lagret i den fjerntliggende minnelagringsinnretning. Som et ikke begrensende eksempel illustrerer f.eks. fig. 2B fjerntliggende brukerprogrammer 185 som om de befinner seg på minneinnretningen 181. Man vil forstå at de nettforbindelser som er vist, bare er eksempler, og at andre midler for å oppret-te en kommunikasjonsforbindelse mellom datamaskinene kan benyttes.
Eksempler på distribuerte data- strukturer eller - arkitekturer
Forskjellige distribuerte datastrukturer er blitt og blir utviklet i lys av sam-mensmeltingen mellom personlige datamaskiner og internett. Individuelle brukere og forretningsbrukere blir forsynt med et sømløst samvirkende og nett-innrettet grensesnitt for applikasjoner og beregningsinnretninger, noe som i økende grad gjør beregningsaktiviteter nettleser- eller nett-orienterte.
For eksempel innbefatter NET-plattformen til MICROSOFT® servere, byg-geblokktjenester slik som nettbasert datalagring og nedlastbar innretnings-programvare. Generelt talt tilveiebringer NET-plattformen (1) evnen til å få hele området med beregningsinnretninger til å arbeide sammen og få brukerinforma-sjon automatisk oppdatert og synkronisert på hver av dem, (2) øket interaktiv evne for nettsidene, noe som gjøres mulig ved større bruk av XML istedenfor HTML, (3) online-tjenester som tilveiebringer kundetilpasset tilgang og levering av produkter og tjenester til brukeren fra et sentralt startpunkt for forvaltningen av de forskjellige applikasjoner, slik som e-post f.eks., eller programvare, slik som Office.NET, (4) sentralisert datalagring som vil øke effektiviteten og lette tilgangen til informasjon, samt synkronisering av informasjon blant brukere og innretninger, (5) evnen til å integrere forskjellige kommunikasjonsmedia, slik som e-post, fakser og telefoner, (6) for utviklere, evnen til å skape gjenbrukbare moduler for derved å øke produk-tiviteten og redusere antallet programmeringsfeil, og likeledes (7) mange andre tverrplattform-integrasjonstrekk.
Selv om utførelseseksemplene her er beskrevet i forbindelse med programvare som befinner seg på en beregningsinnretning, kan én eller flere deler av oppfinnelsen også implementeres via et operativsystem, et brukerprogrammerings-grensesnitt (API, Application Programming Interface) eller et "mellomobjekt" mellom en koprosessor og et anmodningsobjekt, slik at fargeforvaltningstjenester kan utføres ved, understøttes av eller aksesseres via alle NET-språk og -tjenester, samt i andre distribuerte beregningsstrukturer.
Fargeforvaltning i X11
Som angitt foran er X11 R6-fargeforvaltningssystemet en grafisk protokoll som via operasjoner innbefattende hvitpunkt-tilpasning, fargerom-tilordning, matriseomforminger og endimensjonale oppslagsprotokoller, understøtter fargeforvaltningsfunksjoner som er innpluggbare og som understøtter omsetting av innretningsuavhengig brukerinnhold til innretningsavhengige fargeverdier.
X11 R6-arkitekturen har to fargeforvaltningsløsninger. Den første løsning er den enkle 3x3-matrisen og tredimensjonale oppslagstabeller som vanligvis benyttes til å karakterisere enkle visningsanordninger, slik som katodestrålerør. Den annen er Xcms som hovedsakelig består av en hvitpunkt-omforming og en fargerom-kompresjon. Siden innføringen av Xcms har fargeforvaltning avansert og funnet at løsninger begrenset til disse to teknikkene, er utilstrekkelig, fordi de fleste forutsetter kilde- og destinasjons-innretninger hvor X11 bare understøtter en destinasjonsinnretning, og forutsetter at kilden er innretningsuavhengig. Heldigvis tillater Xcms mer fleksible implementeringer innenfor denne arkitekturen.
CIELAB er et system som ble benyttet i forbindelse med CIE i 1976 som en modell som bedre viste jevn fargefordeling med hensyn til fargenes verdier enn den tidligere CIELUV uttrykt ved å representere det humane, visuelle system (HVS). CIELAB er et opponentfargesystem basert på det tidligere (1942) systemet til Richard Hunter, kalt L, a, b. Fargeopposisjon stemmer overens med oppdagel-ser på midten av 1960-tallet at ett eller annet sted mellom den optiske nerven og hjernen, blir retinale fargestimuli omsatt til distinksjoner mellom lys og mørke, rødt og grønt, samt blått og gult. CIELAB indikerer disse verdiene med tre akser: L<*>a<*>b<*>. Det fullstendige numenklaturet er 1976 CIE L<*>a<*>b<*->rommet.
Den sentrale vertikale akse representerer lyshet, betegnet som L<*>, og verdier for lyshet fra 0 (sort) til 100 (hvitt). Fargeaksene er basert på det faktum at en farge ikke kan være både rød og grunn, eller både blå og gul, fordi disse fargene er i motsetning til hverandre. På hver akse går verdiene fra positive til negative. På a-a'-aksen indikerer positive verdier mengder med rødt, mens negative verdier indikerer mengder med grønt. På b-b'-aksen er gult positivt og blått er negativt. For begge akser er null lik nøytralt grått. ClEXYZ-datastrukturen er en datastruktur som benyttes av X11, som inneholder x, y og z-koordinatene til en spesifikk farge i et spesifisert fargerom.
Et eksempel på hvordan X11R5 virker, er illustrert på fig. 3A som forutsetter direktefargede eller virkelighetsfargede overflater i X11. Fra innretningsuavhengige RGB-verdier blir det produsert visningsanordnings-avhengige, lineære med hensyn til luminisans, RGB-verdier via 3x3-matrisen 300. Visningsinnretnings-avhengige, ikke-lineære RGB-verdier blir så frembrakt via 3 endimensjonale oppslagstabeller 310 for en gitt gammaverdi (y-verdi), f.eks. y=1,0. Disse innretningsavhengige verdiene blir så reprodusert via visningsinnretningen 320.1 denne forbindelse leverer innretningen 320 3x3-matrisen og de endimensjonale oppslagstabeller som er spesifikke for visningsinnretningen 320.
Spesielt understøtter omformingskonteksten til X-fargerommet (XCCC) to generiske pekere til funksjoner tilCIEXYZ og fraCIEXYZ. Et eksempel på hvordan X11R6 virker, er illustrert på fig. 3B. Fra innretningsuavhengige fargeverdier, blir f.eks. CIELAB, CIELUV, ClEYxy, CIEXYZ, TekHVC, cmdPad, ClEXYZ-verdier frembrakt via standard fargerom-omformingsmekanismer i X11-biblioteket, Xlib. Hvitpunktverdiene CIEXYZ blir så produsert via Xcms-hvitpunktomformings-komponenten 330. Innretningens ClEXYZ-fargeromsverdier blir så produsert via omformingskomponenten 340 for Xcms-fargeromkompresjon. De innretningsavhengige RGB-verdier blir så frembrakt, enten som i henhold til ZX11R5-mekanismen som delvis er diskutert ovenfor, eller via ClEXYZ-mekanismen i
XCCC.
Som illustrert på fig. 4A blir så fargeforvaltningen i X-plattformen utført via tilCIEXYZ- og fraCIEXYZ-funksjonene, som virker slik at de frembringer X11-datastrukturer, eller omformer X11-datastrukturer til innretningsavhengige verdier.
Virkemåten til den vanlige WINDOWS®-fargeforvaltningsmodulen (CMM) er illustrert på fig. 4B. Fra ét hvilket som helst av en rekke kildeinnretningsavhengige fargerom og innretningsprofiler, kan CMM omformes til innretningsuavhengige fargerom, f.eks. ICC, sRGB og scRGB, via standard CMM-funksjoner. Via profilen til destinasjonsinnretningen blir så de uavhengige fargerom verdier omformet til det fargerom som er egnet for destinasjonsinnretningen.
Som illustrert på fig. 4C, tilveiebringer oppfinnelsen en mekanisme som fremmer tilCIEXYZ og fraCIEXYZ-funksjonene til XCCC med understøttelse tilveiebrakt fra standard ICC-profiler og fargeforvaltningsmetoder.
For å utføre dette spesifiserer først én, enten eksplisitt via et brukergrensesnitt (Ul) eller implisitt via innretningstilordning, de riktige kilde- og destinasjons-profiler. Fra disse to innretningsprofilene kan man bruke standard WINDOWS® CMM-funksjoner til å skape en innretningslenkeprofil som omformer direkte fra kildeinnretning til destinasjonsinnretning, som tar vare på den endelige relasjonen og kildeinnretningens forskjellige fargekarakteristikker. X11-arkitekturen blir brakt inn i prosessen for å oppnå overføringen av verdier fra kildeinnretningen til destinasjonsinnretningen ved å få fraCIEXYZ-funksjonspekeren i X11 til å peke til en standard CMM-basert fargeomformingsfunksjon som omformer kilde til destinasjons-farger eller -bilder ved å benytte innretningslenkeprofilen. Standard CMM-understøttelse kan bringes til X11 fra WINDOWS® Image Color Matching (ICM) grensesnittet eller andre ICC-grensesnitt for fargeforvaltningssystemet.
Fig. 5A til 5C illustrerer flere eksempler på oppfinnelsen. I disse eksemplene er hvitpunkt-fargeromskompresjons-funksjonene og andre funksjoner satt til normale null-operasjoner for å forenkle beskrivelsen.
På fig. 5A er RGB eller sRGB-kildeinnretningsfargen tilstede ved kildeinnretningen. Etter beregning av innretningslenkeprofilen mellom kildeinnretningen og destinasjonsinnretningen, virker oppfinnelsen til å få X-systemet til å tro at RGB for kildeinnretningen er CIEXYZ. Den innretningsavhengige destinasjonsfarge blir så produsert via fraCIEXYZ-funksjonen, som innbefatter innretningslenkeprofilen som et argument.
På fig. 5B er CMYK-kildeinnretningsfargen til stede ved kildeinnretningen. Etter beregning av innretningslenkeprofilen mellom kildeinnretningen og destinasjonsinnretningen, virker oppfinnelsen til å få X-systemet til å anta at RGB for kildeinnretningen er av cmsPad Xcms-fargetypen. Den innretningsavhengige destinasjonsfarge blir så produsert via fraCIEXYZ-funksjonen, som innbefatter innretningslenkeprofilen som et argument.
På fig. 5C er scRGB-fargen til kildeinnretningen til stede ved kildeinnretningen. Etter beregningen av innretningslenkeprofilen mellom kildeinnretningen og destinasjonsinnretningen, blir den innretningsavhengige destinasjonsfargen produsert via fraCIEXYZ-funksjonen som inneholder innretningslenkeprofilen. Alternativt blir den utvidede, innretningsavhengige destinasjonsfarge produsert via fraCIEXYZ-funksjonen, som inneholder innretningslenkeprofilen. I en slik omforming blir det tilveiebrakt kompensasjon for det faktum at Xcms-farger er forkortelser uten fortegn og scRGB er flytende objekter med fortegn. Eventuelt kan signal-kompresjon utføres separat via de ytterligere 3 endimensjonale oppslagstabellene.
Andre fargeforvaltningsløsninger slik som RIMM RGB (EK/PIMA), ROMM RGB (EK/PIMA), esRGB (HP/PIMA) kan understøttes ved å benytte eksempelet i henhold til fig. 5C ovenfor. I hvert av de ovennevnte eksempler på oppfinnelsen, blir X-funksjonene fraCIEXYZ og tilCIEXYZ lurt eller svindlet til å motta data fra moderne fargeforvaltningssystemer.
Med hensyn til flere detaljer vedrørende svindling av API'er, blir det her fo-reslått to ikke-begrensende alternativer. Når man beveger seg fra innretningsuavhengig applikasjonsinnholdt til innretningsavhengige fargeverdier, simulerer for det første oppfinnelsen fraCIEXYZ-funksjonen til virkelig å omforme fra innretningsavhengige fargeverdier tilCIEXYZ, og så til å bruke 3x3-materisen og de endimensjonale oppslagstabeller til å karakterisere en spesifikk utmatingsinnretning. For omforming fra innretningsavhengige (dd, divice dependent) til innretningsuavhengige (di, divice independent) verdier, blir denne prosessen invertert, og tilCIEXYZ API blir i stedet lurt inn.
Når man beveger seg fra innretningsuavhengig applikasjonsinnhold til innretningsavhengige fargeverdier simulerer alternativt oppfinnelsen fraCIEXYZ API til virkelig å omforme fra innretningsavhengige fageverdier tilCIEXYZ, og fastsetter så 3x3-matrisen til identitetsmatrisen og fastsetter de endimensjonale oppslagstabeller til identitetsoppslagstabeller for å understøtte komplekse destinasjonsinnretninger som ikke kan karakteriseres med matriser og oppslagstabeller. For omforming fra innretningsavhengige (dd) til innretningsuavhengige (di) verdier, blir denne prosessen invertert og tilCIEXYZ API blir i stedet lurt inn.
"Uttrykket luft fraCIEXYZ", eller "lurt tilCIEXYZ" betyr slik de benyttes her, å erstatte pekeren til den protokollnormalen som forsynte funksjonen med en tilpasset funksjon som i virkeligheten passer inn i den ICC-kompatible fargeforvaltningsmodulen og omformer farger fra dd til di eller fra di til dd.
Selv om utførelseseksempler av foreliggende oppfinnelse som nevnt ovenfor, er blitt beskrevet i forbindelse med forskjellige beregningsinnretninger og nett-arkitekturer, kan de underliggende konsepter anvendes på enhver beregningsinnretning eller ethvert system hvor det er ønskelig med fargestyring eller fargeforvaltning. Teknikkene for å skaffe forbedret signalbehandling i samsvar med foreliggende oppfinnelse, kan således anvendes på en lang rekke applikasjoner og innretninger. Algoritmen eller algoritmene i henhold til oppfinnelsen kan f.eks. anvendes på operativsystemet til en beregningsinnretning tilveiebrakt som et separat objekt i innretningen, som en del av et annet objekt, som et nedlastbart objekt fra en server, som "mellommann" mellom en innretning eller et objekt og nettet, som et distribuert objekt, osv. Selv om eksempler på programmeringsspråk, navn og eksempler her er valgt for å representere forskjellige valgmuligheter, er disse språkene, navnene og eksemplene ikke ment å være begrensende. En vanlig fagkyndig på området vil forstå at det er mange måter å tilveiebringe objektkode på som oppnår den samme, en lignende eller en ekvivalent fargeforvaltning som oppnås i henhold til oppfinnelsen.
De forskjellige teknikker som er beskrevet her, kan implementeres i forbindelse med maskinvare eller programvare, eller eventuelt i forbindelse med en kombinasjon av begge. Fremgangsmåtene og anordningene i henhold til oppfinnelsen, eller visse aspekter eller deler av disse, kan således ha form av programkode (dvs. instruksjoner) utformet på et konkret medium, slik som disketter, CDROM, hardplater eller et hvilket som helst annet maskinlesbart lagringsmedium, hvor, når programkoden lastes inn i og utføres av en maskin, slik som en datamaskin, maskinen blir et apparat for å praktisere oppfinnelsen. I tilfelle ved utførel-se av programkode på programmerbare datamaskiner vil beregningsinnretningen generelt innbefatte en prosessor, et lagringsmedium som kan leses av prosessoren (innbefattende flyktige og ikke-flyktige minne- og/eller lagringselementer), minst én innmatingsinnretning og minst én utmatingsinnretning. Ett eller flere programmer som kan benytte signalbehandlingstjenestene i henhold til foreliggende oppfinnelse, f.eks. ved bruk av en databehandlings-API eller lignende, er fortrinnsvis implementert i en høynivåprosedyre eller objektorientert programmeringsspråk for å kommunisere med et datasystem. Programmet eller programmene kan imidlertid implementeres i assemblerer- eller maskin-språk om ønsket. I alle fall kan språket være et kompilert eller tolket språk og kombinert med maskinvare-implementeringer.
Fremgangsmåtene og anordningene i henhold til foreliggende oppfinnelse kan også praktiseres via kommunikasjoner utført i form av programkode som blir overført over ett eller annet overføringsmedium, slik som over elektriske ledninger eller kabler, gjennom fiberoptikk eller via enhver annen form for overføring, hvor, når programkoden blir mottatt og lastet inn i og utført av en maskin, slik som en EPROM, en portgruppe, en programmerbar logisk innretning (PLD), en klient-datamaskin, en videoopptaker eller lignende, eller en mottaksmaskin som har de signalbehandlingsevner som er beskrevet i utførelseseksemplene ovenfor, blir et apparat for å praktisere oppfinnelsen. Implementert på en universalprosessor kombineres programkoden med prosessoren for å gi et unikt apparat som virker for å påkalle funksjonaliteten til foreliggende oppfinnelse. Uansett hvilke lagrings-teknikker som brukes i forbindelse med foreliggende oppfinnelse, kan det i tillegg, uten unntak være en kombinasjon av maskinvare og programvare.
Selv om foreliggende oppfinnelse er blitt beskrevet i forbindelse med de fo-retrukne utførelsesformer på de forskjellige figurene, vil man forstå at andre lignende utførelsesformer kan benyttes, eller at modifikasjoner og tillegg kan gjøres til den beskrevne utførelsesform for å utføre den samme funksjonen som foreliggende oppfinnelse uten å avvike fra denne. Selv om eksempler på nettmiljøer i forbindelse med oppfinnelsen f.eks. er beskrevet i forbindelse med et nettmiljø, slik som et likemann-til-likemann-nettmiljø, vil en fagkyndig på området forstå at foreliggende oppfinnelse ikke er begrenset til dette, og at fremgangsmåtene som er beskrevet i beskrivelsen kan gjelde for en hvilken som helst beregningsinnretning eller et hvilket som helst miljø, slik som en spillekonsoll, en håndholdt datamaskin, en bærbar datamaskin, osv., uansett om den er ledningsforbundet eller trådløs, og kan anvendes på et hvilket som helst antall slike beregningsinnretninger som er tilkoplet via et kommunikasjonsnett og som vekselvirker over nettet. Det skal videre understrekes at en rekke datamaskinplattformer, innbefattende operativsystemer for håndholdte innretninger og andre applikasjonsspesifikke operativsystemer er påtenkt, spesielt ettersom antallet trådløse, nettilknyttede innretninger fortsetter å øke. Videre kan foreliggende oppfinnelse implementeres i eller over et antall prosesseringsbrikker eller -innretninger, og lagring kan likeledes bevirkes over et antall innretninger. Foreliggende oppfinnelse skal derfor ikke begrenses til noen enkelt utførelsesform, men skal i stedet anses når det gjelder bredde og rekkevid-de, å være bare begrenset innenfor de vedføyde patentkrav.

Claims (49)

1. Fremgangsmåte for å tilveiebringe fargeforvaltning, karakterisert ved: å motta innretningsuavhengige fargedata fra minst én kildeinnretning for omsetting til minst én destinasjonsinnretning; å generere en innretningsforbindelsesprofil som representerer minst én fargeegenskapsforskjell mellom den minst ene kildeinnretning og den minst ene destinasjonsinnretning; å simulere minst én brukerprogramgrensesnittfunksjon i et fargeforvaltningssystem ved å tilveiebringe innretningsforbindelsesprofilen til den minst ene brukerprogramgrensesnittfunksjon; og å påkalle den minst ene brukerprogramgrensesnittfunksjon for å generere destinasjonsinnretningsavhengige fargeverdier for den minst ene destinasjonsinnretning.
2. Fremgangsmåte ifølge krav 1, hvor simuleringen innbefatter å simulere minst én grensesnittfunksjon for et X11-brukerprogram.
3. Fremgangsmåte ifølge krav 2, hvor simuleringen innbefatter å simulere minst én av en tilCIEXYZ-funksjon og en fraCIEXYZ-funksjon.
4. Fremgangsmåte ifølge krav 1, hvor simuleringen innbefatter å levere innretningsforbindelsesprofilen til den minst ene brukerprogramgrensesnittfunksjonen.
5. Fremgangsmåte ifølge krav 1, hvor den minst ene kildeinnretning og den minst ene destinasjonsinnretning innbefatter minst én av en beregningsinnretning og et programvareobjekt.
6. Fremgangsmåte ifølge krav 1, videre omfattende å påkalle minst én funksjon i et første fargeforvaltningssystem.
7. Fremgangsmåte ifølge krav 6, hvor påkallingen av minst én funksjon i et andre fargeforvaltningssystem innbefatter å påkalle fargeforvaltningsmoduler (CMM, Color Management Modules).
8. Fremgangsmåte ifølge krav 1, hvor de innretningsuavhengige fargedata i det minste innbefatter standard fargerom-data (sRGB-data), standard utvidede fargerom-data (scRGB), profildata i henhold til det internasjonale fargekonsortium (ICC) og cyan, magenta, gule og sorte data (CMYK-data).
9. Fremgangsmåte ifølge krav 1, hvor de innretningsuavhengige fargedata innbefatter minst én av scRGB, RIMM RGB (EK/PIMA), ROMM RGB (EK/PIMA) og esRGB (HP/PIMA)-fargedataene.
10. Fremgangsmåte ifølge krav 9, videre innbefattende å omforme tall med fortegn og flytende komma til forkortelser uten fortegn.
11. Fremgangsmåte ifølge krav 9, hvor påkallingen innbefatter å tilveiebringe tonal kompresjon via 3 endimensjonale oppslagstabeller (LUTer) i innretningsforbindelsesprofilen.
12. Fremgangsmåte ifølge krav 1, hvor simuleringen innbefatter: å simulere den minst ene brukerprogramgrensesnittfunksjonen til å omforme fra innretningsavhengige fargeverdier til ClEXYZ-verdier; og enten å benytte en 3x3-matrise og en endimensjonal oppslagstabell i innretningsforbindelsesprofilen til å karakterisere en spesifikk utgangsinnretning, eller å fastsette 3x3-matrisen til innretningsforbindelsesprofilen med den identiske mat-rise og fastsette de endimensjonale oppslagstabellene til innretningsforbindelsesprofilen til identiske oppslagstabeller.
13. Fremgangsmåte ifølge krav 1, hvor fremgangsmåten blir invertert og i stedet omformer innretningsavhengige fargeverdier til innretningsuavhengige fargeverdier, og hvor simuleringen innbefatter å simulere en tilCIEXYZ-funksjon til bru-kerprogramgrensesnittet.
14. Fremgangsmåte ifølge krav 1, hvor simuleringen innbefatter å erstatte en peker til protokollstandardverdien som leveres til den minst ene brukerprogramgrensesnittfunksjonen med en tilpasset funksjon som påkaller en ICC-kompatibel fargeforvaltningsmodul.
15. Minst én av et operativsystem, en driverkode, et brukerprogramgrensesnitt, et verktøysett og en samprosesseringsinnretning for å tilveiebringe den reguler-bare tekstursampling i henhold til krav 1.
16. Modulert datasignal som inneholder datamaskinutførbare instruksjoner for å utføre fremgangsmåten i henhold til krav 1.
17. Beregningsinnretning omfattende midler for å utføre fremgangsmåten i henhold til krav 1.
18. Datamaskinlesbart medium for å tilveiebringe fargeforvaltning som har lagret datamaskinutførbare instruksjoner for å utføre en fremgangsmåte, hvor fremgangsmåten omfatter: å motta innretningsuavhengige fargedata fra minst én kildeinnretning for omsetting til minst én destinasjonsinnretning; å generere en innretningsforbindelsesprofil som representerer i det minste ett forskjellig fargekarakteristikon mellom den minst ene kildeinnretning og den minst ene destinasjonsinnretning; å simulere minst én brukerprogramgrensesnittfunksjon i et fargeforvaltningssystem ved å tilveiebringe innretningsforbindelsesprofilen til den minst ene brukerprogramgrensesnittfunksjon; og å påkalle minst én brukerprogramgrensesnittfunksjon for å generere destinasjonsavhengige fargeverdier for den minst ene destinasjonsinnretning.
19. Datamaskinlesbart medium i henhold til krav 18, hvor simuleringen innbefatter å simulere minst én grensesnittfunksjon for X11-brukerprogrammering.
20. Datamaskinlesbart medium ifølge krav 19, hvor simuleringen innbefatter å simulere minst én av en tilCIEXYZ-funksjon og en fraCIEXYZ-funksjon.
21. Datamaskinlesbart medium i henhold til krav 18, hvor simuleringen innbefatter å tilveiebringe innretningsforbindelsesprofilen til den minst ene brukerprogramgrensesnittfunksjonen.
22. Datamaskinlesbart medium ifølge krav 18, hvor den minst ene kildeinnretning og den minste ene destinasjonsinnretning innbefatter minst én av en beregningsinnretning og et programvareobjekt.
23. Datamaskinlesbart medium ifølge krav 18, videre omfattende å påkalle minst én funksjon i et første fargeforvaltningssystem.
24. Datamaskinlesbart medium ifølge krav 23, hvor påkallingen av minst én funksjon i et andre fargeforvaltningssystem innbefatter å påkalle fargeforvaltningsmoduler (CMM, Color Management Moduls).
25. Datamaskinlesbart medium ifølgé krav 18, hvor de innretningsuavhengige fargedata innbefatter minst én av standard fargerom-data (sRGB-data), standard utvidede fargeromsdata (scRGB-data), profildata fra det internasjonale fargekonsortium (ICC) og cyan, magenta, gul og sort data (CMYK-data).
26. Datamaskinlesbart medium ifølge krav 18, hvor de innretningsuavhengige fargedata innbefatter minst én av scRGB, RIMM RGB (EK/PIMA), ROMM RGB (EK/PIMA) og esRGB (HP/PIMA)-fargedata.
27. Datamaskinlesbart medium ifølge krav 28, videre innbefattende å omfatte tall med fortegn og flytende komma til forkortelser uten fortegn.
28. Datamaskinlesbart medium ifølge krav 26, hvor påkallingen innbefatter å fremskaffe tonal kompresjon via 3 endimensjonale oppslagstabeller i innretningsforbindelsesprofilen.
29. Datamaskinlesbart medium ifølge krav 18, hvor simuleringen omfatter: å simulere den minst ene brukerprogramgrensesnittfunksjon til å omforme fra innretningsavhengige fargeverdier til ClEXYZ-vedier; og én av (1) å benytte en 3x3matrise og endimensjonale oppslagstabeller i innretningsforbindelsesprofilen til å karakterisere en spesiell utmatingsinnretning, (2) å fastsette 3x3-matrisen i innretningsforbindelsesprofilen til identitetsmatrisen og å sette de endimensjonale oppslagstabellene i innretningsforbindelsesprofilen til identiske oppslagstabeller.
30. Datamaskinlesbart medium ifølge krav 18, hvor operasjonen til fremgangsmåten blir invertert, og at fremgangsmåten i stedet omformer innretningsavhengige fargeverdier til innretningsuavhengige verdier, og hvor simuleringen innbefatter å simulere en tilCIEXYZ-funksjon til brukerprogrammeringsgrensesnittet.
31. Datamaskinlesbart medium ifølge krav 18, hvor simuleringen innbefatter å erstatte en peker til den normalverdi i henhold til protokollen som leveres til den minst ene brukerprogrammeringsgrensesnittfunksjon med en tilpasset funksjon som påkaller en ICC-kompatibel fargeforvaltningsmodul.
32. Beregningsinnretning for bruk i forbindelse med fargeforvaltning, karakterisert ved: en innmatingskomponent som mottar innretningsuavhengige fargedata fra minst én kildeinnretning for omsetting til minst én destinasjonsinnretning; en prosesseringskomponent som genererer en innretningsforbindelsesprofil som representerer minst én forskjellig fargekarakteristikk mellom den minst ene kildeinnretning og den minst ene destinasjonsinnretning; en simuleringskomponent som simulerer i det minste én brukerprogrammeringsgrensesnittfunksjon i et fargeforvaltningssystem ved å tilveiebringe innretningsforbindelsesprofilen til den minst ene brukerprogramgrensesnittfunksjon; og en utmatingskomponent som påkaller den minst ene brukerprogrammeringsgrensesnittfunksjon til å generere destinasjonsavhengige fargeverdier for den minst ene destinasjonsinnretning.
33. Innretning ifølge krav 32, hvor simuleringskomponenten simulerer den minst ene X11-brukerprogrammeringsgrensesnittfunksjon.
34. Innretning ifølge krav 33, hvor simuleringskomponenten simulerer minst én av en tilCIEXYZ-funksjon og en fraCIEXYZ-funksjon.
35. Innretning ifølge krav 32, hvor simuleringskomponenten leverer innretningsforbindelsesprofilen til den minst ene applikasjonsprogrammeringsgrensesnittfunksjon.
36. Innretning ifølge krav 32, hvor den minst ene kildeinnretning og den minst ene destinasjonsinnretning innbefatter minst én av en beregningsinnretning og et programvareobjekt.
37. Innretning ifølge krav 32, videre omfattende en påkallingskomponent som påkaller minst én funksjon i et første fargeforvaltningssystem.
38. Innretning ifølge krav 37, hvor påkallingskomponenten påkaller minst én funksjon i et andre fargeforvaltningssystem som innbefatter påkalling av fargeforvaltningsmoduler (CMM, Color Management Modules).
39. Innretning ifølge krav 32, hvor de innretningsuavhengige fargedata innbefatter minst én av standard fargerom-data (sRGB-data), utvidede standard fargerom-data (scRGB-data), profildata fra det internasjonale fargekonsortium (ICC) og cyan, magenta, gul og sort data (CMYK)-data.
40. Innretning ifølge krav 32, hvor de innretningsuavhengige fargedata innbefatter minst én av scRGB, RIMM RGB (EK/PIMA), ROMM RGB (EK/PIMA) og esRGB (HP/PIMA) fargedata.
41. Innretning ifølge krav 40, videre innbefattende en omformingskomponent som omfatter tall med fortegn og flyt med komma til forkortelser uten fortegn.
42. Innretning ifølge krav 40, hvor påkallingskomponenten tilveiebringer tonal kompresjon via 3 endimensjonale oppslagstabeller i innretningsforbindelsesprofilen.
43. Innretning ifølge krav 32, hvor simuleringskomponenten simulerer den minst ene applikasjonsprogrammeringsgrensesnittfunksjon til å omforme fra innretningsavhengige fargeverdier til ClEXYZ-verdier, og én av (1) benytter en 3x3-matrise og endimensjonale oppslagstabeller i innretningsforbindelsesprofilen til å karakterisere en spesiell utgangsinnretning, og (2) å fastsette 3x3-matrisen i innretningsforbindelsesprofilen til identitetsmatrisen og fastsette de endimensjonale oppslagstabellene i innretningsforbindelsesprofilen til identitetsoppslagstabeller.
44. Innretning ifølge krav 32, hvor operasjonen til komponentene er invertert, og hvor komponentene i stedet omformer innretningsavhengige fargeverdier til innretningsuavhengige verdier, og hvor simuleringskomponenten simulerer en til— ClEXYZ-funksjon i brukerprogrammeringsgrensesnittet.
45. Innretning ifølge krav 32, hvor simuleringskomponenten erstatter en peker til den protokollnormal som leveres til den minst ene applikasjonsprogrammeringsgrensesnittfunksjon med en kundetilpasset funksjon som påkaller en ICC-kompatibel fargeforvaltningsmodul.
46. Minst ett datamaskinlesbart medium for å tilveiebringe fargeforvaltning, hvorpå det er lagret et antall datamaskineksekverbare moduler som omfatter datamaskineksekverbare instruksjoner, karakterisert ved: midler for å motta innretningsuavhengige fargedata fra minst én kildeinnretning for å omsetting til minst én destinasjonsinnretning; midler for å generere en innretningsforbindelsesprofil som representerer minst én fargeegenskapsforskjell mellom den minst ene kildeinnretning og den minst ene destinasjonsinnretning; midler for å simulere den minst ene brukerprogrammeringsgrensesnittfunksjon i et fargeforvaltningssystem ved å tilveiebringe innretningsforbindelsesprofilen til den minst ene brukerprogramgrensesnittfunksjon; og midler for å påkalle den minst ene brukerprogrammeringsgrensesnittfunksjon for å generere destinasjonsavhengige fargeverdier for den minst ene destinasjonsinnretning.
47. Minst et datamaskinlesbart medium i henhold til krav 46, hvor simuleringsanordningene simulerer minst én X11-brukerprogrammeringsgrensesnittfunksjon.
48. Beregningsinnretning for bruk i forbindelse med fargeforvaltning, karakterisert ved: anordninger for å motta innretningsuavhengige fargedata fra minst én kildeinnretning for omsetting til minst én destinasjonsinnretning; anordninger for å generere en innretningsforbindelsesprofil som representerer minst én forskjellig fargekarakteristikk mellom den minst ene kildeinnretning og den minst ene destinasjonsinnretning; anordninger for å simulere den minst ene brukerprogrammeringsgrensesnittfunksjon i et fargeforvaltningssystem ved å tilveiebringe innretningsforbindelsesprofilen til den minst ene brukerprogramgrensesnittfunksjon; og anordninger for å påkalle den minst ene brukerprogrammeringsgrensesnittfunksjon for å generere destinasjonsavhengige fargeverdier for den minst ene des-tinasjonsanordning.
49. Innretning ifølge krav 48, hvor simuleringsanordningene simulerer minst én X11 -brukerprogrammeringsgrensesnittfunksjon.
NO20031558A 2002-06-24 2003-04-07 Systemer og fremgangsmater for a handtere farger NO327644B1 (no)

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
NO20031558D0 NO20031558D0 (no) 2003-04-07
NO20031558L NO20031558L (no) 2003-12-29
NO327644B1 true NO327644B1 (no) 2009-09-07

Family

ID=22658133

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20031558A NO327644B1 (no) 2002-06-24 2003-04-07 Systemer og fremgangsmater for a handtere farger

Country Status (15)

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

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
CN100531291C (zh) 2004-11-01 2009-08-19 彩色印片公司 对增强的色彩空间内容进行母版制作和分发的方法和系统
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 삼성전자주식회사 지능형 색역 관리 방법
CN101346984B (zh) 2005-12-21 2012-12-26 汤姆森特许公司 用于显示彩色图像的方法以及用于图像的色彩显示装置
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
KR20160054039A (ko) 2011-05-27 2016-05-13 돌비 레버러토리즈 라이쎈싱 코오포레이션 변하는 레벨들의 메타데이터을 포함하는 컬러 관리를 제어하기 위한 스케일러블 시스템들
EP4155898A1 (en) * 2011-12-06 2023-03-29 Dolby Laboratories Licensing Corporation Method of improving the perceptual luminance nonlinearity-based image data exchange across different display capabilities
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
WO2018009226A1 (en) * 2016-07-08 2018-01-11 Hewlett-Packard Development Company, L.P. Color look up table compression
KR200485483Y1 (ko) 2017-07-19 2018-01-12 이병한 기능성 공용 옷장
WO2020100200A1 (ja) * 2018-11-12 2020-05-22 Eizo株式会社 画像処理システム、画像処理装置、およびコンピュータープログラム
US20220095891A1 (en) * 2019-02-14 2022-03-31 Dai Nippon Printing Co., Ltd. Color correction device for medical apparatus
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 주식회사 아트인가구 기능성 공용 옷장

Family Cites Families (8)

* 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
JPH0998299A (ja) * 1995-10-02 1997-04-08 Canon Inc 画像処理装置及び方法
JP3658141B2 (ja) 1997-05-21 2005-06-08 キヤノン株式会社 画像処理装置及び画像処理方法
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
US6633668B1 (en) 1999-07-12 2003-10-14 Canon Kabushiki Kaisha Device independent image compression and color management
EP1079606A3 (en) 1999-08-11 2003-07-09 Canon Kabushiki Kaisha Color space adjustment for multiple different substrates
US6603483B1 (en) 1999-11-15 2003-08-05 Canon Kabushiki Kaisha Color management and proofing architecture

Also Published As

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

Similar Documents

Publication Publication Date Title
NO327644B1 (no) Systemer og fremgangsmater for a handtere farger
JP3705617B2 (ja) 協同システムにおけるアプリケーション共用パレット管理の方法および装置
US8493619B2 (en) Hardware-accelerated color data processing
US8370856B2 (en) Computer system with controller kernel and remote desktop
US6292166B1 (en) System and method for sharing diverse display types in a bit map sharing collaborative tool
US5915098A (en) System for compressing bit maps to be shared and displayed in collaborative tool by client and server systems
KR20050031866A (ko) 원격 장치 매체 능력을 판정하는 시스템 및 방법
WO2007022240A1 (en) Gamut shape dependent color management system
US7667872B2 (en) Gamut mapping and rendering intent management system
US7342682B2 (en) Incremental color transform creation
US7330610B2 (en) System and method for updating a sign-on logo image file in a computer
US11521574B2 (en) Dynamically gamut adjustable displays
JP2002218262A (ja) 蓄積画像配送方法、記録媒体及び蓄積画像配送装置
EP1043886A2 (en) Method and apparatus for color mapping
Abrardo et al. A Java-based system for remote correction of CRT color distortion
JPH06308923A (ja) カラー画像データの単色階調輝度への変換機構
CN111048052A (zh) 显示控制方法、装置、设备及计算机存储介质
JPH10260669A (ja) 処理装置

Legal Events

Date Code Title Description
MM1K Lapsed by not paying the annual fees