Tuesday, December 27, 2005

The two main High Definition standards are 720p and 1080i.  Since there is plenty of information on the 2, I will not go into detail on them individually.  What there isn't alot of is objective, well-reasoned explanations of which one is better.  Mostly, this is because it is not a simple topic, and the winner depends largely on the context of the question.  Another reason this is so hotly debated is that people spend alot of money on HDTV's and that causes people to become zealots of whatever particular technology they've embraced. I'll try to compare the two within each of the important contexts, without personal bias.

Let's start with the fundamental question.  From a HDTV technology perspective, which is better?  The answer is, they are the same.  Before you leave a comment on how stupid I am, keep reading.  Fundamentally, we're talking about how much data can be displayed at a time.  For TV, that is limited far more by transmission bandwidth than anything else.  To maintain that bandwidth, the signal is compressed in a lossy fashion (see update below). In either format, you're going to get roughly the same "picture quality" watching TV.

Now, you're saying "shut-up, idiot.  One has got to be better.  Why won't my TV do 720p (or 1080i) if they are the same?". This is where the argument gets interesting.  The signal formats were created for "analog" TV technology, namely CRTs.  For CRTs, it's all about frequency.  (How many lines can you draw per second) 720p has more lines per second.  The problem is, you're still bandwidth limited, whatever that limit may be. Horizontal "resolution" comes down to bandwidth.  Any increase in bandwidth basically gives you more capacity for horizontal resolution, so again the two are the same.  The problem is, many HD sets are based on technologies with a "native resolution", meaning the TV is locked in to a certain resolution.  In these cases, the interlacing trick used by 1080i to gain temporal resolution at the cost of spatial resolution is useless.  [Added:] Many CRT-based HD sets cannot do 720p because it requires a higher horizontal refresh rate and the flyback circuit capable of 1080i is not capable of that speed (in short, you got screwed (myself included) to increase their profit margin). 1080i is refresh frequency comparable to 540p (if it existed as a standard).

So, the result is that most HD sets have a native resolution at (or near) 720p.  So, for those sets, a 720p signal matches the native resolution of the set and "looks" better.  There's alot of hype around 1080p sets, capable of displaying, you guessed it, a 1080p signal, which only really exists as the output of a PC at 1920x1080, which brings me to my next point.

Since basically all HD content is stored digitally, we're not just looking at lines of resolution, we've got frame sizes.  So a 720p frame is 1280x720, and you get 2 per second.  That's 1,843,200 pixels per second.  A 1080i frame is 1920x1080, but you only get 1 per second. That's 2,073,600 pixels per second.  So, compression and bandwidth aside, dealing with digital signal sources, you're getting more data (in the form of pixels per second) with 1080i than you are from 720p.  If that's the definition of better, then 1080i is better.

But, as I mentioned before for fixed resolution TV technology (anything but CRT), it takes a 1080p set to show 1080i in all it's glory.  Otherwise, 720p will probably look better due to the down-conversion resampling. Clear as mud, eh?  Well, I hope this clears it up for at least one person. [Added:] A signal will almost always look better in its native form.  Whenever there is a resampling step in up/down converting, you're going to have some degradation due to aliasing.

[Added:] I owned a 1080p DLP set for a few short days, and it was by far the prettiest thing I've seen.  it displayed both 1080i and 720p signals beautifully.  I sent it back, though.  All the upconverting in the video pipeline introduced a noticable delay that made playing video games very frustrating. :)

[UPDATE:] I had a comment asking about the lossy compression applied to video.  I'm referring to the digital compression that the video signal undergoes as part of the ATSC standard.  It uses MPEG2 compression (basically the same used for DVDs) to reduce the digital bandwidth (and therefore the analog bandwidth) that the video signal takes up so it fits in the "channel" (6MHz wide if I remember correctly).  This particular compression degrades picture quality (the amount can be controlled).  It is both a spatial and temporal compression, and gives very dramatic compression ratios.  Cable companies have more bandwidth to work with, but they usually pack the crap in as tight as they can rather than giving us better quality...jerks.

Note, there is also some "analog" compression going on as well to squeeze the ~20Mbit/sec digital signal into the 6Mhz channel.  The ATSC standard uses an 8-bit "vestigial side band" modulation (8VSB), while cable companies use a form of Quadrature Amplitude Modulation (64-QAM).  Both are beyond the scope of this article and neither of these come into play in picture quality as they are lossless forms of compression.

