Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Core Image Specifikationer

Tråden skapades och har fått 80 svar. Det senaste inlägget skrevs .
  • Medlem
  • Uppsala
  • 2005-04-13 09:53

om exposé fungerar utan problem idag så kommer det fungera utan problem i tiger.

  • Medlem
  • Stockholm
  • 2005-04-13 12:39

Dumt att folk ser Core Image som "flashiga effekter" för det är mycket mycket mer än så. Tänk er alla filter i Photoshop, fast de körs i realtid genom grafikkortet. Yum!

Visst, den kan det används för "flashiga" saker också. Core Image Enhanced version av Keynote lär inte dröja länge

Ursprungligen av Erik.dv:

Dumt att folk ser Core Image som "flashiga effekter" för det är mycket mycket mer än så. Tänk er alla filter i Photoshop, fast de körs i realtid genom grafikkortet. Yum!

Visst, den kan det används för "flashiga" saker också. Core Image Enhanced version av Keynote lär inte dröja länge

Finns redan. Om du tittar i Keynote 2 finns ett antal effekter som är avslagna just nu.

Ursprungligen av Leftrustle:

Finns redan. Om du tittar i Keynote 2 finns ett antal effekter som är avslagna just nu.

Vilka då och vart ser man det? Jag hittar då inget som inte är valbart.

Ursprungligen av Rickard A:

Vilka då och vart ser man det? Jag hittar då inget som inte är valbart.

Nähe, då är det väl bara min dator som har för kasst grafikkort... Men t.ex. ripple-effekten finns där, men den kommer vara systemwide iom CoreImage.

  • Medlem
  • Stockholm
  • 2005-04-14 00:47

Mer info här:

It doesn't look like this is just a set of filters, though; this looks like a new drawing API. That means that theoretically, this could also be used to re-implement Quartz in a fully-hardware-accelerated manner, rather than the limited form currently used in Quartz Extreme.

Well, there are a few different things at work here. First, Apple did indeed announce Quartz 2D Extreme, which is the hardware acceleration you mention (text, lines, image copies, etc. all hardware accelerated). The way it works is quite impressive actually.

CoreImage is really quite a piece of work. Probably the most impressive thing I've seen out of Apple (on a technical basis) in years. There are a number of facets to it, it isn't *just* about filters. It provides a nice hardware accelerated image API. This in itself would be a good thing.

However they way they chose to implement it allows for incredible flexibility.

Your average application will benefit from hardware accelerated UI drawing (assuming they don't use QuickDraw) without doing anything at all.

More savvy applications that manipulate images in various ways can benefit by having available to them a nice set of useful image manipulation tools: common things like rotation, scaling, blurring, sharpening... all hardware accelerated.

Even more specialized applications can have their own image manipulation kernels that do specific things to images. You write them in a C-like language, and CoreImage compiles them for your video card (or uses its native runtime if your video card doesn't support these things).

But it gets better: string a few filters together, and a code-path optimized filter is created for them, dynamically and automatically.

The geek factor is high, as is the usefulness in the real world. It offers performance and convenience of such magnitude that I'd be surprised if developers don't pick up on it quickly. The downside is that cross platform products like Photoshop, Premier, etc

People who don't know what they're talking about should STFU and stop confusing everyone who really wants to know this shit.

1) Motion does Not Use CoreImage or CoreVideo (currently). There's a lot of speculation here at the WWDC that the trade was the other way around: This tech was developed for Motion and then someone decided to put it in the OS. I feel fine saying this despite NDA because it's mostly speculation.

2) The software-fallback that CoreImage uses requires a separate drawing context (a SoftwareContext vs. Hardware). This means that it must be done manually, and that apps can choose to disallow non-realtime performance.

3) You can, indeed, dump output from CoreImage to either a screen or a bitmapContext. I didn't have a chance to ask about CoreVideo.

4) Quartz2D has been accelerated. It DOES REQUIRE some modification by application developers who use custom views, but not much. After modification, general UI speedup is 2x. Processor utilization goes way down.

