Saturday, March 08, 2014

Protune 2.0

There is new firmware out for your HERO3+ cameras.  I'm going to expand on some of the new HERO3+ Black Edition features related to Protune:

  • New advanced Protune™ controls for Color, ISO Limit, Sharpness and Exposure
  • Changes the Protune default settings for Color to "GoPro Color" and Sharpness to "High" 

Protune History

Protune was originally introduced in a firmware update to HERO2, and it was developed to solve the need of professionals already using GoPro cameras in feature film and TV projects.  Protune added a range of modes previously unavailable in any POV camera system: 24p, log encoding, H.264 long GOP at 35+Mb/s. See my first introduction of Protune at NAB 2012 -- this video was six months before its release.

Here is my October 2012 blog entry discussing the HERO2 Protune availability, just weeks before the HERO3 launch.

With the HERO3 Black Edition, Protune was included from day one. There were some small changes: 24p was now a standard video mode (no longer requiring Protune to be active), and white balance controls where now offered including CAMRAW.  Protune White balance controls for HERO3 and HERO3+ are:

  • AUTO - Same as in the standard modes
  • 3000K - Locked white balance for indoor warm lighting with an sRGB color space
  • 5500K - Locked white balance for sun conditions with an sRGB color space
  • 6500K - Locked white balance for daylight overcast conditions with an sRGB color space
  • CAMRAW - Lock white balance with sensor native color space.

CAMRAW is the only non-obvious addition, it doesn't attempt to saturate the image to the reduced color gamut, but standard, sRGB. Shooting in CAMRAW improves the ability to cut GoPro footage with larger cinema cameras, but it requires more post color correction -- except within GoPro Studio which handles the color matrix required automatically.

My shooting tip:  I always shoot Protune CAMRAW. The subtler color image is nice to start color correction upon, but CAMRAW is also lower noise. To saturate any image the difference in color channels is gained-up, blue channel noise is crossed into green and red channels, and vise-versa.  This happens in all cameras, and it happens in post saturation, but with CAMRAW it is under your control.

The New Protune

Protune within the new firmware on the HERO3+ Black Edition has changed again.  The original Protune was the "pro", "tune" that GoPro designed for all professionals, yet you don't have all the same needs. Now it is the mode for pros to tune their GoPro cameras.

Note: The new Protune defaults are very different to previous releases.

Protune is accessed within the tools menu by select CAPTURE SETTINGS:

Use the Mode button to scroll to PROTUNE and press the shutter.

While previously there was just on and off, with the number of new modes we added a reset to restoring Protune to the default configuration.  The default configuration turns all of Protune off except for the high bit-rate.  Protune is still the way to get the least compression / highest image quality.  If you're new to color correction, but want the least compression (for high action, high detail video), then turning Protune on is all you need to do.  Protune does required quality SD media, see GoPro SD Card Recommendations.
The next menu item exposed (with Protune set to On) is the white balance mode.   I'm showing my favorite CAMRAW mode here.
The white balance menu is unchanged from the last firmware with the default set to AUTO.

The first new menu sets the encoding curve.  It is described in terms of the video's appearance.  I also use the FLAT Protune log curve.
However the default for this mode is GOPRO COLOR, which is the standard high contrast, high saturation for the classic GoPro look. This is different from earlier Protune implementations which only had the FLAT log curve encoding of the video image.  GoPro Color was added to Protune to help with broadcast / news applications that rarely do significant color correction, but still want the best compression quality possible.

The next menu item is not completely obvious, as isn't common in other camera systems. While I know many pro users want full manual exposure, the nature of a camera with no mechanical iris on a super wide F2.8 lens, makes that tricky. ISO Limit is a step in the direction for manual control. A GoPro's exposure is controlled through shutter speed and sensor gain. ISO limit will restrict the sensor gain to the value selected or lower.
For night scenes you don't typically want to gain up the shadows to 6400 ISO (that is the default.)  If you want dark to be dark, consider 1600 or 400 ISO limit.  I haven't decided my favorite yet, other than not using 6400.  This is an improvement over the older Protune which didn't limit the sensor gain.  For those accessorizing their cameras with variable ND filters, you can use the ISO Limit 400 as a manual exposure mode of sorts. Through the ND, slowly stop the light down until the camera output begins to darken, you are now running ISO 400 with 360 degree shutter (hint: shoot 48p, then in post drop every other frame for 24p at 180 degrees -- also you will also have 2X slow motion ready when you need.)
I wouldn't know that icon meant sharpness either, but it is hard to visually depict sharpness with a off/on level monochrome display. Previous Protune modes had camera sharpening completely off, and whereas the new default and standard modes have the sharpness set to HIGH.
While I'm a fan of the old Protune with everything designed for post corrections, including adding sharpness, but I'm liking the medium mode as nice balance.  It doesn't often need additional sharpening (GoPro Studio will not default to adding any,) and it doesn't have any too obvious sharpening artifacts.
The mode I really needed: EV compensation.  I shoot a lot of events under stage lighting with my GoPros, bright lights on faces, so often blows out.  This problem is solved through EV compensation.

The EV compensation ranges from -2EV to +2EV stops of compensation, defaulting at zero.  I like to use -0.5 as my default, ready for anything, but I have used -1.0EV or -1.5EV for stage events.
Here is Protune 2.0 using the default settings, a 1:1 pixel crop from a 1920x1080 image.  No color correction applied.  Image is nice, but we can do more.