If you haven't guessed, I did a research paper on HDTV back in college.

[Yet another UPDATE:]  Want some hands-on proof?  Go download the 720p (146MB) and 1080i (211MB) versions of the King Kong movie trailer from Apple's site.  Compare the file sizes and then open them both, and you decide which one shows you more "data" (my definition of "better").

posted on Tuesday, December 27, 2005 2:07:39 PM (Pacific Standard Time, UTC-08:00)  #    Comments [2]

Did I mention that I got my hands on a 360?  I lucked out and got one at a very decent price from eBay.  Due the the last big shipment, eBay was/is pretty saturated and the prices have gone way down.  Anyway, I've had the 360 for almost a week, which I think is enough time to give it a thorough run-through and review it.  Overall, I would say it is "wicked awesome".  To back that up, I will give the list of stand-outs and disappointments:

Stand-outs (things I thought were great):

  • HD - Many have already called the 360 the "killer app" for HD.  I would agree. There are lots of people getting HD sets and then watching SD, or ED (enhanced definition (480p)) on them and thinking that's as good as it gets.  Let me tell you, just firing up the dashboard in 1080i is a sight to behold.  Call of Duty looks just incredible.
  • Connectedness - You can connect to the internet out of the box and download arcade games, movie trailers, game demos, and lots of other cool stuff like themes and such.  Viewing movie trailers in HD is pretty fantastic. It was incredibly easy to migrate my live account.  The new gamercard stuff with reputation, achievements, gamerscore, etc is sweet.  They've definitely been able to build upon the experience they got from XBox Live, and Sony will have a hard time matching the experience, having never seemed to "get" the online experience on the PS2.
  • The Dashboard - This has received quite a bit of thought.  It's actually a useful thing now.  You can actually do stuff from here now.  Your friends list is always at your fingertips, you can play your music, either ripped from a CD, or on your PC, or iPod (the iPod support is very nice).  The arcade rocks.  Geometry Wars is definitely worth the ~8 buck download.   The marketplace is interesting, and I think we'll start seeing lots of cool stuff there soon.  Being able to jump into the dashboard at the touch of a button is great.  Built in voice chat also rocks, and is great for organizing a foray into Halo with your friends.
  • Backwards Compatibility - Interestingly enough, I don't own any 360 games yet.  Halo 2 runs beautifully in 1080i thanks to the wonderfully implemented backwards compatibility.  I think this is more impressive to someone who knows the technical details of what's going on under the covers. (running code compiled for an entirely different architecture in a virtually transparent way)  The fact that the compatibility list is still growing because they can continue to update it to handle more and more games is also fantastic.
  • Controls - The controllers are fantastic.  They are an improvement over the already wonderful "S" controller for the XBox.  Wireless connectivity is the icing on the cake.  USB connections for wired controllers (and MP3 players and who knows what else) was an excellent choice over a proprietary connection.  Being able to turn the console on and off from the controller is awesome.  The optional USB charge kit for the wireless controller is pretty cool as well and has a very long cord if you're low on batteries.
  • Notifications - You get cool notifications at pretty much any time (with the exception of Backwards Compat mode) to let you know when friends jump online, or when you get an invite, etc.  I assume this is "shell" type functionality now rather than being part of the game code.  That gives everything a nice, unified feel.

