Update: 20th of March 2020; Added sections: Note on macOS perspective; Working with eGPUs
When preparing for a job on which you will be responsible for transcoding, it’s important to choose the hardware with the right processing power. The type of processing power has significant influence on your transcoding performance, so choosing the right CPU/GPU-combination is important in order to optimize your transcoding speed.
When thinking about how to improve your transcoding speed, two thoughts should come to mind:
– First: The way in which video material is processed during transcoding depends on the source format that needs to be handled. Generally, different formats require different processing steps.
– Second: Mainly CPU (Central Processing Unit) and GPU (Graphics Processing Unit) are responsible for the actual processing of the video material, and therefore for the speed of transcoding. CPU and GPU are used in each processing step to a different extent.
So to choose the “right” hardware, we will first need to answer the following questions:
- Which formats require which processing steps during transcoding?
- Which processing power (CPU or GPU) is dominant in each step?
Based on these insights we can derive a list that shows which processing power you should boost to improve your transcoding speed, depending on the format you work with.
So let’s take a closer look at the different processing steps and which resources they require.
The Processing Steps For Original Camera Negatives During Transcoding
First, let’s take a look at the different processing steps original camera negatives have to go through during transcoding:
1. Decode & Decompress [decompress: compressed RAW only]: Extract the data from the specific file structure and prepare it to be processed. While decode is always necessary, decompressing is only required for compressed RAW formats.
2. Debayer [RAW only]: This processing step is necessary only for RAW formats, which generally hold the native sensor pixel values that require processing to display an image.
3. Resize & Filter (e.g. bake in LUTs or Burn Ins) [optional]: Resizing from e.g. 4K to HD takes place on the GPU. To change the look of the image or burn in visual overlays on the image filters can be applied. Both steps are optional, but resizing is very common to be required when e.g shooting 4K and transcoding to HD.
4. Encode: Assemble the image data to the destination specific codec type and container structure. This is a mandatory step.
For completeness, please keep in mind that before and after the processing steps the necessary read and write actions from and to the drives take place and also require time that might influence transcoding speed.
The Responsible Processing Units
Now that we are aware of the processing pipeline that the source material has to go through, we can assign the responsible processing unit, CPU or GPU, to the specific steps:
1. Decode & Decompress [decompress: compressed RAW only]: CPU
2. Debayer [RAW only]: GPU
3. Resize & Filter (e.g. bake in LUTs or Burn Ins) [optional]: GPU
4. Encode: CPU
Conclusion: GPU vs CPU mainly Means Uncompressed RAW vs Non-RAW. Compressed RAW is Some Sort of a Hybrid.
Looking at this process we can see that the two mandatory steps, decoding (1) and encoding (4), both require CPU power. This means that a good and stable CPU always sets the basis for your transcoding performance. However, not in all cases the CPU is the limiting force – especially when heavy GPU power is required.
This leads us to the important question: When does powering up GPU actually help?
For this we have to know first, that while debayering (2), and resizing & filtering (3) both use GPU, the resizing & filtering step (3) requires way less heavy lifting, and can therefore be disregarded.
Usually, the decisive processing step for uncompressed RAW formats is the debayering, taking place on the GPU. Detailed settings like the debayer resolution can heavily influence the necessary GPU power.
Though uncompressed RAW formats also require debayering performed on the GPU, they first have to go through a decompression phase that is CPU dependant. As this can require a lot of heavy lifting from the CPU this can lead to the debayer process on the GPU not being the limiting force anymore.
Please note: We are looking at the facts from a Mac / macOS perspective. The resources taking care of certain processing steps might depend on platform specific enablements (like e.g. decoding of REDRAW being possible on GPU in the future). This is work in steady progress. We are looking to update this article regularly to take such evolutions into account.
Which Format Mainly Requires Which Processing Power?
To sum it up:
All RAW formats (both compressed and uncompressed, like e.g. ARRIRAW or REDCODE RAW) require debayering and therefore a powerful GPU
All non-RAW formats (like e.g. ProRes) rely mainly on the CPU for processing.
Compressed RAW formats (like e.g. REDCODE RAW or SONY X-OCN) are sort of a hybrid, as they require decompression along with the decoding step. In particular this can lead to requiring more CPU power in a way that the GPU performance no longer limits transcoding speeds. Keep in mind that this is in detail heavily format dependant.
So we can see that the list of formats clearly splits along the lines of Compressed RAW, Uncompressed RAW and non-RAW format:
Uncompressed RAW -> requires mainly GPU power
- ARRIRAW (.ari and .mxf)
- SONY RAW (.mxf)
- Phantom Cine Vision Research (.cine)
- Canon Uncompressed RAW (.rmf)
- Panasonic V-RAW
Compressed RAW -> requires both CPU and GPU power
- REDCODE RAW (.r3d)
- SONY X-OCN (.mxf)
- CODEX HDE ARRIRAW (.arx)
- Blackmagic RAW (.braw)
- Canon Cinema RAW Light (.crm)
Non-RAW -> requires mainly CPU power
- ProRes Quicktime Movies
- Panasonic AVC-Intra
- Canon XF Movies
- Canon XF-HEVC
- Canon MPEG-4 AVC/H.264
- H.264 Quicktime Movies
In case you want to have a look at the list again later, we’ve summarized everything that’s important in a convenient infographic. You can download it here:
Working with External GPUs (eGPUs)
When considering to add external GPUs, all of the above stays generally true: It is heavily format dependant if using an external GPU will boost your transcoding speeds (basically benefits can only be seen, if debayering is the process currently limiting the performance). However, transmitting the processes to an eGPU also requires system resources to move the tasks there, as well as appropriate I/O of the external unit. Therefore please keep in mind that transferring processes to external GPUs can even cause a slow down transcoding speeds for certain formats (like e.g. ProRes).
The understanding of the processing pipeline for transcoding digital source camera footage enables you to make smart decisions about the hardware you use. If you know which format you are working with, you can make a targeted investment to improve transcoding performance. For example for ARRIRAW, you can boost your GPU power by using an eGPU, supported in professional transcoding applications like Silverstack Lab.