Share Button

Canon 1DC / MJPEG compression banding and blocking

The Canon 1DC uses Motion Jpeg / YUV 4:2:2 to compress the massive 4k 24p resolution video files. It’s a variable bit rate of around 500 Mbps that will change depending on the shot and ISO level.

NOTE: These are only my thoughts and guess work, none of this is confirmed by Canon or any body else. My recommendations should be disregarded unless you have tested the camera yourself.

Pre-Production

Some users have found shooting Canon Log at lower than the native ISO value of 400 can cause extreme banding. I’ve made some tests below to show that the compression used and it’s quality value is the main cause for banding and compression dithering blocking.

I’m confident that the 1DC would produce stunning delicate graduated imagery if not constrained by the MJPEG format at lower that 100% quality. The tests below also show what happens when simulated gain of ISO400 is applied before post production on the images.

Images below are shown at 670 x 400 centre crops of the 4096 x 2160 full 4k frame. To view the full frame please click on the image. Images are saved as compressed jpeg for web. This will alter the structure of the image but will still give an accurate comparison. The images are graded very harshly to aggravate and break the codec.

You will see below the blocking dithering of the graduations in this simulated sky reflection. Also that at 100% quality the MJPEG produces a very good compression to artifact ratio. What is most improved is the introduction to slight grain or ISO in the image this helps break up the 8bit banding on the native image. And whilst it does not stop banding on the 1DC the native ISO of 400 should be used where possible.

MJPEG Sky grad 75percent  -670

MJPEG Sky grad 90percent  -670

MJPEG Sky grad 100percent  -670

The frames below show simulated ISO value of 400.

MJPEG Sky grad dithered 90percent  -670

MJPEG Sky grad dithered 100percent  -670

I would love to see the compression changeable by the user. A bit like how you can adjust the jpeg compression level in camera. At the moment 10 seconds uses about 500MB of data. If Canon did change the quality setting of the MJPEG at 100% quality you would get 615MB of data for 10 seconds but higher ISO’s could push that up to 900MB for 10 seconds. Still I would love the choice if the compression chips could take it.

A 128GB 1000x UDMA 7 card will hold around 34mins of 4k Video and that is broken up into 32 4.12GB chunks.

 

Share Button

