h 264 decoder n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
H.264 decoder PowerPoint Presentation
Download Presentation
H.264 decoder

Loading in 2 Seconds...

play fullscreen
1 / 163
warren-hines

H.264 decoder - PowerPoint PPT Presentation

107 Views
Download Presentation
H.264 decoder
An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. H.264 decoder 張正儒

  2. Agenda • H.264 decoder overview • Design statistic • Performance analysis • Future work

  3. Comparison of Standards

  4. Performance comparison

  5. H.264 Profiles Main profile B slices Weighted prediction Interlace Extended profile CABAC SP and SI slices I slices P slices Data partitioning CAVLC Slice Group and ASO Redundant Slices Baseline profile

  6. H.264 Decoder Profiling

  7. H.264 decoder block diagram H.264 stream decframe mem MV mem Para mem VLC Ref idx mem bitstream mem reconstruct mem MC DF CABAC MBinfo mem Pred mem Pic Rec unfilter mem Intra pred raw stream Coeff mem IDCT/IQ Residual mem picnum mem Software Hardware Memory

  8. 133MHz 11195 cycles/MB 100MHz 8417 cycles/MB 70MHz 5893 cycles/MB 54MHz 4545 cycles/MB 45MHz 3788 cycles/MB 40MHz 3366 cycles/MB 27MHz 2272 cycles/MB 25 MHz 2105 cycles/MB Performance requirement • CIF 30fps • 352/16 * 288/16 * 30 =11880 MB/sec

  9. ASIC Synthesis result

  10. FPGA Synthesis result

  11. Test sequence • mobile.cif • 10 Frame, IPPPPPPPPP • One ref frame • 396 intra 16x16 MB • 1147 inter 16x16 MB • 298 inter 16x8 MB • 280 inter 8x16 MB • 1839 inter 8x8 MB • iPROVE FPGA prototyping

  12. 3564 P MB execution cycles analysis

  13. 396 I MB execution cycles analysis

  14. Future work • AMBA wrapper • Software driver • ARM-integrator platform demonstration

  15. Motion Estimation 高肇陽

  16. F’n-1 Entropy encode F’n Fn NTHU H.264 Encoder + DCT Q - ME NAL MC P Intra prediction + Filter IDCT IQ +

  17. Profile of H.264 Encoder Others 60% 40% Motion Estimation

  18. The Purpose of Motion Estimation • Exploit the temporal redundancy of a video sequence to reduce data needed to be encoded. frame t-1 frame t

  19. Block-based Motion Estimation • Video frames are divided into macroblocks (MBs)

  20. I/O of Motion Estimation RF SR ME MV for 16x16 block CF SAD for 16x16 block 16x16 CB

  21. Difference in ME between MPEG4 & H.264 • Variable block sizes • Multiple reference frames

  22. Variable Block Sizes ME in H.264 MPEG4 H.264

  23. Variable Block Sizes ME in H.264 MPEG4 H.264

  24. Multiple Reference Frames in H.264 t t-1 MPEG4 H.264 t-5 t-4 t-3 t-2 t t-1

  25. I/O of Motion Estimation in H.264 41 MVs & SADs RF MV for 16x16 block SR Multiple-RF Variable -block size ME MV for 4 x 4 CF SAD for 16x16 block 16x16 SAD for 4 x 4 CB

  26. Advantage & Disadvantage of ME • Need much more computations. • Provide better compression ratio.

  27. Thank You.

  28. Motion Compensation 曾煥鈞

  29. H.264 decoder block diagram H.264 stream decframe mem MV mem Para mem VLC Ref idx mem bitstream mem reconstruct mem MC DF CABAC MBinfo mem Pred mem Pic Rec unfilter mem Intra pred raw stream Coeff mem IDCT/IQ Residual mem picnum mem Software Hardware Memory

  30. Variable block size (1/2) 16 8 16 8 8 8 16 16 8 4 8 4 4 4 8 8

  31. Variable block size (2/2) O O O O x x x

  32. Multiple reference frames in H.264 t t-1 MPEG4 H.264 t-5 t-4 t-3 t-2 t t-1

  33. I/O of motion estimation in H.264 41 MVs & SADs RF MV for 16x16 block SR Multiple-RF Variable -block size ME MV for 4 x 4 CF SAD for 16x16 block 16x16 SAD for 4 x 4 CB

  34. Motion compensation overview bitstream RF CABAC Mb_skip_flag MB_type Sub_mb_type RefIdx mvd . . . CF MC VLC Slice_type . . . . . .

  35. Motion vector • Encoder • mvd = mv – mvp • Decoder • mv = mvp + mvd • How to generate mvp ?

  36. Neighboring block (1/2) B C D A

  37. Neighboring block (2/2) B D C A

  38. Motion vector prediction (1/3) • mvp[0] = Median(mvA[0],mvB[0],mvC[0]) • mvp[1] = Median(mvA[1],mvB[1],mvC[1]) C B D current block A

  39. Motion vector prediction(2/3) • Block size = 16 x 8

  40. Motion vector prediction(3/3) • Block size = 8 x 16

  41. Example of compensation (1/3) motion vector (1, 1)

  42. Example of compensation (2/3) Use these gray points to interpolation

  43. Example of compensation (3/3)

  44. Luma interpolation

  45. Filter • Luma filter • 6-tap filter for half pixels • 2-tap filter for quarter pixels • Chroma filter • Use neighboring 4 pixels to interpolation

  46. Luma interpolation (1/5)

  47. Luma interpolation (2/5)

  48. Luma interpolation (3/5)

  49. Luma interpolation (4/5)

  50. Luma interpolation (5/5)