FBlog | Discover the Interesting on the Web
Tech

CUDA & DXVA Easily Explained

CUDA & DXVA Easily Explained

Many users of Freemake Video Converter heard of CUDA and DXVA technologies integrated into the software to speed up video conversion. However, not everyone knows how and when these technologies actually work and what real value they add. This post is an attempt to explain NVIDIA CUDA and DXVA in plain English.

SEE ALSO: How to Rip DVD Free to Any Format

From CPU to GPU

Inside of each modern PC there is a graphics card, its quality often tells on the possibility to run video games and mighty graphics software. Technically speaking, video card has its own memory and GPU, or Graphics Processing Unit.

SEE ALSO: 10 Splendid Screen Capture Tools for Game Recording

GPUs appeared not long ago, they descended from 3D accelerators used to render 3D graphics. The term “GPU” was coined by NVIDIA upon the launch of GeForce video chips. The general purpose of GPU was to relieve the Central Processing Unit (CPU) of graphics-related tasks to ensure efficient workload.

cpu vs gpu

As manufacturing capabilities improved, graphics cards could handle more calculation-intensive tasks. Hardly anyone knows that modern video chips may contain up to 1000 cores which of course are not so powerful as CPU cores, but they ideally suit to cope with graphics processing.

GPU in video conversion

Roughly, a digital video consists of a series of still image frames, from 24 to 72 per second. If all still frames were displayed “as-is”, one-minute video would weigh several gigabytes. Therefore, video frames are compressed. Each format uses its own algorithm of video compression.

SEE ALSO: 10 Powerful Media Converters for Multiple Platforms

The process of video conversion falls into two stages – decoding (decompression of an original file) and encoding (a new compression). Both processes require a lot of of processing power, so to complete a conversion as quickly as possible, it’s necessary to use 100% of the processor output. To offload the CPU, the power of video cards comes to the aid.

However, it’s not that easy to unlock the potential of video cards. So the leading video cards manufacturers put forward their own GPU-based technologies: CUDA by NVIDIA, DXVA by Microsoft, ATI Stream by AMD.

What is CUDA?

NVidia CUDA

CUDA, or Compute Unified Device Architecture, is NVIDIA’s technology which ensures dramatic increases in software performance by using the GPU power. CUDA works in some video games, 3D apps, web browsers, TV out tools, and video apps.

How does CUDA work?

The CUDA technology is implemented in software engeneering via programming languages such as C, C++, and Fortran.  The usage of CUDA allows developers to take advantage of the massive parallel computing power of an Nvidia graphics card in order to do general purpose computation. Thus, the complex computing tasks are partially asigned to GPU resources via a special API provided by Nvidia.

However, not all software functionality can be GPU assisted, e.g. video encoding tools can speed up only conversion to H.264 codec. It means that you can convert video times faster with Freemake Video Converter, if you choose AVI, MP4, MKV,  Apple,  Android,  Sony as output formats. Don’t forget that CUDA works only with  NVIDIA graphics cards, starting with GeForce 8 series and later. So it’s advisable to update the video card driver if your card supports CUDA.

What is DXVA?

DirectX Video Acceleration, or DXVA, is Microsoft’s technology for the Windows Vista, 7, 8, and later OS’s, which allows video decoding to be GPU accelerated. DXVA is more picky than CUDA: it works only for video decoding and only for the files with input H.264, MPEG2, and VC-1 codecs.

This technology is majorly used by video converters, DVD rippers, and video players. A big plus is that the list of supported video cards includes ATI Radeon HD, NVIDIA GeForce, and some Intel cards. So chances that your graphics card supports DXVA are rather high.

In case you have an NVIDIA GeForce chip, you can benefit both from CUDA and DXVA while converting videos.

Please note that Freemake Video Converter supports DXVA only for H.264 and MPEG2 decoding. It means that DXVA starts working on your PC when you rip DVD or convert AVI/MKV/MP4 with H.264 video codec. The best results may be achieved if you convert a high resolution video to a smaller resolution one.

SEE ALSO: Convert HD video free

CUDA & DXVA compared

Here is the table summarizing the key points of CUDA and DXVA technologies:

CUDA DXVA
Developer NVIDIA Corp. Microsoft
Supporting video cards NVIDIA Geforce 8 series and later, NVIDIA Quadro, NVIDIA Tesla ATI Radeon HD (series 2, 3, 4, 5), NVidia GeForce (series 7, 8, 9, GTX 2), Intel G45 and GMA500
Operating OS Windows XP and later, Mac OS X, Linux Windows Vista, Windows Server, Windows 7 and Xbox 360
Accelerates Video encoding Video decoding
Works with video codecs Only H.264 H.264, MPEG2, VC-1
Best manifested When saving the original video resolution (“Same as source” preset) When converting DVD or HD video to a small resolution video

Our tests

Let’s see CUDA and DXVA in action. These are the results of inhouse testing of Freemake Video Converter with four combinations of CUDA/DXVA use:

  1. No CUDA/DXVA;
  2. Only CUDA;
  3. Only DXVA;
  4. CUDA+DXVA.

The tests were carried out on the following machine: OS Vista x64, Core 2 Quad 2.66 GHz, NVidia 480 GTX. The original videos have either H.264 or MPEG2 video codec and the output format/preset has H.264 codec, so both CUDA and DXVA should be working.

1) MKV to MP4

Input: MKV (00:05:07, H.264, 1280×720).

Output: MP4 (H.264, 1280×720)

Test: MKV to MP4

2) DVD to MKV

Input: DVD (00:02:02, MPEG2, 720×576).

Output: MKV (H.264, 320×240)

Test: DVD to MKV

3) MP4 to AVI

Input: MP4 (00:03:34, H.264, 1920×1080).

Output: AVI (H.264, 640×480)

Test: MP4 to AVI

As you can see, the tests prove that the combination CUDA+DXVA is the fastest one, the original videos are converted two times quicker with CUDA and DXVA than without any acceleration.

You needn’t run the above tests on your PC to figure out what’s the best option for your machine in each particular conversion case. Freemake developers have integrated a special auto-algorithm which detects whether CUDA, DXVA, both or none should be enabled for the fastest video conversion.

To activate it, go to File, choose Options. In the Acceleration tab tick the option Auto-detect the optimal conversion parameters. Your videos will be converted as fast as possible.

video acceleration freemake

In this tab you may also experiment with switching CUDA and DXVA on/off.

Please share your results of video conversion with/without acceleration in the comments below.

Comments

comments