GH4 : Convert 4K 8bit to 1080p 10bit?

Bern Caughey

Veteran
Has anyone tested converting the GH4's internal 4K 8bit 4:2:0 into 1080p 10bit 4:4:4?

I'm particularly interested in whether banding will be eliminated without resorting to external recorders.

Thanks,
Bern
 
This has been discussed on EOSHD forums.

I think it was decided (by committee! Lol) that you will get 4:4:4 but it still won't be 10bit

from my basic understanding, from the four pixels on the 8bit 4K frame which will be used to make the one pixel on the 1080 frame, you are still limited to the 256 levels. Even though the four pixels might contain slightly different shades of a colour, you are still limited to a selection of 256 on each. So adding them together, you don't get 1024 but still 256. Someone said that banding wasn't reduced when they downsampled to 1080.

Shame, as I originally thought so too :-(
 
You can get 10-bit luma info when downscaling to 1080p, if you have a little bit of camera noise to provide dithering.

A quick test in After Effects could confirm this. And I will confirm this when my GH4 arrives.

If there is no dithering, or if there is macroblocking / additional quantization in the compression algorithm (which would mean you're actually not recording full 8-bit info per pixel), then you don't of course.

Bruce Allen
www.boacinema.com
 
even HDMI provides 10 bit 422 and I am sure the quality will be outstanding, but creating 1023 colors out of 256 is just nonsense plain and simple.
 
From what I've read, downscaling 4k to 1080p will allow 4:2:0 chroma subsampling to become 4:4:4. The controversial claim, yes, is 8-bit becoming 10-bit. That part seems magical.
 
I'm telling you guys, in theory, this works, but in real world, not so much. It's very selective. If you have a shot that has banding in the original 4K 8-bit, that banding will still be evident when you down-res to 2K/1080P "10-bit".

Below are two GH4 shots - the shot I used is a "worst case scenario" type of shot - because the shot itself is of a bland, bright sky that contains strong highlights and deep shadows (a real killer for 8-bit codecs as many of you know). Regardless, I imported Andrew's (of EOSHD) 4K ProRes file into Premiere Pro CS6, and did a light "Shadow/Highlight" recovery to see what kind of data I could get out of such an extreme shot - and remember that it is an extreme shot as it contains both strong highlights and deep shadows - I think any camera (in regards to dynamic-range) would struggle in this situation to be honest. However, the increase in colours that 10-bit brings would have definitely helped in the gradation I think. Also, I should point out - these are 8-bit JPEGS, however, I did render the shots as "Uncompressed 10-bit YUV" (by way of Blackmagic's Premiere Pro rendering preset for Premiere CS6), and the results (in regards to the gradation) were the same. Anyway, here are the shots:

ORIGINAL 4K SHOT
GH4K 01.jpg

DOWN-RES 1080P SHOT WITH SLIGHT SHADOW/HIGHLIGHT RECOVERY
GH4K 02.jpg
 
I imported Andrew's (of EOSHD) 4K ProRes file into Premiere Pro CS6

Fair enough, but I think the workflow requires something like after effects so you can move the clip into an RGB colorspace rather than YUV. From my understanding, doing it in Premiere won't work.
 
Fair enough, but I think the workflow requires something like after effects so you can move the clip into an RGB colorspace rather than YUV. From my understanding, doing it in Premiere won't work.

I tried in After Effects too. 16-bits per-channel. I tried Adobe RGB. Apple RGB. sRGB. Wide-Gamut RGB. REC.709. REC.709 16-235,. Same results. Look, if you shoot sensibly for 8-bit, i.e. expose for your highlights, choose shots that aren't extreme (like the one above) and not too taxing on the dynamic-range, I think you will be able to emulate the colour-precision and wider range of colours/smoother gradation of 10-bit. But it simply is nowhere near as good as a true 10-bit codec.

No matter which way people want to pitch it, if there is banding in your 8-bit 4K (RGB or YUV), you will have banding in your "10-bit" 2K/1080P.

Personally, I hope someone proves me wrong.
 
I did some tests and noticed slightly better quality 4k to 1080p downscaling in After Effects vs. Premiere. I think this is because the scaling algorithms are better. I messed around with extreme color correction and noticed that banding is perhaps a smidge less noticeable when using 4k source material than with 1080p material. But I don't chalk this up to any bit depth or chroma subsampling changes. I think it's simply that there are 4 times as many pixels to represent the image, so the banding looks a bit smoother.
Personally, I think some of the GH4 material I've downloaded looks great for 100mb 8-bit 4:2:0.
I can't wait to get my own GH4 and get 10-bit 4k out of it to an external recorder, either via the YAGH or out HDMI if those recorders become available.
 
you are still limited to the 256 levels. Even though the four pixels might contain slightly different shades of a colour, you are still limited to a selection of 256 on each. So adding them together, you don't get 1024 but still 256.

I have had a deep think about this. Initially agreeing with what you feel above, but think on.

8 is 256 colours, 10 is 1024 colours, for simplicity let us pretend it is 250 and 1000.

When you put 8 bit in a 10 bit wrapper you are spreading the 250 available levels over 1000 available levels - simply multiplying each value by four to get from 0-1000 instead of 0-250

8bit in a 10 bit wrapper..
Black is 0
Darkest tone = 4
Next tone = 8

With 8bit in a 10bit wrapper tonal values 1,2,3 are never available only 0 or 4. Tonal values 5,6,7 are also missing as the next value is 8

You can see this is well short of information! (1235679 etc are missing)

Now consider a four pixel group (that is 4k to 1080 downsize)

Now each 8bit pixel can only be 0 or 4, not 1,2 or 3

But let us consider the four pixel group (that is to be merged from 4k-1080)

pixel1 value0
pixel2 value0
pixel3 value4
pixel4 value4

now the average value of 0,0,4,4 is 2

So you see by taking the average value of four pixels to create one pixel you can indeed end up with those 1,2,3 values that are missing when just putting normal 8bit into a 10bit wrapper.

8bit in a 10bit wrapper.. 0,4,8,12,16,
8bit4k averaged in a 10bit codec.. 0,1,2,3,4,5 - AKA true 10bit.


No matter which way people want to pitch it, if there is banding in your 8-bit 4K (RGB or YUV), you will have banding in your "10-bit"

An 8bit camera should never display banding in the 8bit space. It should only band once moved to the 10bit space and graded, then those missing 1'2'3 values become apparent.

As I outlined above you should be able to create 'true 10bit' from 4 times oversampled 8bit, If your software is creating banding then you are not doing the process correctly.

I guess that this will work properly with a specific transcode tool. Maybe from 5D-RGB, ClipWrap or one of the other indy transcode suppliers..

---

(of course if the compression of your 8bit capture exhibits blocking then your 10bit transcode will too, blocking is not banding but is an image artifact to be equally concerned about)

S
 
Last edited:
That's a really cool post, Sam, very informative!

The file I used of Andrew's was placed in a 10-bit ProRes wrapper - I think he rendered it as 4:2:2 YUV 10-bit to be exact. Perhaps that was the problem?
 
I think there may or may not be many problems..

1) Image compression blocking/artifacts (the camera is not delivering true uncompressed 8bit 4k)

