Nov 21, 2011
Earth from Space.
Earth | Time Lapse View from Space, Fly Over | NASA, ISS from Michael König on Vimeo.
Oct 5, 2011
Capture One 6.3: A Performance Review
So it's been about a month since I've gotten back, and I've barely touched my pictures in that time. I decided finally to sit down and give Capture One 6 a shot, since I switched over to Lightroom a couple of years ago. The software is already up to version 6.3. I used the trial version, so I could check out Pro. I was curious about some of he features, especially the advanced noise reduction and local adjustments. I'm running on Windows 7 SP1 64-bit, on a Core i7 930 with 12GB of RAM, and a motley assortment of hard disks. I tried using both a GF106 (GeForce GTS450 or Quadro 2000) as well as a GF100 (GeForce GTX 470 or Quadro 6000). I'm playing with full resolution RAW images shot on a Canon 5D MarkII. While I was pretty happy with C1 versions 2 and 3 for dealing with images from my Rebel and Rebel XTi on an old Athlon system, the huge images from the 5DMk2 has put some annoying lag into the workflow, that never went away even after upgrading to the i7.
OpenCL Benefits
C1 allows you to turn on and off OpenCL support in the Edit\Preferences dialog. There's a setting for OpenCL, either Auto or Never (this setting doesn't appear if your system doesn't have an OpenCL driver). Other than the setting, there's no other indicator that OpenCL is being used. There's information in a Phase One knowledgebase article on when OpenCL is used, it's pretty accurate, but not very detailed.
After poking around with the OpenCL setting enabled/disabled, I figured OpenCL is only used for processing the pixels onscreen when viewing a RAW file. This is pretty limited, but it does provide some noticeable benefits that do impact my workflow.
1. the view updates much quicker when switching between images, particularly when zoomed in
2. the view updates much qucker when making adjustments, particularly when zoomed in
*1 Given that these were all visual changes, it was difficult to give any benchmark measurements. Situation 1 was where I noticed the most measurable differences. When switching from one image to another on CPU only, the new image would load in very blurry, then get less blurry, then crisp. There was also about a 0.5 second delay before the image changed at all, but that happened with both CPU and GPU, so I'm going to ignore that in the comparision. My rough attempts at measuring the time with a stopwatch makes it look like this: new image appears very blurry -> 0.5 seconds -> less blurry -> 1 second -> crisp, so it would take almost 2 seconds every time I changed from one image to the next. It gets painful if you're sorting through 150 images after some sort of shoot. The first 0.5 second delay after the keypress was there on every GPU, so I'm going to ignore that, and focus on the first delay after the image appears, and the second delay when it becomes clear.
GPU behavior looked the same, but upon closer inspection it looks liek the pipeline was different. Instead of going from "very blurry"->"less blurry"->crisp, it went through a "blurry"->"crisp"->"denoised/sharpened" stages. It was barely any time at all on either GPU to get from blurry to crisp. I'll say 0.2 seconds. Additionally, the final "denoise/sharpen" stage seemed to vary a bit depending on the zoom level. Initially I thought the speed depended on the GPU, but then I noticed that in zoom levels > 100%, it looked like it would do some sort of denoise, while if the zoom < 100%, it would sharpen. The sharpen (at low zoom) would take about 1 second on both GPUs (I'm guessing it was actually performed on the CPU). The denoise seemed to take about 0.5 second on the GF106, and was nearly instantaneous on the GF100.
For Zoom < 100
Processor | Time to Clear Image | Total time for Final Image (including initial delay) |
CPU | 1.8 | 2.3 |
GF106 | 0.2 | 2 |
GF100 | 0.2 | 2 |
For Zoom > 100
Processor | Time to Clear Image | Total time for Final Image (including initial delay) |
CPU | 1 | 1.5 |
GF106 | 0.2 | 1 |
GF100 | 0.2 | 0.3 |
*2 When making adjustments with the sliders, it was noticeably smoother on the GPUs than the CPU, though even the GPU wasn't perfectly smooth. It also depended on the setting. For example, adjusting Exposure was reasonably smooth on the CPU, and wasn't too much smoother on the GPU. The Moire slider though, which was completely un-smooth on the CPU, showed a marked difference. The biggest difference however, was that when zoomed in, the CPU version of Exposure, Curves, and Colour would use the preview sized image while adjusting. Once you move the slider, the image would get downsampled and blurry to show the adjustments, and then come back into focus. The GPU version would remain in focus the whole time. The GF100 was a bit smoother than the GF106. This isn't something you'd notice initially, since it just seems like the way it ought to be. But if you go back to the CPU version, it's horrible.
Things that don't improve with OpenCL
For all the improvements, there are a lot of things that don't improve, and really reduce the effectiveness of the OpenCL implementation. As I've already mentioned, it looks like there's a CPU sharpening pass that slows down the image rendering. Other noticeable items are:
- Speed depends on whether the image is cached. The numbers above are the best case. If you switch to an image that isn't cached, it could take a few seconds to read from disk, regardless of your CPU or GPU. This actually happens a lot, so you don't really get the optimized speeds listed above unless you're going back and forth between a set of images.
- JPEGs don't go through the GPU pipeline, so if you happen to have JPEG thumbnails, sorting through them will slow you down, even though scrolling through RAWs is now faster.
- Zooming in isn't sped up, you still see a bunch of pixelated pixels for half a second before the proper pixels are displayed.
- Panning isn't sped up, so when you move the image over, you get a bunch of new pixelated pixels for half a second before the proper pixels are displayed.
- Final rendering doesn't take advantage of the GPU. You might get a slight improvement if they're going on in the background, since the CPU is a little less busy with the UI.
Shoehorned in
As I mentioned initially, it looks like Phase One took whatever was visible onscreen, and sped up the processing of that bitmap using OpenCL. This makes sense given that they have an existing codebase, This means they don't have to start from scratch, and they can reuse existing functions like their CPU sharpening algorithm. The problem is that their original design is based on the fact that processing many pixels is processor intensive, so they optimize by only processing the pixels onscreen. Trying to shim the GPU using their existing design is rather limiting. They're most likely sending the visible bitmap to the GPU for OpenCL processing, which is fast. Then I suspect they're copying back down to system memory so that it can fit right back into their existing pipeline and have the CPU finish whatever work it needed to do. There's a few items that are sped up, but they're far from perfect, and in the grand scheme of things, they perceived improvement is just not that spectacular given the bottlenecks.
The ideal design to take full advantage of the GPU would be to upload the entire image to video memory, and manipulate it in video memory using the GPU, and display it, without copying it back down to system memory. With GPU memories being typically 512MB or 1GB+ these days, it should be a problem to fit multiple 20MP images in video memory. Making copies of the images is much faster on the GPU as well, since video memory tends to be 3-10x as fast as system memory. The result would be much smoother performance in adjustments, as well as smooth zooming and panning.
The main drawback, and I suspect the reason Phase One didn't go down this route, is that it requires rewriting the entire application. All the complicated image processing algorithms would need to be rewritten. Not only that but they'd need to maintain both pipelines. It's hard to argue against this. While technically far superior, this would mean twice the work. Phase One would need twice the sales to justify it. If C1 was fully GPU accelerated, I'd probably switch to it over Lightroom. One strong argument is that an i3 laptop with a midrange GPU could outperform a much more expensive i7 system. It's quite possible that C1 could take a sizeable share of the Lightroom market if their app is that much faster and smoother.
They could also potentially support one pipeline with OpenCL (or CUDA), and rely on CPU implmentations when the user does not have a GPU.
A third, weak argument to design C1 around GPU processing is that the CPUs on forthcoming Wiin8 tablet PCs will be rather weak. A GPU solution would far smoother, especially for allowing the user to drag the image around with their fingertips. A RAW editing app on a tablet would be great, but I suspect it would HAVE to be GPU oriented. Problem is none of the tablet GPUs are particularly programmable yet. We'd probably have to wait another generation - I suspect late 2012, and at this point I wouldn't know whether CUDA, OpenCL or DirectX 12 would be the way to go.
Other Bottlenecks
The other major bottleneck in C1 is the disk while rendering final images. The rendering is done purely on CPU. Tests across the multiple GPUs showed the same time, roughly 3:20 for 30 RAWs from a 5D MarkII. On a quad core i7, the CPU cycled between 0-100% load. The average was only maybe 50%. I suspected the bottleneck was my disk, so I tried using two disks, using one as the source, and the other as the destination. That made no difference. What I did notice was that C1 was writing to 8 output JPEGs at once. Most likely, the thrashing caused by this was limiting performance. The disk output was pretty slow, maybe 1-5MB/s, probably due to the thrashing. Phase One may be relying on their customers to purchase SSDs or use RAID arrays, but if they queued up their disk writes, it could potentially halve their rendering time on quad-core CPUs.
As a side note, I probably bought the wrong components on my PC. With a quad core i7 and 12GB of RAM, I rarely saturate the CPU (only when compiling using MSVC), or the RAM (only when running multiple VMs). Very few apps seem to be optimized for a fast CPU and lots of RAM. I had though that the extra RAM would mean fewer disk accesses, but there's still many cases (like both C1 and Lightroom) where I'm disk bound, with plenty of free memory.
Other notes on C1
Capture One LE was my first RAW workflow application, and I'm probably biased towards it because of that. I never fully got used to Lightroom's model with different modes, and the Lightroom's export to JPEG always felt a little weird, since the UI features rendering for print or web, and I never do either. When C1 was redesigned with the new .NET based UI, there were a number of things that turned me off, and I eventually switched over to Lightroom. I always organized my RAW files in folders by date. I hated the way C1 would put its working folder into every one of my folders. I loved the way the older C1 let me put all my final output files as subfolders of the image folders - now this seems to be available in the Pro version only. I find this seriously annoying.
In addition to those annoyances, the slowness of C1, the poor noise reduction, and the spot healing tool led me over to Lightroom. The OpenCL support has definitely improved the performance. The noise reduction seems much improved as well, though I haven't played with it enough to really judge it against Lightroom 3. There's a new spot removal tool that works pretty well. They've also added in keystone correction, which is only in the Pro version.
Right now I'm quite happy to use C1 Pro over LR3. It's $399 though, which is pretty steep unless it's discounted. There's a handful of features that I'd use in the Pro over Express - the output folder management, along with keystone correction, and maybe RGB curves. If they could come up with a third intermediate version that would match the LR3 feature set, that'd be perfect.
Sep 9, 2011
Canada vs. The World
Android | iOS | RIM | Symbian | |
Global | 43% | 18% | 12% | 22% |
Canada | 12% | 31% | 42% | 6.4% |
US | 36% | 26% | 21% | 1.9% |
I assume the high adoption for Android and Symbian globally is because cheaper phones are more common in less wealthy countries. Canadians must be pretty well off, since they love their iPhones, and hate on Android. I'm not sure if the RIM-love is patriotism, deals between RIM and Bell/Rogers, or some kinda of duty implication that benefits RIM handsets. (US/Canada data from Comscore, Global data from Gartner)
Aug 29, 2011
Road Trip Day 11
Aug 28, 2011
Road Trip Day 10
Road Trip Day 9
Aug 27, 2011
Road Trip Day 8
Road Trip Day 7
Aug 24, 2011
Road Trip Day 6
Aug 22, 2011
Road Trip Day 4
Road Trip Day 3
Road Trip Day 2
Aug 21, 2011
Road Trip Day 1
I had initially planned to leave San Francisco on 8/16, but I discovered later that Body Language was going to be in town on the 18th. I delayed the start date by a few days, which ended up being perfect, since it gave me a few days to rest for the drive after a hectic weekend.
Viv most generously hosted me, since I already moved out of my apartment. Hence we were well rested as we left on the morning of the 19th. It was a few hours after I had originally planned to leave; I had brought the car in for an oil change the day before, but they ended up replacing the water pump and a valve gasket as well.
We left Burlingame around 10am and took a quick stop for breakfast in Santa Clara, and then drove on to Carmel. It was cloudy all morning, but fortunately skies were clear by the time we got to the beach. We passed through the town pretty quickly, but took some stops to admire the beach and some of the fancy oceanfront properties. We also stopped by the Carmel Mission, which I had never noticed before. It had a satisfying historic feel to the museum in the restored building. Definitely worth visiting on a trip to Carmel.
Next down the route was Big Sur. We only stopped a few times for photos, but the beauty was constant on a wonderful drive. We stopped for a moment also in San Simeon to see the elephant seals. I had read about them ages ago, but it was the first time seeing the blubbery giants. I could see that it wasn't really worth a trip just for the seals though. They mostly just lie there, and scratch themselves lazily occasionally.
We also made a quick stop at the Hearst Castle visitor center. It was almost 4, and the tours were already done for the day. I didn't realize that the visitor center was miles away from the actual buildings and you could only see it from afar, perched at the top of a distant hill. It did give the estate a sense of grandeur, but wasn't really interesting enough to make me want to repeat the drive.
The next stop was supposed to be the Griffith Observatory in LA. It was hard to tell what the quickest route would be. We stopped off at the Main St. Grill in Cambria to grab a quick late lunch. Sinyee had recommended it almost 10 years ago, and the fat dripping BBQ tri-tip sandwich met expectations.
We took the route through Paso Robles, passing the vast field of oil wells at Lost Hills. It was a bit of a detour, and took about an hour and a half to get back to the I5, but the route was mostly straight and clear. We made it to the Observatory around 9, an hour and a half late for sunset, but the place was still open.
You have to drive past the Greek Theater on the way up. Death Cab for Cutie was playing that night, but the concert had already started and there wasn't too much traffic, though the Observatory parking lot was packed.
After checking out the view of LA, we swung by Son of a Gun for dinner. It was featured in Bon Appetit the previous week, but surprisingly there was no line when we arrived; I guess we were late enough. The smoked mahi dip wasn't bad, but far less interesting than the Bon Appetit article might have suggested. It reminded me of a tuna sandwich filling, with the addition of a nice smokiness. The alligator schnitzel, crisp and thin, exceeded expectations. There was no fishy flavour, it could have been mistaken for tender pork. The lobster roll compared favorably to the one I just tried a few days before at the Old Port Lobster Shack in Redwood City, though this one was about 1/3 the size, and 1/3 the price. I preferred the "naked", mayo-free version at Old Port, but the SoaG roll was better toasted and buttered.
The lime frozen yogurt though, was fantastic. Hands down best $5 dessert with the sweet meringue and graham crunch on the side. I have to say this was better than the dessert at Benu the night before, and that meal cost 4x as much (though that meal was also great).
Gas tracker
8/19 Pilot, Lost Hills, CA 10.626 gal, 305.6 miles, $3.819/gal
8/20 Shell, Pomona, CA 9.510 gal, 249.8 miles, $3.899/gal
8/21 Chevron, Ludlow, CA 5.434 gal, 138.2 miles, $4.599/gal
8/21 Chevron, Seligman, AZ 9.374 gal, 237.0 miles, $4.099/gal
8/22 Chevron, Flagstaff, AZ 7.635 gal, 218.6 miles, $3.799/gal
8/23 Circle K, Albuquerque, NM 12.882 gal, 388.0 miles, $3.679/gal
8/24 Love's, Amarillo, TX 2.747 gal, 367.3 miles, $3.639/gal partial
8/25 Toot, Amarillo, TX 11.404 gal, 15.8 miles, $3.699/gal
8/25 Love's, McCloud, OK 10.489 gal, 281.6 miles, $3.639/gal
8/26 Citgo, Springdale, AK 10.451 gal, 253.8 miles, $3.789/gal
8/27 Exxon, Memphis, TN 13.843 gal, 343.7 miles, $3.799/gal
8/28 Citgo, Farina, IL, 12.497 gal, 318.0 miles, $3.899/gal
9/01 One Stop, Chicago, IL 12.478 gal 299.5 miles, $4.299/gal
9/04 Shell, Port Huron, IL, 13.392 gal 356.9 miles, $4.10/gal
Aug 16, 2011
Farewell
Today I bid farewell to my colleagues. I bid farewell to my apartment. I bid farewell to my bartender.
I'm not comfortable with the concept of goodbye. I'm not ready for anything so permanent, with people or places that I've grown attached to.
I'd much rather have it be 'see you later'. I mean it.
Jul 29, 2011
Another blast from the past.
Jul 27, 2011
Back when I was a young scrap...
However, they definitely held nostalgic value. Skimming through them brought back memories. Some were blurrier - meals at Morty's or King Tin - there were many of them, and I wouldn't have remembered one from another. But others that were more unique, I recalled though I would not have thought of them at all without the receipts. A meal at CN Tower stood out, that was in 1998. In a way, they were almost like a journal, a lifetime narrated in purchases and payments.
It was also interesting to look at how quickly the value of gadgets decline. Not that I'm not already keenly aware of that, but to actually compare the dollar values, then and now, can sometimes be pretty staggering. This isn't at all scientific, since for some items I'm comparing what the same product costs now, and for others, a higher end modern equivalent. I also don't take inflation into account. Consider this purely for entertainment.
Ritex 4GB 80X CF $103.50 2006
Kingston 4GB 133X CF $13.29 2011
This one didn't surprise me much because I've been watching the price of Flash drop since I bought my first 128MB CF card for my Canon G1. I think that cost me a few hundred dollars. Anything made with silicon drops fast as the chips shrink. Moore's Law says transistor counts double every 2 years. You would expect prices to halve every 2 years, and be maybe 1/8th after 6 years, but in this case it's more like 1/10th after 5 years.
Dell UltraSharp 3007WFP 30" Monitor $1435.00 2006
Dell UltraSharp U3011 30" Monitor $1349.00 2011
The latest model has much improved colours and connectivity, but I feel like I got a pretty good buy 5 years ago with this monitor. Seems to have held it's value far better than the TV below.
350W Fanless power supply $89.61USD 2006
Seasonic 400W Fanless power supply $151.35 2011
Fanless power supplies were never popular, so they were always more expensive due to the lack of scale. As the desktop market shrinks to laptops, I suppose the market's becoming even more niche. This is probably the one item on this list that's getting more expensive over the years.
Burton Ruler boots $124.99USD 2003
Burton Ruler boots $199.99USD 2011
Looks like the price of snowboard gear is pretty stable, though you can always get last season's gear at steep discounts, which was why my boots are cheaper than the current ones. I think the MSRP is probably pretty similar.
SMC7004AWBR 802.11b router $174.95USD 2001
Linksys WRT54GL 802.11b/g router $49.99USD 2011
There's wireless routers for as low as $25. I'm surprised to see that the WRT54GL still sells. It's a really old product that doesn't support the latest fast wireless standards, but lives on due to it's hackability with DD-WRT. There's also high end $130 devices, but it seems most new devices are in the $50-80 range.
SMC2632W 802.11b PC card $74.95USD 2001
Rosewill 802.11b/g/n USB2.0 dongle $14.99USD 2011
Wifi was new back in 2001, but it's completely commoditized now. What's more interesting is to see how PCMCIA slots in laptops slowly transform to PC Card slots, then to ExpressCard slots, and then being ditched pretty much entirely for USB accessories.
Heine HR 2.5x 420mm Loupe $635.00USD 2001
Heine HR 2.5x 420mm Binocular set $1395.00 2011
Heine makes binocular loupes, they come in pairs, like your eyes. I have no idea why I only bought only 1 in 2001. I must have been retarded. But it seems like they haven't depreciated much in the last decade.
Createive Labs Nomad 20GB $349.99USD 2001
Archos GMINI 120 20GB $249.99 2004
iPod classic 160GB $249 2011
iPod nano 16GB $179 2011
Given how fast the price of a MB of storage drops, either on HD or in Flash, I would have expected the price of MP3 players to plumet like a bomb. An iPod classic stores 8x as much as the GMINI from 7 years ago, and it also plays movies now. But it's still $250 for an mp3 player. The iPod nano contains less than $20 of flash memory, and I'm sure the other parts might add up to another $20. Somehow Apple's managed to keep the price of these products up and reap the margins as the value of the components drop. I'm pretty much expecting this market to disappear as people are using their phones for pretty much everything now.
Toshiba TW40X81 40" TV $2956.52CDN 2000
Toshiba 40G300U 40" TV $659.00USD 2011
Big bulky rear projection TV in the era where 540p was "high definition", compared to a sleek 1080p LCD. Big progress here. Also shows how a 40" TV was considered pretty big back then, now it's about as small as you can get.
Hollywood DVD Decoder Card $120.00CDN 2000
This was an add in card that let my Pentium Pro machine play DVDs, since the CPU itself wasn't fast enough to decode DVDs. Products like this just don't exist now, so I can't compare the current value. Depreciation at infinity.
Denon AVR3300 $1478.26CDN 1999
Denon AVR3312CI $1099.99USD 2011
Audio gear hasn't progressed nearly as fast as TVs. Lack of any significant technology improvements in the power amplifiers may be part of it, but I suspect marketting of home theater audio as a luxury good has something to do with keeping the prices up. Still the audio market has changed a lot. Stereo amps have pretty much disappeared, and Hi-fi magazines have been replaced by home theater magazines. The latest AVR3312CI is networked, which is a big difference from the AVR3300 on top of all the other improvements.
Toshiba SD3109 DVD Player $679.00 1999
Toshiba SD4300 DVD Player $37.99 2011
The pitfalls of being an early adopter, seriously. It can handle 2 DVDs at once though, modern players don't do that!
Panasonic 4x/8x CD-R IDE $370CDN 1998
Sony 24X/16X DVD+R/+RW $19.99USD 2011
Wow I bought that? Oh yeah, I remember, it was for archiving data, and $370 plus a stack of CDs seemed cheap compared to the 10GB hard disks of the times. In addition to cleaning out my old receipts this past weekend, I also copied all my archived CDs/DVDs onto a 2TB hard drive so I could throw out the huge stack of plastic. Optical drives are going the way of the dodo.
Pioneer 10X DVD Slot load $199CDN 2000
Sony DVD-ROM $16.99 2011
I wish everything dropped in price like this.
Twin Mattress $279.99CDN 1996
Twin Mattress $259.99USD 2011
Why can't mattress prices decline be like DVD players?
Jan 14, 2011
It's gonna be a great year.
Wow, it looks like 2010 was my least blogged year ever. And looking at the links on the right column, it seems like personal blogging has pretty much died, replaced by pithy updates on facebook or twitter.
Every so often, something crosses my mind that deserves a bit more thought, a bit more organization, and maybe some time to pen it down. It seems like that time never comes though. Today I heard a bit on KPFA 94.1, the ultra-leftist talk radio station in Berkeley, about how this generation of Americans can expect to have a lower standard of living than their parents. A film major called in, talking about pursuing her dream, and how, since all careers were longshots, she'd rather pick one that she was passionate about. This is probably the kind of kid who'd get smacked silly by a Chinese mother. It's interesting to compare the vastly different mindsets out there between America, Europe and Asia. I could probably devote an entire essay to the topic, but my two main thoughts from this are:
1) Regardless of your opinion of Amy Chua's mothering methodology, she's a genius. The purpose of her article was really to promote her book, and it's been a while since I've seen any one article get so much publicity. It's probably got a vastly larger mindshare than any 15 second internet ad.
2) I bet in two generations time, children of refugees from the Iraqi or Afghan wars will be the new model minority. That might seem like a non-sequitur, but it ties directly to the personal drive for success that immigrant parents pass on as values to their children. There are probably few greater motivators than knowing war and destruction and having to struggle to build a better life for your children.
On a completely different note, I had one of those moments at the gym - when they play one of those older songs that you know you know... but you just can't place it. Hanging by a rope, I couldn't quite Shazam it. Anyways, later when I got home, I thought maybe I could find it again... it had a guy and girl singing. Maybe it was The XX? Nope, but the YouTube search revealed that The XX has a song called Stars, which finally triggered the memory that the song was by the Stars. Anyways, here's the old music plus some music for this month.