April 2004 - Posts

First C# Codec for H.263

As of this morning, I have ported the C++ version of our H.263 code to C#... I believe we now have the first H.263 implementation written in 100% managed code. Definately the only Flash H.263 managed code lib out there...
Posted by Jesse Ezell with 44 comment(s)

Macromedia/Sorenson's H.263 Implementation

H.263 is a video format the is pretty similar to what you find in MPEG. Like a lot of digital video formats, the first place size reduction happens is at the color level. As it turns out, having an equal representation of R, G, and B values like you are probably used to can be pretty wasteful. For example, your eye can recognize far more shades of green than red or blue. Knowing this, YUV formats are used instead of RGB (some times called Y'CrCb). Y, or luma, stores mostly the green info, while the other two components store the r and b components. Taking into account that your eyes don't need as much distinction between all the colors in the spectrum, YUV formats will generally include less information about the R and B component. In the case of H.263, a format known as 4:2:0 is used. 4:2:0 takes the Y component and stores an array of 8-bit values (width*height) for the image. Following this come the V & U components, which are both stored in individual arrays. However, the V and U values are sampled for each 2x2 block on the screen and only contain 1/4 the amount of information. The loss of detail sucks if you need really crisp edges and you aren't working in a high res environment, but for most types of video (like the average DVD for instance), your eye won't pick up on anything...after all, did you even know they were doing this to you until I told you? :-).

In any case, H.263 stores each frame and then compares the previous frame to the current one so that it can only save the changed portions. However, H.263 handles more than just bit by bit comparisons. H.263 looks for similar areas in the video to determine if something has moved, and then encodes some motion vector information to tell the decoder where to move the existing information.

