Low Complexity H.264 Encoder Using Machine Learning.
MetadataShow full item record
H.264 is currently one of the most widely accepted video coding standards in the industry. Several software and hardware solutions for the H.264 video encoder exist in the market at present. H.264 is used in such applications as Blu-ray Disc, videos on the internet, digital video broadcast, direct-broadcast satellite television service, cable television services, and real-time videoconferencing. This thesis uses the WEKA (Waikato Environment for Knowledge Analysis) tool to generate the classification rule. WEKA is detailed in Chapter 3. The input attributes to the WEKA have been calculated from the video sequence to be encoded. The procedure has been elaborated in Chapter 4. For real time applications like videoconferencing it is essential that the encoding time taken by the video codec be as low as possible. In the H.264 video codec, the macroblock mode decision in inter frames is computationally the most expensive process since it uses such features as variable block size, motion estimation and quarter pixel motion compensation in H.264 encoder. Hence, the goal of this thesis is to reduce the encoding time while conserving the quality and compression ratio. Machine learning has been used to decide the mode decisions and hence reduce the motion estimation time. The proposed machine learning method on an average decreases the encoding time by 42.86405% for mode decisions in H.264 encoder with a loss of only .01070% decrease in structural similarity index metric (SSIM). Motion Estimation is the most time consuming part of the encoder. An average of 60 -70 % of the total encoding time is taken for motion estimation. The time consuming sum of absolute differences(SAD) method adopted in the H.264 encoder in JM 16.2 software has been replaced with a classification rule. Assuming FS (Full Search) and P block types, Q reference frames and a search range of MxN, MxNxPxQ computations are needed. The classification rule has been implemented as a series of if-else statements. The time taken to execute the if-else statements is lesser than the time taken to execute the SAD. Hence this thesis describes a reduction in the H.264 encoder execution time.