under the guidance dr. k. r. rao submitted by shaheer ahmed id : 1000836047 encoding h.264 by thread...

21
UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

Upload: lewis-long

Post on 20-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

UNDER THE GUIDANCE DR. K . R . RAO

SUBMITTED BY SHAHEER AHMEDID : 1000836047

Encoding H.264 by Thread Level Parallelism

Page 2: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

Objective

In this project the encoding time of a baseline profile H.264 will be reduced using Thread Level Parallelism.( Parallel Programming)

Page 3: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

About H.264

H.264 is an industry standard for video compression, the process of converting digital video into a format that takes up less capacity when it is stored or transmitted.

The H.264/AVC standard was first published in 2003. It builds on the concepts of earlier standards such as MPEG-2 and MPEG-4 Visual and offers the potential for better compression efficiency (i.e. better-quality compressed video) and greater flexibility in compressing, transmitting and storing video [1]

Page 4: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

About H.264 (contd)

The H.264 baseline encoder is estimated to be 5x to 10x more complex than the H.263 encoder [2] while the decoder is 2x to 2.5x more than H.263 baseline decoder

H.264 comprising of the following profiles1. Baseline2. Extended3. Main4. High

Page 5: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

-Baseline Profile is used for real- time conversational services such as video conferencing and video calling. [4] [11]

-Extended profile is for the multimedia services over the internet. [4] [11]

-Main profile is designed for digital storage media and television broadcasting. [4] [11]

  -High profile is used in the fidelity range extensions for applications

such as content contribution, content distribution and studio editing. [5]

The H.264 comprises of both encoder and decoder i.e. it is a codec. The encoder compresses the video into .264 formats and the decoder converts its back to the uncompressed format. This decoder is lossy.

Page 6: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism
Page 7: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

H.264 Encoder

Page 8: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

H.264 Decoder

Page 9: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

Prediction Modes

Prediction exploits the spatial or the temporal redundancy of a video sequence so that only the difference between actual and predicted image is encoded instead of encoding the entire image. There are two types of prediction

Intra Prediction Inter Prediction

-Intra Prediction is done on the I frame. Since there exists a high similarity among neighboring blocks in a video frame, a block can be predicted and reconstructed using the neighboring pixels [7]  

-Inter Prediction is done on the P frame and B frame. Since the frame rate of a video sequence is 30 to 60 fps (Nominal), the probability of having two successive frames to be similar is very high. The goal of inter prediction is to utilize this temporal redundancy and reduce the data to be encoded. [7]

 

Page 10: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

Need for Parallel Programming to implement H.264

Gordon Moore had stated that the transistors available on a semiconductor would double approximately every 18 to 24 months.

. Over the years the CPU frequency has tended to follow Moore’s law but since past few years the CPU clock speeds have not increases much. This has happened because heat dissipation has increases as well.

Page 11: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

Need for Parallel Programming to implement H.264 (Contd)

Thus in order to make the most efficient use of the processor resources, computer architects have developed ways to implement many instructions in parallel during the same clock cycle

Page 12: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

Serial Programming

Page 13: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

Parallel processing

Page 14: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

Data Domain Decompostion

H.264 encoder treats a video sequence as many group of pictures (GOP). Each GOP includes a number of frames. Each frame is divided into slices. Each slice is an encoding unit and is independent of other slices in the same frame. The slice can be further decomposed into a macro block(MB), which is the unit of motion estimation and entropy coding. All these are places to parallelize the encoder

Page 15: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

Data Domain Decompostion

Page 16: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

Frame Level Decomposition

Page 17: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

Slice Level Decomposition

Partitioning of a frame to multiple independent slices enables parallel processing of slices. However, slicing the image and compressing each slice independently reduce the amount of spatial redundancy that can be exploited.

Thus more slice =>higher the bit rate of the compressed video, for a fixed desired quality

If the bit rate is kept fixed and the degradation of the compressed video quality is also fixed then the number of slices will be reduces and hence the number of threads are reduced.

Page 18: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism
Page 19: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

Conclusion

Parallel programming will lead to better encoding times.

The performance boost of various test samples will be studied and presented on the completion of project.

Page 20: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

REFERENCES

 [1] Iain Richardson ,White Paper: “ An overview of

H.264 Advanced Video Coding”, Vcodex, 2007- 2011 [2] V. Iverson, J. McVeigh, & B. Reese, Real-time

H.264/AVC codec on Intel architectures, IEEE Int, Conf. Image Processing, 2004.

 [3]I. E. G. Richardson, “H.264 and MPEG-4 video

compression: video coding for next generation multimedia”, Wiley 2nd edition, Aug. 2010.

Page 21: UNDER THE GUIDANCE DR. K. R. RAO SUBMITTED BY SHAHEER AHMED ID : 1000836047 Encoding H.264 by Thread Level Parallelism

  [4] T.Bhatia, “Optimization for H.264 high profile decoder for Pentium 4

processors”, M.S. Thesis, EE Dept., University of Texas at Arlington, Dec. 2005.   [5] Jian- Wen Chen, Chao- Yang Kao, and Youn- Long Lin, "Introduction to H.264

Advanced Video Coding", Department of Computer Science, National Tsing Hua University.

  [6] Shameem Akhter and Jason Roberts, "Multi Core Programming, Increasing

Performance through Software Multi Threading“, Intel Publications  [7] Guy Amit and Adi Pinhas,"Real Time H.264 Encoding by Thread Level

Parallelism: Gain and Pitfalls", Corporate Technology Group, Intel Corp  [8] T. Saxena, “Reducing the encoding time of H.264 baseline profile using

parallel programming techniques”, M.S., Thesis EE, UTA, expected Dec. 2012.