In the beginning there was NTSC in Freestyle (Media Center 2002), and it was good. Media Center supported the #1 market and proved that computers could do a great job recording television, pausing Live TV, and organizing recordings. With support for one tuner under our belt and an enthusiastic user base, we moved forward with Harmony (Media Center 2004) to a more mature, flexible and polished product that supported dual NTSC or PAL tuners, opening up the European, Asian and Australian marketplaces. A few intrepid souls figured out how to hack together ATSC support into Harmony using little-known interfaces and scarce hardware like the VBox 110.
Between the release of Harmony and Symphony (Media Center 2005), ATSC demand increased by leaps and bounds, though still smaller than the NTSC base by far. To this day, only a very small percentage of Media Center users actually use ATSC, although it’s a matter of some discussion whether that number is small because the number of HDTVs is small, or because Media Center’s support is… less than optimal. In any case, by the release of Symphony the user community was clamoring for ATSC support without hacks, and was disappointed when Symphony shipped without it. An update quickly followed, though, and Symphony Rollup 1 with HDTV Support was released as a free update through Windows Update and the Microsoft Download Center. The changes in Emerald (Rollup 2) and Diamond (Windows Vista) did/will not not substantively change the architecture of ATSC, so what we have today will more or less be the way it works for another couple of years.
••• design decisions
When we (speaking in generalities here, since I was not a member of the team at the time) first investigated how to include ATSC into the product, there were several major hurdles standing in the way. The first was a consequence of our decision to use the VMR (Video Mixing Renderer) instead of the deprecated Overlay Mixer for rendering video. Overlay rendering differs from mixing in the way that video is prepared for display. In overlay mode, the video is literally painted over the top of whatever else is being rendered. In mixing mode, “surfaces” with video or other graphics are blended together, either in software or hardware-accelerated, prior to rendering on the monitor. The advantage of mixing mode is greatly increased flexibility in what you can display at the cost of performance. It takes a lot more horsepower to process all those pixels, especially with alpha (transparency) and 3D effects. 99% of the video hardware on the market today uses a form of overlay mode, which drastically reduces the hardware requirements (e.g. no 3D hardware required), but hamstrings them when viewed side-by-side with the sort of effects you can get with mixing. The semi-transparent menus on top of video that you see in Media Center that give it such a cool look are just not possible with overlay mode. All that alpha blending and those 3D effects come at a hefty cost, though. Media Center has to work many times harder to get the video to the screen, even when no special effects are on-screen at the time. That, in a nutshell, is why Media Center requires not just an OK video card to shine. And a faster CPU. As a result of the increased power needed to render video, and with the hardware available to consumers in 2000-2002, it wasn’t really feasible to offer HD with the first couple of releases.
Even if the video could keep up (which it could on higher-end systems, even in 2002), there was another difficulty: Guide data. The problem is that when you get multiple lineups (the term we use for the programming information associated with the set of channels available on a given medium in a geographical area), merging them into a single lineup and making it easy for the user is not an easy solution. The decision was made to punt it until demand was increased, and to stick with a simpler homogenous lineup, rather than the more advanced heterogeneous lineup that would be required to support both NTSC and ATSC on a single system. The market of people that have more than one TV provider is, after all, not that large, and we wanted to get it right for the most people we could.
••• support for ATSC gathers steam
A vocal minority of the user community, along with a large majority of the eHome TV product team, were not pleased with the lack of support. We got the funding to put ATSC in the product, as long as we could fit it into the schedule and without major risks to the architecture of Media Center’s TV and PVR functionality. With compressed schedules the norm, and the development and testing staff already deeply into a bad work/life balance, many options were considered for getting ATSC out to users. What was finally implemented is a good first stab at doing it, with a few facets that are, um, less than what we’d like them to be. Since we did not have ATSC-specific listings available through our Guide data provider for many, many areas, we looked instead at reusing the data available from existing analog lineups via “mapping”. Since ATSC channels are in a completely different format (like 13-1 or 9-5), and to avoid putting a new button on the remote (requiring a redesign), ATSC channels are renumbered in the UI. The scheduling/PVR conflicts were just ignored, leaving it up to the user to say “only record this channel”, omitting support like “record this in HD if you can, but get it in SD if not”. The end result was a pseudo-heterogeneous lineup support that we have today. You do get the additional ATSC lineup merged into your Guide, but the analog source is still required–you cannot have ATSC without NTSC today.
••• the current state of things
During First Run (the initial Media Center setup wizard), or TV Signal Setup, we detect whether you are in a region that supports ATSC, and then detect if you have a compatible ATSC card installed (or for Emerald, up to 2 ATSC cards). After configuring your SD tuner, ATSC is configured as an adjunct to the “primary” analog tuners. If you choose an analog, sans-STB (set-top box) cable lineup for your analog tuners, then that data is what’s available to ATSC to map to its channels. The same goes for satellite or OTA (off-the-air/broadcast) lineups. Only with digital cable lineups do you usually get the full Guide data to assign to your ATSC channels.
To assign listings to the ATSC channels in the lineup, we run a heuristic match against the available channel metadata, and try to get a “best-fit” match for existing channels to the new ATSC channels. For example, if there is a channel “KOMO-DT” in the primary lineup, it can be matched to the known ATSC channel KOMO-DT on 4-1. In some areas, the match can’t be made automatically, but you can go to the Guide settings (Settings–>TV–>Guide–>Edit Digital TV Listings) and manually associate the listings of an existing channel to the ATSC channel. Basically what you are doing is saying “this channel that exists on my “primary” lineup has identical programming to that ATSC channel”. It works best with digital cable lineups because they carry all of the local OTA ATSC channels on their networks (due to Federal must-carry laws). To get the minor channels (where the “minor channel” > 1, e.g. KCTS-DT2 on 9-2 in Seattle), you have to add them to your lineup manually using Add Missing Channels, and then map them to listings using Edit Digital TV Listings.
The end result of all of this is a unified lineup that can be presented to the user in a single Guide grid. ATSC channels are assigned numbers like 1041 for channel 4-1, and slotted in where they fit best. If your primary lineup already has a channel 1041, we look for another block of numbers to put the ATSC channels. A side-effect of this is that if your primary lineup is changed–like if Comcast decides to add a channel 1000 to their lineup–the ATSC channel numbers may get reassigned to another empty block. Personally, I’d like to implement a better solution, but as I’ve said before, we Americans are unnaturally attached to our channel numbers. Most would just give you a blank look if you suggested that we don’t even really need channel numbers at all. Not when you have a good enough search/filter mechanism, anyhow.
••• the days to come
For the Diamond release, we have announced support for OCUR (OpenCable Unidirectional Receiver) tuners, which will allow native tuning of digital cable signals, with CableCard support (for premium channels like HBO). This includes HDTV signals, which should be good news to most users. More people pay for TV service now than don’t, and if you own a Media Center, you are about 20 times more likely to have cable or satellite service than not. Roughly. OCUR support probably means (definitely, for Diamond) that we won’t be supporting heterogeneous lineups anytime soon, which is a shame, but hard to make a business case against. Why spend time and treasure on something that most people won’t use, and could possibly destabilize the entire product? That’s a little hyperbolic, but the onus is on the people who want the feature to justify it.
We announced a deal with DirecTV where we will directly support their newest STB in Media Center, just like–or very similar to–the OCUR does with digital cable. The field is finally opening up and we’re getting to a point where we can offer our users very attractive options for “traditional” TV services. The European market, or more precisely, the non-U.S./S.Korea/Japan market, has already standardized (for the most part) on a fairly sensible broadcasting standard–DVB–which we are improving our support for with every release.
Non-traditional video services are also booming in popularity, with Online Spotlight partners offering more movies and other multimedia content for free (in many cases) or on an ala-carte basis, directly competing with PPV services offered by traditional TV providers. Apple has changed course on its “we’ll never get into the PVR business” policy with iTunes video (and their toe-dip product Front Row, which is a pretty spiffy little QuickTime automation script), and The Market is scrambling all over itself to get on the bandwagon. Internet TV is coming, just as soon as we (as in “we the market”, not necessarily “we at Microsoft”) figure out what Internet TV is.