Disappointments:

  • DVD playback - I was hoping to retire my DVD player and use the 360 for playback.  Sadly, that will not happen.  There doesn't appear to be any DTS capability.  Also, it would not play the Dolby Digital track on one DVD I put in and just gave me Dolby Pro-Logic decoding from the stereo track.  There is no aspect ratio zooming to correct non-anamorphic or 4x3 DVDs.  I does play at 480p, but I was hoping it would up-convert to 1080i (I've got a rear-projection CRT and I only wanted to worry about geometry/convergence for a single mode).  Now, there may be settings to change these things, but I could not find them.  I would gladly retract this if someone can prove me wrong.  I supposed they could also update the software in the future.
  • The headset - The headset that came with mine did not work well.  There is tons of static whenever the wire moves. I think it is a defect since my friend's seems to work OK.  I'll have to take it apart to see if there is a bad connection somewhere.  Luckily, my old headset (as well as any other "cell phone style" headset) works great, but without built-in volume and mute.  Speaking of mute, it is now a switch (instead of a button with an indicator light).  It is much harder to see you are muted when you're in the heat of battle.  Beyond that, they have "built-in" the voice support to the controller, rather than making it a separate module.  This is a good thing, but there were some things about the "old way" I really liked.  The old way, I could remove the voice module and then voices would play through the main speakers.  My friends and I used this in Halo to indicate that we were "away" (the voice icon changes) but would be back (so we could do things like get a drink or visit the restroom).  Now, maybe with wireless controllers, this isn't necessary since I can technically keep the headset on.  I haven't fully explored the possibilities with wireless.
  • Video playback - It appears that you have to have a Media Center PC in order to watch your own videos.  That stinks.  What about my friends that have Macs? What's so different about video? I can view my own photos and listen to my own music.  Perhaps they simply don't want to deal with the codec issue.  I may be wrong about that too, but I couldn't get it to work.  I guess I'll have to turn one of my PC's into a media center. Scott says it works great.
  • Dashboard downloads - You don't seem to be able to do other stuff while you're downloading stuff in the dashboard.  HD movie trailers take a while (why don't they buffer and stream?) and you're just sitting there watching a progress bar while they download.  That seems pretty silly to me.  When it's done, you get a neat little "done downloading Xxxxx" notification. "Duh, of course it's done. I can't go do anything else but sit here and watch it download".

Overall, it totally rocks.  Go get one if you can find it.  I'll probably pick up this Logitech remote with some Christmas gift cards.

posted on Tuesday, December 27, 2005 11:43:26 AM (Pacific Standard Time, UTC-08:00)  #    Comments [2]

Well, understandably, with a 3 week old baby in the house, this was the craziest holiday ever.  On top of that, I got an XBox360, and traded in the 95 Maxima for a 2004 one, which absolutely rocks.  I'll blog about both later in more detail.

Andrew and Sara came down Christmas morning, as well as my dad.  My mom was feeling ill and didn't want to get Jenna sick, so she didn't come.  We really missed her, and that made Christmas alot weirder for all of us.  Luckily, she's coming down this week to spend some time with us.

As per usual, we had stockings jam-packed with fun goodies like pocket multi-tools and books and candy and frisbees and such.  Mom puts together quite the stocking.  I think they were mostly to keep my brother and I occupied Christmas morning so they could get an extra bit of sleep.  She would bring them to our rooms in the wee hours of the morning while we were pretending so sleep.  We'd tear into them immediately, sometimes in the dark, so we were just guessing what we were playing with.

Anyway, I fried up a turkey, which turned out great.  I only marinated one side of the turkey since Andrew likes his "plain".  The other side was garlic herb flavored, and I did the best "distribution" of the injected marinade I've ever done.  Usually, I've got alot of big pockets.  This time, it was spread more evenly.

We had a great time.  Jenna got alot of Baby Einstein DVDs and some good books.  I read "Goodnight, Gorilla" to her last night, and she appeared to enjoy it (Which basically means she did not cry).

posted on Tuesday, December 27, 2005 10:46:14 AM (Pacific Standard Time, UTC-08:00)  #    Comments [1]
 Friday, December 16, 2005

A few weeks ago, the right rear window of our '95 Nissan Maxima has been broken.  Normally, on a Nissan, power window problems are the notorious regulators.  In my case, the motor and the electronics were all working, it was a mechanical problem.  The cable had damaged a plastic pulley and had come off the track.  The damage wasn't easily fixable, and I didn't really want to mess with repairing it, so I thought I'd just keep it from falling down anymore.

You can see my solution, along with some instructions for removing the door trim to get at everything in this photoset.

posted on Friday, December 16, 2005 5:24:13 PM (Pacific Standard Time, UTC-08:00)  #    Comments [1]
 Sunday, December 11, 2005

CRW_3694Since he was not able to be there at Jenna's birth, Becky's dad came this weekend to meet her for the first time.  We had a wonderful time.  Becky and I were both so glad that he could come so soon.

I thought this shot turned out really well considering the lighting conditions.  It appears to be painstakingly-posed, but was actually completely candid.

posted on Sunday, December 11, 2005 4:48:42 PM (Pacific Standard Time, UTC-08:00)  #    Comments [1]

Well, it's that time of year again.  My school chum Jason Owens is a year older.  Happy birthday, man.

Here he is from Christmas 2003.  Maybe this year I can get an updated picture.

posted on Sunday, December 11, 2005 4:43:34 PM (Pacific Standard Time, UTC-08:00)  #    Comments [3]
 Monday, December 05, 2005

Now that we're home, I finally got a chance to process and upload my photos from birth on Friday morning to the homecoming today.  Warning, there are a couple of gooey baby shots from the delivery, but nothing to bad (I kept a few private).

Click the photo for my set on Flickr.

In addition, you can check out Jen and Dave's set from their visit Sunday evening to bring some Chipotle to a tired daddy, just like I did for Dave when James was born.

posted on Monday, December 05, 2005 6:33:27 PM (Pacific Standard Time, UTC-08:00)  #    Comments [2]
 Saturday, December 03, 2005

For those itching for pictures, but not patient enough to wait for me to upload mine, they can check out my dad's blog.

We're doing OK.  We're pretty tired.  We plan on taking advantage of the nursery tonight so we can be rested for when we go home and don't have a fully-staffed nursery.

posted on Saturday, December 03, 2005 12:27:58 PM (Pacific Standard Time, UTC-08:00)  #    Comments [2]
 Friday, December 02, 2005

This morning, at 7:37am CST, Jenna Evelyn Miller was born, one day early, by c-section. She had turned since our last ultrasound earlier in the week and was breach (breech? beached?).

Everything is fine and Becky and Jenna are both resting.

Evidently, this is the time of year when all the cool software developers have their babies.

Pictures are coming, I'm blogging from the delivery room

[UPDATE: 11:30am]  I forgot to include the stats.  7 lbs 15 oz, 20 inches.  Will get pictures up this afternoon.  Lots to do!

posted on Friday, December 02, 2005 7:37:02 AM (Pacific Standard Time, UTC-08:00)  #    Comments [12]
 Monday, November 28, 2005

In tracking down a bug today, I needed to put "control" characters into an Oracle SQL statement.  Since it was difficult to find using available docs and search engines, I decided to put it here to help out others who may be looking for the same thing.  I do not claim this is the best or easiest way of accomplishing it.  It just works, and that's what I needed.

So, here is how to escape control characters (or presumably any unicode character) within a string in Oracle SQL or PL/SQL:

UNISTR('\0008')

This will give you the backspace (ASCII 08) character.

So, the UNISTR function encodes backslash ("\") followed by four (hex) digits as a single unicode character. (actually it doesn't need to be 4 hex digits.  It will stop at the first non-hex digit. But, it will still "eat" 4 characters from the string.)

(Note: this is for XXXX2 column types like VARCHAR2 that support unicode.  I don't know if/how this works on non-unicode types. Also, this is for Oracle 10g.)

UPDATE: Shortly after writing this, I discovered ASCIISTR, which is identical in syntax to and probably preferable in the case of control characters (as opposed to real unicode characters like accents, symbols, etc.)  ASCIISTR is likely compatible with earlier versions of Oracle as well.

posted on Monday, November 28, 2005 3:10:57 PM (Pacific Standard Time, UTC-08:00)  #    Comments [1]
 Friday, November 25, 2005

Well, another Thanksgiving, another delicious fried turkey.  We had a great time.  Becky's parents came on Tuesday and we've been having alot of fun since then.  My parent's came about lunch time, and my Dad and I cooked the turkey.

This year, I did a half-and-half turkey again.  Half flavored with injected Chipotle Tabasco, and the other half with a garlic and herb injectable marinade.  I got a bit lazy this year and forgot to pick up the peanut oil.  Thankfully, a store was open in the morning, and I got some.  As a result, it was a different brand than I normally get.  Unfortunately, when the time came to start, I discovered it was not enough oil.  Thankfully, the store was still open and I was able to get another box.

We did the best job so far of bringing the turkey up to temperature, so there wasn't near as much "volcano effect" as usual since there wasn't alot of condensation or other external moisture.  Everything went perfectly.  The bird turned out excellently (as usual) and was fantastic.  It, along with the other excellent foods prepared by the girls, made for an excellent meal.

Unfortunately, Becky's dad wasn't feeling well and was unable to participate fully.  He's feeling much better now, though.

Check out my turkey photoset and the other photos near them for the fun.  I'm sure my dad's pictures will be up shortly as well.

posted on Friday, November 25, 2005 11:46:22 AM (Pacific Standard Time, UTC-08:00)  #    Comments [2]