Codecs? (2 replies and 7 comments)
So, I've recently been trying to expand my knowledge into the techy side of the filmmaking process, and I've been reading up on codecs. And One particular thing I was reading about was codecs such as MPEG-4 or MPEG IMX that use a single frame GOP, also called...
So, my question is, is this the optimal codec to use? Or are there better ones?
... However, in the book I'm reading, it says that this is a super efficient way to conserve space, but doesn't really give any contextual examples.
Can anyone help explain this? Maybe give some contextual examples?
I would greatly appreciate anyone's input.
oh! Also, this may be the topic of a different discussion, I am also interested in learning more about VBR encoding and in what circumstances it is considered commonly aplicable.
VBR would be variable bit rate and thus interframe recording.
Intraframe would be CBR
Basically there are two families of compression: Interframe and Intraframe.
Interframe works like this: samples from one frame to an other that don't change won't get recorded.
So when you're recording this would be the most efficient way to capture high quality images.
You're only recording the changes !
Thus most cameras will record in Interframe or a close relative (LONGGOP/Wavelet).
Your NLE won't be happy working with this type of material as there aren't 24 frames in a second. There's basically one frame (an index frame) and a lot of samples that are different from that first frame. So your CPU and RAM will have to process the remaining frames (in realtime!) based on that first index frame and the changes. Playing back this material thus makes your computer work for it's money, let alone editing this type of codecs. You might encounter crashes ! Why would you ? Why would you stress out your CPU and RAM like this ? Because there's an alternative codec: Intraframe. Which is great for editing applications !
People have invented Intraframe: with that you WILL have 24 (or 25 or 29,97) frames, but when you compress, you usually will have to leave out samples and with Intraframe that usually will mean: less quality (at the same bitrate as an interframe codec) in the image. The question then becomes: will a human notice ? You can leave out quite a bit without a noticeable lack of quality. (Red calls this: visually lossless).
So long story short: we normally use interframe for in camera recording and intraframe for editing.
I-frame means intraframe compression, by the way.... This might be a good idea to use in camera, when you don't have time to transcode during import (e.g. news), but is not very common in cinematography. (lots of data and therefore a need for efficiency in capture)
IMX is a typical broadcast codec, but you won't see it in cinematography.
Awesome! Thanks a ton for the clarification on this subject. It's starting to make more sense now.
So, what shooting codecs are recommended for serious narrative film cinematography? JPEG-2000 I've heard is used for theatrical projection. Is that a practical choice?
jpeg2000 is for DCP's
you'd be better off shooting in the codecs offered by the cam you're shooting on. Most decent cinema cams' codecs work in all the post software.
The amount of compression depends on how much work you're going to put into it afterwards.
if you're pretty confident about your exposure skills you can shoot at with more compression.. This is always good for the budget and visually there's no or not much difference given that you don't do extreme grading to it.
shooting uncompressed only makes sense if you have an incredible amount of cgi work IMO.. and even than. All the extra costs it introduces... you can only do this with clients who are able to pay big $$$. Then you can do a whole bunch of people big favors: more camera assitents, more gear, people like that. Producers don't. But if they have the $$$, why not, right? But don't tell them :p
but if you're short on $$$ it might be wiser to save it for lighting gear or use it to to hire the most skillful people you can pay.
The fact that most codecs can be used by NLEs doesn't mean you should use them for editing. That would be very unwise on larger projects (such as features). Better transcode to prores or DNxHR for editing and conform back to original RAW for DI.