2) The method(s) of creating the transcode.

The 'averaging' I laid out above may or may not be how 'normal' image processors work - I dont really know how image processors work.

Like I said I think they best method of 'averaging/downsizing' will be a specifically designed (not yet released) transcode tool.

I guess imaging tools with a good 'engine' will do it - I guess photoshop is a good engine..

For example if you had your 4k clip in QT7, exported it as a 16bitTiff image seqence, ran a photoshop action to downsize, then imported those images into QT and exported a 10bit422 movie from it might work.. but again it relies on how the QT engine deals with the file.

The chap who put Andrew Reid onto this was from an image engine company (i cant remember which) but doutless that company will release something..

S
 
Not sure if that's actually true. Remember, this is 4:2:0 chroma sampling we're talking about. That means that while luma may be 10-bit, chroma is still 8-bit - one chroma value every 4 pixels.
 
Last edited:
(of course if the compression of your 8bit capture exhibits blocking then your 10bit transcode will too, blocking is not banding but is an image artifact to be equally concerned about)

S

But this is the overwhelming limitation and the reason there is nothing to be gained by down sizing in order to enable a better grade which is what EOSHD has been pushing. You may mathematically have >8 bits is some areas of the image but in the critical areas that have be done over by the originating compression, such as the blacks for e.g. and mosquito noise around the edges of a blonde's hairdo against a green screen, it has huge gobs of 8bits that have just been up sampled to 10 bits. You can demonstrate this to be the case by pushing one of the so called 2K 10 bit images in the grade and its originating posterizations become very evident.

