Kernebillede - Core Image

Core Image er en pixel-nøjagtig, næsten realtids, ikke-destruktiv billedbehandlingsteknologi i Mac OS X. Implementeret som en del af QuartzCore-rammen i Mac OS X 10.4 og nyere, giver Core Image en plugin-baseret arkitektur til anvendelse af filtre og effekter i kvartsgrafikgengivelseslaget . Rammen blev senere tilføjet til iOS i iOS 5 .

Oversigt

Kernebilledet opsamler den krævede manipulationsproces på pixelniveau, når et filter anvendes på et billede, hvilket gør det nemt for applikationer at implementere billedtransformationsfunktioner uden omfattende kodning. I en enkel implementering, Core Image anvender en enkelt billede Filter til pixel data for en given kilde til at producere det transformerede billede. Hvert billedfilter specificerer en enkelt transformation eller effekt, enten indbygget i Core Image eller indlæst fra et plugin kaldet en Image Unit . Kombineret med forudindstillede eller brugerdefinerede inputparametre kan filteret påføres de originale pixeldata uden at ændre det og derved tilvejebringe ikke-destruktiv billedredigering.

Ligesom Photoshop kan Core Image anvende flere filtre på den samme billedkilde. I stedet for at anvende en række filtre individuelt samler Core Image en dynamisk instruktionsrørledning, så der kun skal anvendes en beregning på pixeldataene for at opnå en kumulativ effekt. Anvendelse af pixeloperationer tilknyttet flere filtre kan opnås samtidigt og uden en signifikant forøgelse af behandlingstid. Uanset antallet af filtre, samler Core Image koden til denne instruktionsrørledning med en just-in-time compiler , som udføres af enten CPU eller grafikkorts GPU, alt efter hvad der kan udføre beregningen hurtigere.

Filtre er skrevet på Core Image Kernel Language , som deler et undersæt af kommandoer med OpenGL Shading Language (GLSL) . Når en kompatibel GPU er tilgængelig, skriver Core Image-kompilatoren instruktionsrørledningen ved hjælp af GLSL, håndterer buffere og siger transparent. Selvom GPU-gengivelse foretrækkes, kan compileren fungere i en CPU-tilbagefaldstilstand og generere kommandoer, der er egnede til den aktuelle CPU-arkitektur i stedet. CPU-fallback bruger vektorbehandlingsfunktionerne i den nuværende CPU eller CPU'er, og det er opmærksom på flere processorer. Således afhænger Core Image-ydeevnen af ​​GLSL-funktionerne i GPU'en eller CPU'ens processorkraft. Med en understøttet GPU kan de fleste effekter gengives i realtid eller næsten realtid.

Historie og implementering

Core Image blev introduceret med Mac OS X 10.4 . Tidlige eksempler på dets anvendelse kan findes i krusningseffekten i Dashboard og Apples professionelle digitale fotograferingsapplikation, Aperture . Fra og med Mac OS X 10.5 kan ethvert program, der implementerer Image Kit, bruge Core Image. Preview og iPhoto er almindelige eksempler.

I 2011 tilføjede Apple Core Image til iOS i iOS 5.0.

De Xcode Tools inkluderer Core Image Fun House og Quartz Composer ; begge bruger Core Image.

Pixel nøjagtighed

Al pixelbehandling, der leveres af en billedenhed, udføres i et præ-multipliceret alfa ( RGBA ) -farverum , der lagrer fire farvekanaler: rød, grøn, blå og gennemsigtighed ( alfa ). Hver farvekanal er repræsenteret af et 32-bit, flydende nummer. Dette giver enestående farvedybde, langt større end det menneskelige øje kan opleve , da hver pixel er repræsenteret af en 128-bit vektor (fire 32-bit farvekanaler). For farverum med lavere bitdybde giver beregningsmodellen med flydende punkt, der anvendes af Core Image, enestående ydeevne, hvilket er nyttigt ved behandling af flere billeder eller videorammer.

Understøttede grafikprocessorer

Enhver programmerbar GPU, der understøtter de krævede OpenGL Shader ( GLSL ) -kommandoer, er Core Image-kompatibel. Apple har brugt følgende grafikkort til at understøtte Core Image GPU-behandling i Mac OS X 10.4 og Aperture, så følgende liste kan betragtes som et eksempel på minimumskrav:

  • ATI Mobility Radeon 9700 (Mobility Radeon 9600 er også i stand)
  • ATI Radeon 9550, 9600, 9650, 9600 XT, 9600 Pro, 9700 Pro, 9800 XT og 9800 Pro
  • ATI Radeon X600 XT, X600 Pro, X800 XT, X850 XT, X1600, X1900 XT
  • ATI Radeon HD 2400 XT, HD 2600 Pro og HD 2600 XT
  • NVIDIA GeForce FX 5200 Ultra, FX Go 5200
  • NVIDIA GeForce 6600, 6600 LE, 6800 Ultra DDL og 6800 GT DDL
  • NVIDIA GeForce 7300 GT, 7600 GT og 7800 GT
  • NVIDIA GeForce 8600M GT og 8800 GT
  • NVIDIA GeForce 9400M & 9600M GT
  • NVIDIA GeForce GT 120 & GT 130
  • NVIDIA GeForce GTX 285
  • NVIDIA Quadro FX 4500 & FX 5600
  • NVIDIA Quadro FX 4800
  • NVIDIA Quadro 4000
  • NVIDIA GeForce 320M
  • NVIDIA GeForce GT 330M
  • NVIDIA GeForce GT 640M
  • NVIDIA GeForce GT 650M
  • NVIDIA GeForce GTX 660M
  • NVIDIA GeForce GTX 675M
  • NVIDIA GeForce GTX 680MX
  • NVIDIA GeForce GT 750M
  • NVIDIA GeForce GT 755M
  • NVIDIA GeForce GTX 775M
  • NVIDIA GeForce GTX 780M
  • Intel GMA 900 , GMA 950 eller GMA X3100
  • Intel HD Graphics 3000 (Sandy Bridge)
  • Intel HD Graphics 4000 (Ivy Bridge)
  • Intel HD Graphics 5000 (Haswell)
  • Intel Iris 5100 (Haswell)
  • Intel Iris Pro 5200 (Haswell)
  • Intel HD Graphics 5300 (Broadwell)
  • Intel HD Graphics 6000 (Broadwell)
  • Intel Iris 6100 (Broadwell)

Bemærk, at enhver GPU, der er i stand til at håndtere Core Image-instruktioner, også er Quartz Extreme- kompatibel. Kravene til Core Image er større end Quartz Extreme.

Indbyggede filtre

Wikipedia-logo med "Farve monokrom", "Parallelogram flise" og "Klem forvrængning" billedenheder anvendt

macOS indeholder mange indbyggede filtre, herunder de følgende. Mac OS X 10.4 introducerede over 100 af dem, og Mac OS X 10.5 er tilføjet til listen.

  • Slør som median, gaussisk, bevægelse og støj
  • Farvejusteringer og effekter, som Eksponering, Gamma-justering og Sepia-tone
  • Kompositionsoperationer, som Addition og Multiply Blends eller Hard Light
  • Forvrængninger som Pinch, Circle Splash og Vortex
  • Generatorer, som Star Shine og Lenticular Halo
  • Geometrijusteringer, såsom beskæring, skalering, rotation og affine-transformation
  • Halvtone-, fliser- og posterstørrelsesfiltre
  • Overgange, såsom opløsning og krusning

Et open source-dokumentationswebsted for indbyggede Core Image-filtre vedligeholdes på CIFilter.io .

Se også

Referencer

eksterne links