Here is CAMRAW with sharpening at Medium and EV at -0.5.  The color of the petals no longer clipping, under magic hour sunlight (EV -0.5 and CAMRAW helped.) 
Here is the same image as above with the color matrix applied (automatically) in GoPro Studio, some white balancing, contrast, sharpness added, output through the Protune preview LUT. The final image is more true the original rose coloring (this wide gamut magenta flower.)

My Favorite Configuration for HERO3+BE

While I've listed some of my favorite settings above, here are defaults for all my HERO3+ Black Edition cameras (one is not enough):

  • Video 2.7Kp30 (24p for night events or creative projects) with a Medium FOV (this mode is the sharpest with highest resolution for video presentation, with very little lens curvature.)  For aerial video I use 1080p60 Medium FOV (low light off.)
  • Photo Burst 5/1 at 12MPixels
  • Timelapse -- I don't use time-lapse photo, I use 2.7Kp24 or 1440p24 video modes and compute my timelapses is post (a GoPro Studio feature.)  See Rethinking Time-lapse
  • Protune On
  • FLAT - Log curve
  • ISO Limit 400 or 1600 as needed.
  • Sharpness Medium
  • EV -0.5 (or downward as needed)
  • Sound/Beeps OFF
  • Auto shutdown after 120 seconds of inactivity.

Added March 9th, 2014

GoPro App (Android and iOS)

These new Protune controls are all available through the latest GoPro App (free.)  An added bonus: within the latest GoPro App (version 2.3) will update your HERO3+ camera for you -- no need to update through the web site.

Hint: for updating the camera software via the App.  Get the latest app, and connect to the camera as usual.  Now the App knows which model you have, and it will contact the server to request any camera software updates.  This can take up to 24 hours of connecting to your camera (behavior from iOS and Android differs slightly.)

The next time you connect to your GoPro, this "Install Update" will appear -- click and follow the clear instructions.

Hint 2: For those that just can't wait 24 hours, after connecting to your camera, switch back to internet connected WiFi (i.e. not the camera.)  Then open the GoPro App and go to the App Settings (top right gear icon.)  Toggle the Auto Download on and off -- that should start the camera software download from the server.  See what will be updated under Camera Models.

Thursday, February 13, 2014

QuickTime 16-bit

This might be beating a dead horse, but QuickTime truly sucks.

For those using 16-bit (deep color) applications, always use the Force 16-bit encoding option, it is the highest quality and surprisingly, it is often the lowest data rate.

Now for the weird reason.

QuickTime loves 8-bit, it prefers it greatly, and support for deep color is difficult at best.  Over the years we tried to make the 16-bit the preferred mode for our codec within QuickTime, yet there are many video tools that broke when we did this.  The compromise was to add the Force 16-bit into the QuickTime compression option, to allow user to control the codecs pixel type preference – applications that can handle 16-bit will benefit, and applications that don’t, still work.

Using After Effects for my test environment (but the same applies to other QuickTime enabled deep color applications.) I created a smooth gradient 16-bit image, then encoded it at 8-bit using using a 8-bit composite, 16-bit using a 16-bit composite and 16-bit using a 16-bit composite with Force mode enabled (pictured above.)
Without post color correction, all three encodes looked pretty much the same*, yet the data rates are very different.

* Note: QuickTime screws up the gamma for the middle option, so with the image gamma corrected to compensate, they looked the same.

The resulting file sizes for 1080p 4:4:4 CineForm encodes at Filmscan quality:
8-bit – 13.4Mbytes/s
16-bit – 28.4Mbytes/s
16-bit Forced – 5.3Mbytes/s

Our instincts that higher bit-rate is higher quality will lead us astray in this case.

Under color correction you can see the difference, so I went extreme using this curve:
To output this (16-bit Forced)
The result are beautiful, really a great demo for wavelets.

Zooming in the results are still great. Nothing was lost with the smallest of the output files.

 Of course we know 8-bit will be bad
We also seeing the subtle wavelet compression ringing at the 8-bit contours enhanced by this extreme color correction.  This is normal, yet it shows you something about the CineForm codec, it always uses deep color precision.  8-bit looks better using more than 8-bits to store it.  That ringing mostly disappears using an 8-bit composite, an 8-bit DCT compressor could not do as well.
Storing 8-bit values into a 12-bit encoder, steps of 1,1,1,1,2,2,2,2 (in 8-bit gradients are clipped producing these flat spots) are encoded as 16,16,16,16,32,32,32,32, the larger step does take more bits to encode – all with the aim to deliver higher quality.  Most compression likes continuous tones and gradients, edges are harder. Here the 8-bit breaks the smooth gradients into contours which have edges. The clean 16-bit forced encode above is all gradients, no edges, result in a smaller, smooth, beautiful image.

 Now for the QuickTime craziness, 16-bit without forcing 16-bit.
The image is dithered.  This is the “magic” of QuickTime, I didn’t ask for dithering, I didn’t want dithering. Dithering is why the file is so big when compressed.  QuickTime is given a 16-bit format, to a codec that can do 16-bit, but sees it can also do 8-bit, so it dithers to 8-bit, screws up the gamma, then gives that to the encoder.  Now nearly every pixel has an edge, therefore a lot more information to encode.  CineForm still successfully encodes dithered images with good results, yet this is not want you expect.  If you wanted noise, you can add that as need, you don't want your video interface (QuickTime) to add noise for you.

If anyone can explain why Quicktime does this, I would love to not have users have to manually select “Force 16-bit encoding”.    

P.S. real world deep 10/12-bit sources pretty much always produce smaller files than 8-bit.  This was an extreme example to show way this is happening.