UHD Video Encoding in CPU Versus GPU: Quality and Performance Trade-Offs - Andoni Salcedo-Navarro; Juan Gutierrez-Aguado; Miguel Garcia-Pineda (IEEE Access)
In the contemporary digital media environment, video encoding is of paramount importance for applications such as streaming and video conferencing. With the increasing demand for higher resolutions and immersive video, optimizing videos for Internet consumption necessitates the use of the latest codecs. Additionally, live event broadcasts require fast and efficient codecs, making GPU codecs essential. This paper analyses the coding efficiency of video encoders on CPUs and GPUs with 4K content. We have selected three families of encoders (H264/AVC, HEVC, and AV1) and have computed the Bjøntegaard Delta (BD) using a set of 15 UHD videos to compare the results of the CPU implementation (libx264, libx265, and librav1e) with their GPU version (h264_nvenc, h265_nvenc, and av1_nvenc) of each family. Besides, we have measured the mean encoding time per frame (as the test videos have different duration). The BD rate analysis shows that the CPU implementations of the codecs for H264 and AV1 (libx264 and librav1e) require in mean more than 20% bitrate (for both metrics PSNR and VMAF) compared to the GPU implementations (h264_nvenc and av1_nvenc). However, the CPU implementation of the H265 (libx265) codec required around 7.5% less bitrate (for both metrics) than the GPU implementation (hevc_nvenc). The encoding times reveal that the mean encoding time per frame for the GPU encoders is very similar (109 ms, 108.39 ms, and 117.77 ms) and they achieve a great time reduction compared to the CPU version (1.3 times faster for H264, 2.35 times faster for HEVC, and 68.14 times faster for AV1). Therefore, the GPU implementations of these encoders reduce the encoding time drastically, specially in the case of AV1, and lead to a noticeable reduction of the bitrate (except for HEVC).