GPU acceleration - Lee, Chan Khong (2015)
Other than graphics processing abilities, GPU is widely used for general purpose computing nowadays because of its high parallel processing abilities. However, in order to utilize GPU as computation resources, there are prerequisites that the software needs to be programmed in a parallel manner which is more complex and expensive than in a serial manner. Many existing commercial video converter tools utilize CPU as the only computational resource for the video transcoding process. But occasionally the process can be very time-consuming, depending on the video size and the image quality that the user is pursuing. By bringing in GPU as a hardware-accelerated decoder, the whole process can be speedup by many times with lesser power consumed. As thread computing emerge, many in the industry start to shift the intensive computation part in video transcoding process from CPU and GPU, which brings a lot of performance improvement to the process. Everything seems perfect with the GPU acceleration transcoding until the rise of the dispute about the resulting image quality from a CPU-only software decoder and GPU-accelerated hardware decoder. Therefore this project will go deep into the basic concepts of GPU and video transcoding and examine the suitability for GPU as a hardware-accelerated decoder for video transcoding process.