Macromedia's implementation is pretty much standard H.263; however, they have removed some advanced features and changed up the H.263 headers. The docs don't really provide much info here, but it is relatively easy to convert between the two (hey, I got it right on my first try, so it can't be that bad). As long as you encode your H.263 data with type “0”, the only chunk you have to worry about is converting the H.263 packet headers. The docs say that the H.263 “Macroblock” (basically a 16x16 chunk of your image) headers are different, but my experiences is that, they are exactly the same when working with type “0“.

So, those of you eagerly awaiting the SWFSource.NET release.... we have a working version of H.263 support in addition to ScreenVideo (it's coded in managed C++, not C#, but it does the trick). Unfortunately, I'm still not sure of the patent liabilities involved and if Macromedia's implementation manages to get around them by nixing some of the more advanced features... if you happen to know anything about this, I'd love to hear from you.

Posted by Jesse Ezell with 45 comment(s)

Central Licensing Poll

The Macromedia Central team wants your input on licensing:

http://v2.decipherinc.com/survey/macromedia/sl404

Posted by Jesse Ezell with 2 comment(s)

Articulate Blog

One of the companies I did some work for based on our SWFSource C++ library has just launched a blog:

http://blog.articulateglobal.com

Posted by Jesse Ezell with no comments

Why Microsoft Should Hire Miguel

With all the great thinking coming from Miguel de Icaza, it is no wonder that Don Box is trying to get him to jump the fence. What makes Miguel so dangerous is that first and foremost, he is a brilliant guy. However, perhaps even more important is the fact that he really truely understands and buys into the same type of thinking that has gotten Microsoft to where they are today. Unlike many of the intelligent people in the Linux community, he believes that components are vastly superior to pipes, he believes that managed languages are the only way to stay competitive in the coming years, he believes that Linux development is way to costly, etc. If his crusade is successful, Miguel will have done far more to give Linux a leg up in the coming years than Linus Torvalds and Richard Stallman combined. My advice to Microsoft: “hire him before he succeeds, or face the consequences.”

Posted by Jesse Ezell with 7 comment(s)

Miguel On Longhorn

Miguel explains to the Linux camp why Longhorn is such a dangerous foe:

“...hat makes Longhorn dangerous for the viability of Linux on the desktop is that the combination of Microsoft deployment power, XAML, Avalon and .NET is killer. It is what Java wanted to do with the Web, but with the channel to deploy it and the lessons learned from Java mistakes.

The combination means that Longhorn apps get the web-like deployment benefits: develop centrally, deploy centrally, and safely access any content with your browser.

The sandboxed execution in .NET [1] means that you can visit any web site and run local rich applications as oppposed to web applications without fearing about your data security: spyware, trojans and what have you.

Avalon means also that these new "Web" applications can visually integrate with your OS, that can use native dialogs can use the functionality in the OS (like the local contact picker).

And building fat-clients is arguably easier than building good looking, integrated, secure web applications (notice: applications, not static web pages).

And finally, Longhorn will get deployed, XAML/Avalon applications will be written, and people will consume them. The worst bit: people will expect their desktop to be able to access these "rich" sites. With 90% market share, it seems doable...“ [1]

[1] http://primates.ximian.com/~miguel/archive/2004/Apr-24.html

Posted by Jesse Ezell with no comments

Google Must IPO

“Ultimately, an obscure securities rule seems likely to override any possible second thoughts about a Google IPO.

A 70-year-old regulation requires privately held companies with more than 500 security holders of record and $10 million in assets to open their books within 120 days of the end of the fiscal year in which they crossed the reporting thresholds.

Having awarded stock options to most of its 1,000-plus employees, Google is believed to have triggered the rule last year, giving the company until Thursday to shine a light on its finances for the first time.

Google theoretically could just file an annual report for 2003 without pursuing an IPO, but most observers seem to think that strategy would make little sense. That's because Google would encounter all the compliance headaches of a public company, incurring millions in annual expenses, without reaping any of the financial benefits. “ [1]

[1] http://www.wired.com/news/business/0,1367,63241,00.html?tw=wn_tophead_7

Posted by Jesse Ezell with no comments

It's Official, The Patent System Needs To Be Fixed

“the [National Research] council recommended in its report that the patent office and Congress take seven steps to improve the patent system. Those steps include, among other things, hiring new patent examiners, creating a more open system for challenging questionable patents, and rejecting more patents on processes that are deemed to be "obvious" by people in the field.” [1]

Finally, some traction in the government.

[1] http://www.wired.com/news/business/0,1367,63248,00.html?tw=wn_tophead_4

Posted by Jesse Ezell with no comments

Matt's Book

Matt Mickiewicz sent me a few chapters from one of his company's latest books: Build Your Own ASP.NET Website Using C# and VB.NET and asked me for my thoughts. It definately seems like a book I could recommend to someone with minimal web design experience. Of course, I tend to underestimate the challenge the average person faces when getting up and running since I've been programming since elementary school, but the book does do a better job of explaining some of the basic details than I could do (even stuff I probably would have completely left out, like installing IIS, etc.). There is some potential misleading info in the chapters I read, such as the discussion of “namespaces,“ where the author says you must import a namespace to use its functionality, which leads to a very common misconception that namespaces actually do something. But, to some degree, I can understand something like this, because telling a beginner that “namespaces don't actually exist in the IL“ or something along those lines is probably counter-productive. The initial discussion of current “.NET“ applications from Microsoft is also a bit out of date for a book being published at this time, but this is also a very minor issue. So, overall, it looks like a pretty solid book for a beginner (like 99% of the other ASP.NET books out there), but if you want the technical stuff, go buy a copy of Essential .NET instead.

[1] http://www.amazon.com/exec/obidos/tg/detail/-/0957921861/

Posted by Jesse Ezell with no comments

Free Copy of Visio 2003

So, you want those cool looking MS icons, but only have a copy of Visio for Enterprise Architects? Time to upgrade:

“I'm sure that I've blogged this before but if you go to the Microsoft Deployment Hands-On Lab Online website and complete 3 HOL's and register for and attend a webcast, you get a FREE copy of Visio for you/r troubles. “

401 copies left as of posting this.... hurry while supplies last...

[1] http://blogs.geekdojo.net/adam/archive/2004/04/27/1768.aspx

Posted by Jesse Ezell with 13 comment(s)
More Posts Next page »