| Productions
| Solutions
| Press
| Publications
| Mailing
Lists | About
Us |
Windows Longhorn Avalon
The Changes Coming in Microsoft Windows 2006
by Robin Rowe
11/7/2003
In the legends of King Arthur, Avalon is a mystical island paradise. It is also the name of the graphics subsystem in Microsoft's upcoming version of Windows (Longhorn). Longhorn is scheduled for release in 2006.
At the Microsoft Professional Developers Conference (PDC) Bill Gates said to expect Longhorn to be the "biggest release of Windows since Windows 95." A record number of Microsoft developers came looking for insights into this next version of Windows. The event, held at the Los Angeles Convention Center, was sold out with more than 8,500 attendees. Those who came received copies of Longhorn (Windows 2006 on two DVDs), Yukon (Longhorn SQL Server), and Whidbey (Longhorn Visual Studio) -- also included, two books: Introducing Longhorn for Developers by Brent Rector and Writing Secure Code by Michael Howard and David LeBlanc.
Microsoft has a $6.8B R&D budget, an amount that has doubled in the last three years. Half of that budget goes to Longhorn. So how does one spend $3+ billion dollars developing an operating system? Microsoft says to think of the pillars of Longhorn as being Presentation (Avalon), Data (WinFS), and Communication (Indigo). Conveniently enough, that's PDC, the same acronym as the Professional Developers Conference!
At PDC Gates spoke of "headwinds" to PC advancement: cost, complexity, spam, and viruses. In setting the bar for Longhorn features to overcome these issues, Microsoft had to make a prediction of what the performance of the typical PC will be in 2006.
Microsoft's 2006 Desktop PC Predictions
- CPU - 2x6ghz
- RAM - 2+ GB
- Disk - 1+ TB
- Net - 1gbs or 54mbs wireless
- GPU - 3x faster [which seems to mean 1 gigapixel per second]
- Display - 26" LCD or 3x21" LCD
Before discussing Avalon, here's a quick look at the Longhorn landscape.
- Aero desktop GUI
look-and-feel with transparent windows and
fuzzy drop shadows
- Avalon graphics subsystem
- ClickOnce installer that can duplicate an application installation
to another machine
- Indigo .NET technologies for building Web services
- MSBuild unified build engine for Windows
- Superfetch anticipates user data requests
- WinFS XML-based relational database file system
- WinFX is the successor to Win32 (GDI, GDI+, and DirectX)
- XAML (Extensible Application Markup Language) declarative programming
For Windows graphics programmers, the most striking change could be XAML.
HelloWorld.xaml (from Introducing Longhorn for Developers by Brent Rector)
<Border
xmlns=http://schemas.microsoft.com/2003/xaml>
<FlowPanel>
<SimpleText Foreground="DarkRed" FontSize="14">Hello
World!</SimpleText>
</FlowPanel>
</Border>
XAML can run in the browser sort of like JavaScript - or be compiled into a Windows program. The markup compiler outputs C# code. For dynamic actions callbacks are coded separately in C# or VB. Avalon Architect Chris Anderson demonstrated building a XAML app during PDC using Emacs, C#, and MSBuild. These tools (runemacs, csc, and msbuild) are all included by default with Longhorn. What wasn't shown or mentioned at PDC is Microsoft's rumored Flash-killer, Sparkle. That is supposed to provide a visual design tool to quickly layout XAML apps without resorting to text editing in tools like Emacs.
A prototype version of Adobe After Effects showed how developers could combine documents, graphics and video. It exported images, vector graphics, and GUI as XAML directly. Developers can build animated charts linked by .NET to back-end data sources. Adobe graphics applications development VP Greg Gilley says, "Longhorn's new Avalon technology brings the designer and developer closer, so they can truly collaborate on creating software applications that are as beautiful as they are functional."
Avalon is a vector-based graphics system. Shapes drawn in Avalon scale without jaggies. Microsoft's goal with Avalon's unified WinFX API is to bring DirectX, ClearType, video display, vector based compositing, GPU acceleration, and tablet features to the mainstream, to make advanced graphics easy to add to Windows applications. WinFX is to be the next step beyond Win32.
At PDC I was looking forward to hearing about how Avalon would integrate HLSL (High Level Shader Language), Microsoft's version of Cg, the GPU graphics programming language being popularized by Nvidia. Cg enables simple OpenGL operations to be compiled at runtime and executed on the graphics card's GPU independently from the CPU. Some graphics cards actually have more transistors than a P4, and the GPU can execute instructions in parallel.
GPU hardware is screaming fast, but it is quite daunting for C programmers to transition to the seemingly similar programming syntax of Cg. The syntax may look familiar, but the programming logic is inside out and running in parallel. Could Avalon address that? Apparently not, or at least not yet. Although Bill Gates and others at PDC tossed about the buzzwords "GPU exploitation" there were no details, no mention at all of HLSL (or Cg either). At the ATI booth, nobody even knew what that was. And, Nvidia wasn't there. Avalon software architect Greg Schechter says rich 3D support is coming, but that they aren't prepared to talk about it. Fortunately, with Longhorn they have until 2006 to figure it out.
Avalon graphics program manager Cyra Richardson describes Avalon as, "high quality, glitch-free audio and video." (Microsoft VP Jim Allchin mentioned in his keynote that the Longhorn kernel scheduler was rewritten to make it "real time".) Avalon group program manager Pablo Fernicola demonstrated coding a simple application containing several controls that could be repositioned during run-time - with one control smoothly playing a movie even while rotating its window.
Richardson says that Avalon color system supports sRGB and scRGB. The sRGB color space is standard for the Web, a specification of the W3C. An sRGB pixel holds eight bits per channel. That's convenient for monitor display, but film is capable of greater color depth. An image in sRGB color can exhibit banding when printed to film for motion pictures or magazine layout. The scRGB standard uses sixteen bits per channel, providing both deeper and wider color gamut that sRGB. Of course, whether a particular color will show accurately on a particular monitor or printer depends on what happens when the color is converted to RGB (monitors and some printers) or CMYK (some printers).
For those concerned with accurate color the issue is device dependent vs. device independent color. Device independent systems include sRGB, scRGB, CIELAB, and CIEXYZ. A pixel value in these standards is defined for exactly what color it should display. Device dependent color systems include RGB and CMYK. Those are not precisely defined and vary with each device. An ICC profile specifies how to convert between various devices (scanners, monitors, printers) so users consistently see the same colors.
Because real devices all use device dependent color, a profile is necessary for conversion even when working with images stored in device independent color such as sRGB. A nice thing about device independent color spaces is you don't need to attach a profile to each image. It's implicit - up to the user to figure out where to get a profile to calibrate a particular scanner/monitor/printer.
In Avalon video plays, windows are translucent with soft drop shadows, graphical objects float about - and even accelerate with implicit artificial gravity as they dance around a window. Even dropdown menus spin about in free fall in a XAML demo app. One effect of all this graphics power is that it is so much easier to create obnoxiously garish Web-like user interfaces - of which we saw many examples in Avalon demos. Asked one slightly seasick attendee at PDC, "This is great, but as a user how do I turn it off?!!". Microsoft had no answer for that.
###
Bio:
Robin Rowe is a partner in motion picture technology company MovieEditor (www.movieeditor.com). He is the founding director of the CinePaint Digital Film Library (www.ibiblio.org/cinepaint), and project leader for both CinePaint (www.cinepaint.org) and the Linux Movies Group (www.linuxmovies.org).
Questions
to info@movieeditor.com
February 4, 2005