Comments

  1. NiklasA says:

    Hi James,

    first of all: Thank you for your efforts in many of your posts on this website!!!

    I have to admit that your last post left me confused. I don’t own a 1 D-C yet and can’t find a manual online, so some of my questions might seem trivial to an owner.

    What you’re doing is a simulation, correct? I understand from what you’re saying that the 1D-C has one quality setting, whatever that may be. (We know the average bit-rate) So what exactly did you do? Take a still (raw?) and then apply externally various (motion)jpg settings? Also, what do you mean by dithering? In my understanding dithering is something you do actively. In your 400ISO samples you simply let the slight noise break up the even banding patterns – one might argue that this constitutes a natural dither. But I read you correctly that you didn’t apply any further dither than that, for example by applying noise?

    I doubt that Canon can do much about the bit rate, to me the camera looks maxed out, which might explain why the thought so long about adding 25p – I don’t think they forgot about it.

    At the same time I think this being motion jpeg it’s worth looking at a strip of film, not a single frame. With a bit of break-up as shown by you above, an actual film will probably look okayish, because there are no frame-to-frame dependencies, so the pattern itself changes (hopefully!!!) much more from frame to frame.

    Best regards,
    Niklas

    P.S. I know this site is moderated which I appreciate very much, so comments are released in batches. If you answer my questions somewhere else, don’t bother to reply here.

    1. NiklasA says:

      Sorry one more … so what are the quality settings you refer to, if they are not quality settings of the camera?

    2. millermiller says:

      Hi Niklas,

      The test although obscure! was based on a real 4k clip that fell apart with mjpeg artifects. I produced a 10 second movie file that simulated this as the camera would send to its encoders. The frames above are taken from that sequence. The files are too big to share efficiently so I decided to take a frame from each.

      The thing with MJPEG it’s very fickle and likes to be run at 100% compression on very light mid tones and skin tones.

      The camera is native at 400 ISO. Not running at 400 ISO in C- log produces other issues like clipping in the highlights and shadows. At 400 ISO this is no longer a problem and the camera has it’s most dynamic range.

      The other benefit of running at native 400 ISO is like adding noise or grain to a graduated image it help dither it and encodes without such extreme banding. Thats a fact and I have tested it many times, it’s not a cure but does help.

      My point being as with the 1DX, IDC you can control the amount of jpeg compression in pictures and a feature like this would be very handy for the motion jpeg. There would be trade off’s like maximum ISO and length of clip I’m sure but I would this it very possible or at the very least should be documented.

      James

      1. millermiller says:

        As an addition to the above. I first investigated this because I was trying to figure out what ratio of compression Canon had used on the 1DC and why the blockiness and breakup experienced by 1DC users. It’s good to know what you have to play with. :)

        1. NiklasA says:

          So it’s an basically an investigation into Motion JPEG compression? The 4k data actually comes from a different source since there’s no way of laying your hands on the 1D-C 4k stream before encoding? You reverse engineer why the 400 Iso picture looks (more or less) okay and your second conclusion is that Canon (if the can) should really allow for minimal compression settings.

          Thanks and greetings from Munich,
          Niklas

          1. millermiller says:

            basically yes. All I can do Is recreated the graduation from the original 4k footage and work out where these annoying artifects come from.

  2. Scott Thomas says:

    Hi James. What was the difference in file size between the original uncompressed file and the 100% MJPEG file?

    With PhotoJPEG there is hardly any difference and this is the reason why stock companies recommend supplying 75% compressed files which shows the same blocking you get here but gives a reasonable file size (I supply 90%).

    Also how do you “apply” a simulated 400ISO to a still? Love to know.

    Scott

    1. millermiller says:

      Hi Scott,
      8bit uncompressed of the 10second test clip is about 4.5GB compared to 500MB of the MJPEG canon use.

      I remember reading that MJPEG changes to RGB over a certain percent, I think at 75% it’s YUV. So 90% should be great.

      Simulated ISO just by comparing real shots to fake ones with grain/ noise added. It doesn’t really matter about values just as long as you are breaking up the gradient.

      1. Scott Thomas says:

        Thanks James.

        I remember Philip showing images at a seminar from a Canon 5D MKII proving that the least noisy (and native) ISO setting was 160. Why is it ISO400 on the 1DX C?

        1. millermiller says:

          I don’t know. Thats whats it says though. Only seems to apply in C-log, something other DSLR canons have never had.

          1. millermiller says:

            Also, i’m sure 100 ISO is less noisy it’s just clipped in LOG.

  3. Hi Phillip,

    I read your 1dc (Snowy) review (Must have been REAL cold) with great enjoyment.

    It is beyond my realm of comprehension how a camera in that price range can get away with a 4:2:2 8bit codec.
    8 Bit, that is 256 levels of gray scale per channel. That is nothing. At least if color grading comes into play.

    BMCC (clumsy camera – I have tested it myself) renders beautiful images and that under $3000. You have already mentioned all its caveats in your fine review so I wont go there.

    However, as Canon (Quietly) introduced the 1dc I really thought that something carrying the “C” letter, let alone such a serious price-tag would at least deliver a 10 || 12 Bit codec with 4×4 colors. Seeing the banding in the sky added with its price tag makes this camera no brainer NOT to get. The scarlett from Red outperforms the 1dc in every regard, aside from the body-weight and battery duration.

    Amazing, I think that a company that literally revolutionized the “Film” world didnt even KNOW why it did so. Whatever props the 5dmkii got Canon, their following camera-releases have totally killed that. IMO at least ;-)

    Thanks for a very very fine Blog – that to me has become as VERY VERY serious source !!!

    Best
    Morten

    1. gingercat says:

      Hi James,

      Wondering if Technicolor Cinestyle profile would work better with 1D c at lower ISO’s.

      Chris

      1. millermiller says:

        Hi Chris, My thoughts behind the C LOG is that it bypasses the user profiles that seem regardless of profiles, use some kind of noise reduction. So using the Technicolor would not be as true. However saying that, there are less banding issues in the user profiles.

      2. I believe it would… It would not improve banding… But CS does expand 0.5 (Before hitting the compressor) | Thus at lower ISO you would see more detail (although less contrast) in lower/higher regions…

    2. Don McVey says:

      Think I agree with you Morten. Only people I can see buying a 1DC are people with money burning a hole in their pocket! :) I personally can’t get my head around who this 4k is aimed at. For me 4k is mostly for film (as it really needs to be projected properly to be appreciated) and I can’t see many film-makers wanting to deal with Mjegs in post. I see the 1DC as a ‘test the market’ camera. Canon are dipping a toe in – unlike Sony who are really going for it with the F5.

      Would love to see the BMCC (or similar) take a big slice of the Canon market as it could only help bring prices down. But BM have to actually deliver them! They got everyone all excited but seem to have forgotten to manufacture the things!

      1. Philip Bloom says:

        trust me Don I absolutely do not have money burning a hole in my pocket.

        1. Don McVey says:

          I can’t even afford pockets!

      2. walkerfilm says:

        I don’t either but last year I left a fair bit of cash on the table because I couldn’t deliver stills.
        The stills from motion jpeg look more than good enough. The 2k from 4k master looks beautiful.
        I love working with the DSLR form factor and need to upgrade my current one.
        I have the option of a nice 35mm frame and low data stream if need be.
        Trust me a month ago I never thought I could justify this, I’m a very small operator, but it just makes sense.

      3. Hi Don,

        IMO – 4k has a couple of advantages over FullHD if/when delivering in FullHD…

        A) Stabilizing (You wont have to re-construct or scale up edges to compensate for smoothing/stab.
        Just scale the 4k down to about 55% and you have a safe boarder

        B) You can make great camera moves if you plan-in a FullHD crop in the 4k shot. (Leave the 4k at 100% scale or so, and drop it into a FullHD sequence. Then start moving about its position.

        C) Zooming… Scaled down to 50% will allow for a 100% zoom effect with no pixel loss…

        Those among others are reasons why I would love to shoot @ 4k. Not because I want to deliver in 4k but because shooting “bigger” than delivery-format greatly expands your possibilities in post and cut ;-)

        1. Don McVey says:

          Don’t think I’d want to do too many planned 1080p shoots in 4 k, just for the bonus of having crop room. Might do something like this in a music video or something, but no way I’d shoot drama or documentary this way. Main reason is the massive files, but I also think its a dangerous habit. Much like the way I used to take photos on film, think every shot through before pushing the button. When I got a DSLR, I saw the quality of my photography slowly deteriorate. Took me a while to realise it was because I just wasn’t thinking in the same way about the shot. Start filming with the idea you can crop to desired framing and your creativity will suffer IMO.

          1. millermiller says:

            I don’t shoot 4k so I can crop, but comes in very handy in edit to make a slight recrop instead of a reshoot. Also 4k back to 2k packs a lot of detail if scaled right.
            Besides recropping too heavy would show larger noise pattern and artifects.

            1. alencar13 says:

              “4k back to 2k packs a lot of detail if scaled right.” Do you have any recommendations on the best methods of downscaling for the most detailed results? At first I was thinking of just transcoding all 4K shots to ProRes or DNxHD with Squeeze Pro right off the bat (for projects finishing in 1080), but then I suppose I’d have to upscale to match 16:9 frame ratio of the Full HD or S35 1080 footage. So probably better to retain the 4K in the edit and downscale at the end, if final output is 16:9. Any tips on best ways of doing this in Avid MC or FCP? Or is it pretty straightforward?
              Thanks for all your helpful posts!

  4. eidecom.com says:

    What is the highest Frame rate for the camera without losing resolution (above 1080p)?

  5. John Novotny says:

    Wow! RED’s looking a heck of a lot better now. Red RAW seems much more flexible than this.

    1. Philip Bloom says:

      indeed…its a great codec…

  6. keark46547 says:

    My 1DX have banding issue like this. how can I solve this problem. Help me please. I just move from 5D mark3 to 1DX. My footage have banding issue on it . I used Cinestyle . What happen to my 1DX. ;(