The better course of action, IMHO, would be to remain at 4K throughout post as any vignettes and gradients will be applied at 4K and in floating point precision and thus improve the downsizing maths for output to 2K 10 bit or 8 bit. But since we're limited to 8 bit viewing I find it hard to believe you'd see any discernible difference anyway.

Another technique that used to be used in the days of early DV/DVCAM and greens screen was to take the YUV channels, separate them and blur the U and V then recombine then convert to RGB to blur out the 420 sampling and some of the macro blocking. You could take a similar approach to downsizing by interrogating the individual channels and target particular areas of the image and/or luma ranges for selective blurring that may improved the downsize maths. I've just knocked up a quick Shake script that shows that you can knock out some macro blocking and improve the grading, not by much but it is visible with your nose up against the screen which might be enough for some.

But it won't take long for people to realise it simply isn't worth the fag to do this regularly and a better use of time and money would be to go out an buy a 10 bit 4K HDMI recorder that will surely be announced at NAB if it hasn't already been. Just think of the possibilities of downsizing from 10 bit 4K blimey you'd have 14 bit RAW in no time, ;)
 
Really I know little about this. To me all 1080 video has looked crappy, downsize a (8+mp) still in photoshop to 1080 and it looks waay sharper. So one conclude that compression is indeed the king killer of image quality.

I think the bottom line is that consumer '4k' at 1080 will look less crappy than consumer '1080' at '1080'. Now if one were to shoot uncompressed 1080 on an F3 (for example) it still might look better than consumer4k1080.

Time will tell.

S
 
Really I know little about this. To me all 1080 video has looked crappy, downsize a (8+mp) still in photoshop to 1080 and it looks waay sharper. So one conclude that compression is indeed the king killer of image quality.

I think the bottom line is that consumer '4k' at 1080 will look less crappy than consumer '1080' at '1080'. Now if one were to shoot uncompressed 1080 on an F3 (for example) it still might look better than consumer4k1080.

Time will tell.

S

Absolutely agree 4k for 2k/1080 will be a sweet spot for most people especially when there is an affordable recorder with 10 bit lowish compression for the GH4 and cameras like it. I'm glad I skipped the FS700 and RAW recorder and waited as I think there are great things ahead for GH4 level users. Sony are about to announce their 4K strategy today so some other good news maybe on the way but the GH4 has really piqued my interest.

Note, the image operations I mentioned above should be done in float and of course the down size filter makes a big difference to perceived sharpness of the downsized image.
 
Ok im just using my common sense here and oversimplifying my perception
10bit captured footage can have 1024 colors meaning 1 billion of colors
8 bit captured footage can have 256 colors meaning 16.8 million colors

no matter how big an 8bit footage is, banding would still remain despite scaling. i dont think it can recreate actual colors it never had. (If it had 10 bands from light blue to dark blue, if you scale it down, its not gonna come up with an inbetween color and make it 100bands..)

So imo, it can be technically 10 bit but not the 10bit that youd get from direct acquisition.

i could be wrong, but we cant test until someone has a gh4 and a ninja.
 
Last edited:
You are allocating four pixels to collect data for one 'new pixel'

So those four pixels can each be any one of those 16.8 million colours, so you have 16.8million to the power of four different colour options for your 'new pixel'

16,800,000 to the power of four is, about a billion.

S
 
Again, 4:2:0 chroma sampling. All four of these pixels are the same colour. The only difference between them is in the luma channel.
 
i get that it will be technically '10 bit' in the end but its not the same as an actual 10 bit acquisition. you cant extract more information from it since compression from 4k already took it all out. it will still look sharp because the luma is 4 but the image will look the same as the original with all the 8 bit flaws.

bottomline yes this is still better than the in camera 1080 scaling but its '10bit' is probably not an absolute benefit in post. just a little.

anyway im not saying you are wrong. im just saying what i think :)
 
Back
Top