Fast Video Encoding using Deep Learning

Nowadays, there is a growing demand for streaming high-quality video in real-time. This demand requires very fast video encoding. In today's coding methods, in order to shorten the calculation time, various heuristics methods are used. One of the most expensive computational steps in the HEVC video encoding process is the partitioning of each video frame into blocks and sub-blocks, and encoding each separately. Existing encoders use different heuristics to decide on the appropriate partitioning while compromising between calculation time and the quality of the partitioning. Our goal in this project is to make the decision on the partitioning of encoded blocks by a deep neural network to improve the tradeoff between calculation time and the quality of the partitioning. The network will be trained on block of pixels and the partitioning decisions taken by an ideal encoder (checking as many partitioning options as possible). Once we have a well-trained network for the above task, we will incorporate it into the encoder code to replace the current partitioning method.