5) Virtually everyone is in the same boat (including major developers like Adobe and Macromedia, and Apple itself): Adapting older technologies (like Quicktime and Final Cut Pro) to use this new stuff. It's going to take them a while, too. Same with CoreData.

6) The post above this one is INCORRECT. Quartz 2D Extreme in fact has an incredibly _small_ speedup for text rendering (close to 12x for normal on-screen amounts, much lower than simple shapes and whatnot. THIS IS DIFFERENT than the speedup for a typical Bezier path, but it's unclear why and I don't feel comfortable saying much more.

7) IMPORTANT: The optimizations made for the graphics pipeline in Quartz 2D will benefit ALL users, not just people with good graphics cards. Speedup will be smaller, but it definitely not be a speed-down.

8) TONS of effort has gone in to making sure that the various edge cases (tons of windows, tons of text, blah blah blah) are handled adequately. Your machine will NOT grind to a halt like some shitty 3D game when it has too much to do.

9) The CoreImage and CoreVideo frameworks are open and absolutely _incredible_. The way that the JITC works for the OpenGL shader language is such that you can actually go into the bundles and _see_ all the OGLSL programs that ship with CoreImage. Very Very Very cool shit.

So stop bitching, people. This is amazing shit, way the hell better than anything we had before. No one will be left behind, no one will be unhappy, and everything will be faster. Truly amazing stuff.

Även lite historik
First, there was Quartz 2D, which was a heavily modified version of the NeXT OS's Postscript renderer.

Drawing a window in Quartz 2D (OS X 10.0/10.1):

• Each view in the window (an element like a button, text box, picture, etc) is drawn into a hidden buffer (done on the CPU).
• This back buffer is copied to the area of the window visible on the screen (done on the GPU, using traditional 2D acceleration).
• Transparent elements of the window (drop shadows etc) are composited (blended) with other windows onscreen (done on the CPU, since traditional 2D acceleration cannot handle this, it just moves pixels around).

This was slow because the CPU still had a ton of work to do, and inefficient because the GPU had a ton of power that was not being used. So, Apple came up with Quartz Extreme.

Drawing a window in Quartz Extreme (OS X 10.2 and 10.3):

• Each view in the window (an element like a button, text box, picture, etc) is drawn into a hidden buffer (done on the CPU).
• The back buffer is uploaded to the video card as a texture. The back buffers of all visible windows are also stored as textures. (Done on GPU, if that wasn't obvious).
• All the windows are rendered with OpenGL by applying the textures to flat polygons. Transparent elements of the windows are handled automatically by hardware blending (done on GPU).

This was much better, since it removed a lot of grunt work from the CPU, and allowed the windowing system to do fun stuff like transparent OpenGL contexts, Expose, and the FUS spinning cube. But it's not as good as it could be. In Tiger, the last piece of the puzzle will be converted:

Drawing a window in Quartz 2D Extreme (10.4+):

• Each view in the window is rendered into an offscreen OpenGL context (done on the GPU). The CPU no longer has to do any rasterizing, which is something it's not very good at in the first place.
• The offscreen contexts are all converted to textures (this is done on the GPU, and much faster than uploading back buffers from main memory as Quartz Extreme did).
• The screen is rendered on the GPU.

The entire render pipeline is now on the GPU, so the CPU is freed up for everything else. That Apple was able to shove all this into the graphics system without breaking any existing apps is due to the multilayered, object-oriented design of Quartz from the beginning.

  • Medlem
  • Göteborg
  • 2005-04-14 09:23

Inte att man förstod allting, men det var en lärorik sammanställning. Framföralt den sista historikbiten var matnyttig. Kan jag tolka det som att GUIet, i allmänhet, borde upplevas som snabbare i Tiger?

  • Medlem
  • Stockholm
  • 2005-04-14 09:33

Alla kommer som jag uppfattat det uppleva en ganska bra prestanda ökning i och med Tiger vad gäller grafikuppritning (skala fönster osv.). Men den största ökning lär komma på maskiner med grafikkort som hanterar Quartz 2D Extreme. Tekniken tror jag har samma krav som Core Image/Video.

Men som jag fattat det så kommer ev. vissa funktioner funka för alla... Det återstår att test. Grafik kommer cachas mycket mer/bättre i och med Tiger på grafikkortet. Men det kommer inte funka på program som använder QuickDraw fortfarande, så det kommer ta tid innan vi ser denna ökningen system-wide.

Sen tror jag generellt att Tiger blivit snabbare, även på samma hårdvara som INTE har stöd för Quartz 2D Extreme. Jag såg nått demo där man ritade upp linjer så fort som möjligt:

QuickDraw i OSX: 1X
Quartz SoftWare: 5.3X
Quartz HardWare: 41,5X

Så snabbare blir saker, helt klart...

  • Medlem
  • Varberg
  • 2005-04-14 09:37
Ursprungligen av Erik.dv:

Alla kommer som jag uppfattat det uppleva en ganska bra prestanda ökning i och med Tiger vad gäller grafikuppritning (skala fönster osv.). Men den största ökning lär komma på maskiner med grafikkort som hanterar Quartz 2D Extreme. Tekniken tror jag har samma krav som Core Image/Video.

Men som jag fattat det så kommer ev. vissa funktioner funka för alla... Det återstår att test. Grafik kommer cachas mycket mer/bättre i och med Tiger på grafikkortet. Men det kommer inte funka på program som använder QuickDraw fortfarande, så det kommer ta tid innan vi ser denna ökningen system-wide.

Jag utläser potential för snabbare fönsterhantering i exempelvis Finder, visst borde det kunna vara en konsekvens av detta?

  • Medlem
  • Tjörn
  • 2005-04-14 09:37

Bland annat följande grafikkort kan utnyttja Core Image:
ATI Mobility Radeon 9700
ATI Radeon 9600 XT, 9800 XT, X800 XT
nVidia GeForce FX Go 5200
nVidia GeForce FX 5200 Ultra
nVidia GeForce 6800 Ultra DDL, 6800 GT DDL

  • Medlem
  • Uppsala
  • 2005-04-15 17:44
Ursprungligen av Ricky:

Bland annat följande grafikkort kan utnyttja Core Image:
ATI Mobility Radeon 9700
ATI Radeon 9600 XT, 9800 XT, X800 XT
nVidia GeForce FX Go 5200
nVidia GeForce FX 5200 Ultra
nVidia GeForce 6800 Ultra DDL, 6800 GT DDL

När du nämner "bland annat" då innebär att det inte är slutligt fastställning.

Apple säger inte rakt ut vilka grafikkortet kommer stödja 100% ( det är bara att vänta )

Samt att Apple bör göra listan vilka grafikkort som stödjer det flera funktioner i Tiger.
Det kan låta luddigt, men intressant då vet man vilka grafikkort inte alls stödjer nya
kommande funktioner i Tiger.

  • Medlem
  • Stockholm
  • 2005-04-14 09:45

Jag utläser potential för snabbare fönsterhantering i exempelvis Finder, visst borde det kunna vara en konsekvens av detta?

Absolut! Uppritning av fönster kommer ske på GPU-nivå till stor del, ja det kommer kunna bli enormt mycket snabbare. Dock krävs det nog en del av dagens utvecklare att göra fixar till sina apps för att det ska funka. Ex. har jag läst att så väl Photoshop som Office till mångt och mycket lever kvar på QuickDraw kod (uppritningsmetoden i OS9).

Så, men ja, skalafönster, scrolla i fönster, panorerar bilder m.m. är vad som BÖR bli snabbare.

  • Medlem
  • Varberg
  • 2005-04-14 10:37
Ursprungligen av Erik.dv:

Jag utläser potential för snabbare fönsterhantering i exempelvis Finder, visst borde det kunna vara en konsekvens av detta?

Absolut! Uppritning av fönster kommer ske på GPU-nivå till stor del, ja det kommer kunna bli enormt mycket snabbare. Dock krävs det nog en del av dagens utvecklare att göra fixar till sina apps för att det ska funka. Ex. har jag läst att så väl Photoshop som Office till mångt och mycket lever kvar på QuickDraw kod (uppritningsmetoden i OS9).

Så, men ja, skalafönster, scrolla i fönster, panorerar bilder m.m. är vad som BÖR bli snabbare.

Precis, många av teknikerna i Tiger kommer vi kanske inte se en omedelbar effekt av, men på sikt kan verkligen tekniker som Quartz 2D Extreme, CoreImage och CoreData (enligt vissa utvecklare den mest intressanta tekniken på sikt) m fl göra Mac-plattformen oerhört mycket mer intressant och attraktiv. Och i slutändan en njutning för oss användare.

  • Oregistrerad
  • 2005-04-15 16:18
Ursprungligen av Erik.dv:

Jag utläser potential för snabbare fönsterhantering i exempelvis Finder, visst borde det kunna vara en konsekvens av detta?

Absolut! Uppritning av fönster kommer ske på GPU-nivå till stor del, ja det kommer kunna bli enormt mycket snabbare. Dock krävs det nog en del av dagens utvecklare att göra fixar till sina apps för att det ska funka. Ex. har jag läst att så väl Photoshop som Office till mångt och mycket lever kvar på QuickDraw kod (uppritningsmetoden i OS9).

Så, men ja, skalafönster, scrolla i fönster, panorerar bilder m.m. är vad som BÖR bli snabbare.

Jag har aldrig utvecklat för MacOS, men för andra system (java, .net osv) så väljer man inte direkt hur ett fönster ska ritas upp, man säger bara "skapa ett fönster av denna storlek med dessa egenskaper, tack". Hur kommer det sig att man i macen kan välja bland 3 tekniker för att rita upp en fönster? Det borde verkligen vara en del av operativsystemet att fixa, inte upp till varje program. Då blir det ju såna här effekter att när Apple inför nya tekniker så måste alla program anropa andra API:er för att dra nytta av det.

Det är ju dumt!

  • Oregistrerad
  • 2005-04-15 17:06
Ursprungligen av torbjorn2000:

Jag har aldrig utvecklat för MacOS, men för andra system (java, .net osv) så väljer man inte direkt hur ett fönster ska ritas upp, man säger bara "skapa ett fönster av denna storlek med dessa egenskaper, tack". Hur kommer det sig att man i macen kan välja bland 3 tekniker för att rita upp en fönster? Det borde verkligen vara en del av operativsystemet att fixa, inte upp till varje program. Då blir det ju såna här effekter att när Apple inför nya tekniker så måste alla program anropa andra API:er för att dra nytta av det.

Det är ju dumt!

Om två tekniker inte är förenliga (map. "storlek med donhär egenskaperna") så står man där med två api:er. Om tre tekniker inte är förenliga så står man där med tre (en ny, en gammal och en enbart för kompabilitet med gammal skit).
Kommer på Java oxå när det blivit lite äldre

  • Medlem
  • Solna
  • 2005-04-20 11:02
Ursprungligen av Pär:

Om två tekniker inte är förenliga (map. "storlek med donhär egenskaperna") så står man där med två api:er. Om tre tekniker inte är förenliga så står man där med tre (en ny, en gammal och en enbart för kompabilitet med gammal skit).
Kommer på Java oxå när det blivit lite äldre

Bara ett API till i Java med andra ord, om jag känner till alla vill säga. AWT och Swing finns ju bägge redan...

  • Oregistrerad
  • 2005-04-20 11:15
Ursprungligen av TERdON:

Bara ett API till i Java med andra ord, om jag känner till alla vill säga. AWT och Swing finns ju bägge redan...

Jo det är sant, Java har redan två APIer. Men i Apples fall, att ha ett API som drar nytta av CoreImage-funktionaliteten, det borde inte ha med API:et att göra. De borde kunna riva ut det underliggande som API:erna använder sig av och trycka in nya CoreVideo-funktioner...

Det är iofs det de har gjort med det senaste API:et (vilket det nu var)...

Hursomhelst, kom att tänka på, är det någon som har tänkt att Dreamweavers fönsterhantering är extremt långsam och konstig? Om man ska förstora eller flytta ett fönster så hackar det rejält och tar omotiverat lång tid!! Det känns som det har portat PC-verisionen rakt av och målat på lite Apple-färger på fönsterlisterna... De lär ju inte använda sig apples senaste API...

Iofs kanske GoLive käkar upp Dreamweaver nu...

Ursprungligen av torbjorn2000:

Jo det är sant, Java har redan två APIer. Men i Apples fall, att ha ett API som drar nytta av CoreImage-funktionaliteten, det borde inte ha med API:et att göra. De borde kunna riva ut det underliggande som API:erna använder sig av och trycka in nya CoreVideo-funktioner...

Det är iofs det de har gjort med det senaste API:et (vilket det nu var)...

Hursomhelst, kom att tänka på, är det någon som har tänkt att Dreamweavers fönsterhantering är extremt långsam och konstig? Om man ska förstora eller flytta ett fönster så hackar det rejält och tar omotiverat lång tid!! Det känns som det har portat PC-verisionen rakt av och målat på lite Apple-färger på fönsterlisterna... De lär ju inte använda sig apples senaste API...

Iofs kanske GoLive käkar upp Dreamweaver nu...

Dreamweaver kommer säkert att slaktas på sammanslagningens altare
Ett program som är i grunden byggt för osx med senaste osx tänket kan bara bli det bästa alternativet oavsett plattform! Men att dömma av hur det ser ut hittils så finns det många program makare som fortfarande håller kvar vid riktigt gammal teknik och prioriterar kompatibiltet med classic etc.. framför världs klass prestanda. Men det kommer väl?

  • Medlem
  • Stockholm
  • 2005-04-14 09:47

Quartz 2D kommer även få stöd för Floating Point (32-bits per pixel rendering, HDRI) - gryyyyyyymt

Tråkigt att man sitter med B-grafik....

  • Medlem
  • Varberg
  • 2005-04-14 10:39
Ursprungligen av Leftrustle:

Tråkigt att man sitter med B-grafik....

Jag har beställt ett familjepaket och ska installera på en PB 1,33 GHz (stöder CI, har 64 mb VRAM), en PB 1 GHz (stöder CI, har 32 mb VRAM) och en iMac G4 800 MHz (stöder ej CI, har 32 mb VRAM). Ska bli intressant att se skillnaden.

  • Medlem
  • Höganäs
  • 2005-04-14 10:48
Ursprungligen av Leftrustle:

Tråkigt att man sitter med B-grafik....

... på en _nyinköpt_ Mac mini...

Den är iofs fin ändå.

  • Oregistrerad
  • 2005-04-14 10:56
Ursprungligen av Leftrustle:

Tråkigt att man sitter med B-grafik....

Tur man har ett 9600XT/128 liggandes i "skrutthögen" som man nog skall få igång på sin relik till PM inom sinom tid...
Snacka om att kanske få fina grafikkort till _omoderna_ datorer...
Olika faller ödets lotter

  • Medlem
  • Stockholm
  • 2005-04-14 13:08

Jag har ett ATI 9000 kort som jag ska "tvinga" in i min cube. Kommer att bli en del flyttande men det är det värt!

Nej, fast det är inte vad Core Image går ut på!

Häftiga effekter i all ära, men Core Image handlar egentligen om att man ska kunna lägga massa olika filter på bilder osv. som finns inbyggda i systemet, och de filtrerna kan du använda oavsett grafikkort.

Nu hjälper inte detta oss innan Tiger levererats men när det väl skett kommer det bli lätt att ta reda på om Core Image stödjs av ens dator eller inte även om Apple inte ändrar sin lista. Det står nämligen i System Profiler om grafikkortet stöds eller ej.

  • Medlem
  • Uppsala
  • 2005-04-15 21:17
Ursprungligen av Rickard A:

Nu hjälper inte detta oss innan Tiger levererats men när det väl skett kommer det bli lätt att ta reda på om Core Image stödjs av ens dator eller inte även om Apple inte ändrar sin lista. Det står nämligen i System Profiler om grafikkortet stöds eller ej.

Helt rätt att helst att vänta tills Tiger levereras.
Jag har på känn att grafikkraven kommer ändras lite till.
Tillvidare får man vänta tills grafikkraven offentlig av Apple den 29:e eller senare

  • Medlem
  • Stockholm
  • 2005-04-16 00:02

Hur kommer det sig att man i macen kan välja bland 3 tekniker för att rita upp en fönster?
Nja, det har du ju inte riktigt... Vanliga program (Webläsare, Mail-program, Grafikprogram) har ju TVÅ API:er att välja bland för 2D grafik:

- Quartz 2D (nytt i OSX)
- QuickDraw (från OS9)

Att man har TVÅ API:er är för att stödja/förenkla övergången från OS9, som använde QuickDraw som API. Det nya i Tiger är att Quartz 2D nu kan accelereras av GPU:n.

Detta är/har varit ett stort problem (verkar det som), för många lever kvar på QuickDraw för rendering av saker.

Jag är ingen inbiten programmerare dock, bara påläst.

…det står nämligen i System Profiler om grafikkortet stöds eller ej.
Grymt.

  • Oregistrerad
  • 2005-04-16 10:03
Ursprungligen av Erik.dv:

Hur kommer det sig att man i macen kan välja bland 3 tekniker för att rita upp en fönster?
Nja, det har du ju inte riktigt... Vanliga program (Webläsare, Mail-program, Grafikprogram) har ju TVÅ API:er att välja bland för 2D grafik:

- Quartz 2D (nytt i OSX)
- QuickDraw (från OS9)

Att man har TVÅ API:er är för att stödja/förenkla övergången från OS9, som använde QuickDraw som API. Det nya i Tiger är att Quartz 2D nu kan accelereras av GPU:n.

Detta är/har varit ett stort problem (verkar det som), för många lever kvar på QuickDraw för rendering av saker.

Jag är ingen inbiten programmerare dock, bara påläst.

Jo, iofs, då är det upp till varje utvecklare att följa best practises vid programmeringen... I Java hade man deprecerat gamla APIer, och då märker man det direkt när man använder dem att detta ska inte användas längre...

Känske vore kul att börja programmera Mac OS X!! *suktar*

  • Medlem
  • Uppsala
  • 2005-04-16 13:22

Ett alternativ till att kontrollera om en grafikkort kommer stödja Core Image fullt ut är att köra ett OpenGL program som skriver ut den sk. extentions listan som finns för varje kort. Alla kort som har GL_ARB_fragment_program kommer få full accelerering i Core Image i Tiger.
För att många av de filter och det API som finns för Core Image går att göra genom GL_ARB_fragment_program i OpenGL, vilket Core Image troligen är ett högre abstrations lager för.

OpenGL Informations strängarna finns att få fram antingen genom ett program eller om man har Developer Tools i nstallerat i OpenGL Driver Monitor, där kan man få fram renderer info och se listan.
Ananrs kan man ta hem detta program som ger en rå dump av GL Informationen på ens dator. Programmet är långt ifrån klart men kan ge en vink till den som vill veta mer dels om OpenGL implemenationen och vad den klarar av.
http://www.greycode.se/gcGLInfo/gcGLInfo-1.0.sit

Bevaka tråden