shah ee5359spring2011finalppt

Upload: ruhi-kuetuek

Post on 06-Apr-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    1/61

    Implementation, Performance Analysis

    & Comparison of H.264 and VP8

    Submitted by: Keyur Shah (1000658106)

    [email protected]

    Under guidance of Dr. K.R.Rao

    Final Report

    mailto:[email protected]:[email protected]
  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    2/61

    Motivation:

    H.264 is the most widely-accepted video standard and has

    spawned a huge amount of software that implements it viz., JM,

    X264, Intel IPP and Ffmpeg. [3]

    H.264 is used in various applications like video broadcasting, video

    streaming, video conferencing, HDTV, Blu-ray Discs. VP8 is an open video compression format released by Google,

    originally developed by On2 Technologies.[25]

    VP8 offers significant gains in compression performance.

    VP8 is less compute intensive to decode. [8]

    VP8 is used as the codec for HTML5, video playback in Internet

    Explorer 9, Mozilla, Opera and Google Chrome. Adobe Flash Player

    also supports VP8 playback. [17]

    http://en.wikipedia.org/wiki/Googlehttp://en.wikipedia.org/wiki/On2_Technologieshttp://en.wikipedia.org/wiki/On2_Technologieshttp://en.wikipedia.org/wiki/Google
  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    3/61

    Goal of the Project (Comparison of VP8 and H.264):

    Feature (parametric) comparison:

    1) Prediction schemes

    2) Transform

    3) In-loop filter

    4) Entropy coding

    Performance comparison:

    1) Bit rate

    2) PSNR

    3) MSE4) SSIM [26]

    5) Compression ratio

    6) Complexity (encoding time and decoding time)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    4/61

    Why H.264?

    One of the most widely accepted video coding standards.

    Block-oriented motion-estimation based codec.

    Higher coding efficiency than previous standards, MPEG-1,2,4, H.261 and H.263. [28]

    Simple syntax specifications.

    Seamless integration of video coding into all current protocols.

    More error robustness.

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    5/61

    Profiles of H.264:

    Table 1: H.264 profiles [3]

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    6/61

    Specific coding schemes of profiles

    Fig 1: H.264 coding profile schemes [3]

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    7/61

    WHY VP8?:

    Inheriting many great innovations from its predecessors (VP7 and

    VP6) such as golden frames, processor-adaptive real-time encodingand a low-complexity loop filter, VP8 adds more than fifty newtechniques to achieve its goal of outstanding quality at low bitrates,with very low complexity. [6]

    VP8 specifies exact values for reconstructed pixels. This greatlyfacilitates the verification of the correctness of a decoderimplementation as well as avoiding difficult-to-predict visualincongruities between such implementations. [6]

    VP8 offers both VBR (variable bitrate) and CBR (constant bitrate)encoding options. CBR attempts to keep the bitrate moreconstant, i.e. the codec tries to remain within given bufferingconstraints. If the user sets CBR mode but gives very loose bufferrestrictions, then the result will start to resemble VBR.

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    8/61

    VP8 has been designed with a wide range of machines in mind,

    from 60 MHz ARM9 processors to today's highly parallel multi-core

    processors. It encodes in real-time on low-end machines and takes

    fewer cycles to decode than other leading algorithms. [8]

    Fig 2: Parallel processing in VP8. [8]

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    9/61

    Fig. 3: H.264 encoder block diagram. [3]

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    10/61

    Fig. 4: H.264 decoder block diagram. [3]

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    11/61

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    12/61

    Parametric Comparison (VP8 and H.264):

    1) Intra Prediction: Intra prediction is used to guess the content of a

    block without referring to other frames.

    H.264 has three Intra-Prediction modes [3]

    1) 4x4 luma prediction modes

    9 prediction modes : 8 Directional predictions and 1 DC prediction

    (vertical : 0, horizontal : 1, DC : 2, diagonal down left : 3, diagonal down right : 4,

    vertical right : 5, horizontal down : 6, vertical left : 7, horizontal up : 8)

    Fig 6: 4x4 luma prediction modes. [3]

    2) 16x16 luma prediction modes : 4 prediction modes

    (vertical : 0, horizontal : 1, DC : 2, plane : 3)

    3) 8x8 chroma prediction mode: Similar to 4x4 luma with low

    pass filtering of the predictor to improve predictionperformance.

    a b c d

    e f g h

    i j k l

    m n o p

    A B C D

    I

    J

    K

    L

    M E F G H

    mode 1

    mode 6

    mode 0 mode 5 mode 4

    a b c d

    e f g h

    i j k l

    m n o p

    A B C D

    I

    J

    K

    L

    M E F G H

    mode 8

    mode 3 mode 7

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    13/61

    VP8 has four Intra-Prediction modes [22]

    1) H_PRED (horizontal prediction): Fills each column ofthe block with a copy of the left column, L.

    2) V_PRED (vertical prediction): Fills each row of theblock with a copy of the above row,A.

    3) DC_PRED (DC prediction): Fills the block with a singlevalue using the average of the pixels in the row

    aboveA and the column to the left ofL.

    H_PRED mode V_PRED mode DC_PRED mode

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    14/61

    TM_PRED mode [22]

    4) TM_PRED (TrueMotion prediction): A mode that gets its

    name from a compression technique developed by On2

    Technologies. In addition to the rowA and column L,

    TM_PRED uses the pixel Cabove and to the left of the block.Horizontal differences between pixels inA (starting from C)

    are propagated using the pixels from L to start each row.

    (The equation is as follows:Xij= Li+ Aj- C [i, j=0, 1, 2, 3])

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    15/61

    2) Inter Prediction: Inter prediction is used to guess the content of a block

    by referring to past and/or future frames. There are two primary

    components to inter prediction: reference frames and motion vectors.

    The reference frame is a past frame from which to grab pixels from and

    the motion vectors index an offset into that frame.

    H.264 has three frames: I-frames, P-frames and B-frames [3]

    1) The first image in a video sequence is always an I-frame.2) A P-frame, which stands for predictive inter frame.

    3) A B-frame, or bi-predictive inter frame. [6]

    VP8 has two frames common with H.264, I-frames and P-frame but

    B-frames are missing here, instead there are altref frames (alternativereference).

    VP8 also has alternate prediction frames, called golden frames.

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    16/61

    Using golden frames for loss of data:

    Fig 8: Golden frames in VP8. [22]

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    17/61

    3) Transform and Quantization:

    A) Transform [7] The general method for transformation in both H.264 and VP8 is the

    same, each 1616 macroblock is divided into sixteen 44 DCTblocks, each of which is transformed by a bit-exact DCTapproximation.

    The main difference is that in VP8, DC coefficients of these bit-exactDCT blocks are collected into another 44 group, which are thenWalsh-Hadamard transformed. [27]

    B) Quantization [7]

    The general method here also remains the same but there is a small

    difference again, H.264 has a built-in macroblock-level quantizer(adaptive quantization) whereas VP8 does not have it.

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    18/61

    4) Entropy Coding: Entropy coding is the process of taking all the

    information from all the other processes: DCT coefficients,

    prediction modes, motion vectors, and so forth and compressing

    them lossless into the final output file.

    VP8 and H.264 use an arithmetic coder for this purpose.

    The difference is H.264 uses an adaptive arithmetic coder whereas

    VP8 uses non-adaptive arithmetic coder. [7]

    5) Loop Filter: The loop filter is run after decoding or encoding a frame

    and serves to perform extra processing on a frame, usually to

    remove blockiness in DCT-based video formats.

    They have same kind of loop filter with two small differences,

    1) VP8 has two modes in loop filtering: a simple mode and a normal

    mode.

    2) VP8 filter has wider range when filtering between macroblocks as

    compared to the H.264 filter. [7]

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    19/61

    Vertical edges

    (chroma)Vertical edges

    (luma)

    Horizontal edges

    (luma)

    Horizontal edges

    (chroma)

    16*16 Macroblock 16*16 Macroblock

    Fig. 9: Loop Filter application. [3]

    Application of loop filter:

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    20/61

    Implementation of the Project

    (Comparison of Parameters for VP8 and H.264):

    Performance Comparison:

    1) Bit Rate

    2) PSNR

    3) MSE

    4) SSIM [21]

    5) Compression Ratio

    6) Complexity (encoding time and decoding time)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    21/61

    Test Sequences:

    The test sequences that can be used are in QCIF and CIF (formats)

    1) CIF

    2) QCIF

    Fig(a) : Common intermediate format(CIF) 4:2:0 chroma sampling. [3]

    Fig (b): Quadrature common intermediate format (QCIF) 4:2:0

    chroma sampling. [3]

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    22/61

    Software used:1) Softwares for H.264:

    ffmpeg: Fast Forwarding Mpeg, version 0.6.1. [18]

    2) Softwares for VP8: ffvp8 is a free software/ open source project. It is ffmpeg software itself

    but the latest version (mentioned above) has included libvpx libraries

    (encoder and decoder). [30], [31]

    Fig. 10: Comparison of decoding time forffvp8 and libvpx. [30]

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    23/61

    Tool Used to calculate SSIM. [31]

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    24/61

    H.264 - ffmpeg calculation for

    hall_cif.yuv (90 frames):

    Quantization

    Parameter

    Encoding

    Time (sec)

    Bit Rate

    (kbits/sec)

    PSNR

    (dB)

    SSIM Compression

    Ratio

    2 0.234 2393.1 42.8 0.9736 42.38

    4 0.156 837.6 39.42 0.9588 120.73

    8 0.140 323.9 36.14 0.9438 311.54

    12 0.109 204.1 34.00 0.9294 495

    16 0.125 154.9 32.49 0.9157 645.65

    20 0.047 124.3 31.2 0.9021 810

    24 0.156 106.1 30.21 0.8893 947.87

    28 0.109 93.6 29.38 0.8774 1060.7

    32 0.062 86.5 28.78 0.8687 1172.4

    48 0.140 84.8 28.70 0.8671 1172.4

    64 0.140 84.4 28.64 0.8664 1172.4

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    25/61

    VP8 ffmpeg (ffvp8) calculation for

    hall_cif.yuv (90 frames):

    Quantization

    Parameter

    Encoding

    Time (sec)

    Bit Rate

    (kbits/sec)

    PSNR

    (dB)

    SSIM Compression

    Ratio

    2 3.931 5179.5 43.2 0.9721 19.19

    4 3.04 4955.5 42.8 0.9663 20.45

    8 2.761 2036.5 40.26 0.9586 49.77

    12 2.34 1307.2 39.48 0.9489 77.48

    16 2.122 939.4 38.22 0.9331 107.87

    20 2.028 693.6 37.08 0.9243 146.06

    24 1.919 594.8 36.31 0.9086 170.04

    28 1.747 466.6 35.63 0.8903 222.75

    32 1.622 351.8 33.64 0.8768 287.42

    48 1.326 130.1 29.27 0.8589 768.1

    64 1.217 60 25.43 0.8383 1650

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    26/61

    Bit rate v/s compression ratio for hall_cif.yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    27/61

    Bit rate v/s PSNR for hall_cif.yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    28/61

    Bit rate v/s SSIM for hall_cif.yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    29/61

    H.264 - ffmpeg calculation for

    hall_qcif.yuv (90 frames):

    Quantization

    Parameter

    Encoding

    Time (sec)

    Bit Rate

    (kbits/sec)

    PSNR

    (dB)

    SSIM Compression

    Ratio

    2 0.047 488.6 43.16 0.9845 51.8

    4 0.062 207.9 39.26 0.9762 121.1

    8 0.047 100.2 34.94 0.9575 247.5

    12 0.047 67.4 32.36 0.9379 371.3

    16 0.016 51.9 30.59 0.9167 484.3

    20 0.031 42.5 29.28 0.9014 586.2

    24 0.016 36.4 28.24 0.8836 696.1

    28 0.016 31.9 27.33 0.8648 742.5

    32 0.047 29.2 26.7 0.8494 856.8

    48 0.047 28.9 26.63 0.8481 856.8

    64 0.047 28.8 26.59 0.8484 856.8

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    30/61

    VP8 ffmpeg (ffvp8) calculation for

    hall_qcif.yuv (90 frames):

    Quantization

    Parameter

    Encoding

    Time (sec)

    Bit Rate

    (kbits/sec)

    PSNR

    (dB)

    SSIM Compression

    Ratio

    2 0.733 1098.3 43.76 0.9823 23.06

    4 0.697 1072.1 42.89 0.9783 33.6

    8 0.546 418.5 41.21 0.9602 60.53

    12 0.53 286.3 38.83 0.9488 88.40

    16 0.484 220.3 38.04 0.9363 114.82

    20 0.479 173.7 34.68 0.9214 144.65

    24 0.479 154.3 33.29 0.9133 163.79

    28 0.468 128.2 32.56 0.9011 195.4

    32 0.437 104.4 31.94 0.8922 242.13

    48 0.425 47.3 28.96 0.8607 530.38

    64 0.421 24.3 25.79 0.8287 1012.55

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    31/61

    Bit rate v/s compression ratio for hall_qcif.yuv (90 frames)

    / f h ll f ( f )

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    32/61

    Bit rate v/s PSNR for hall_qcif.yuv (90 frames)

    Bi / SSIM f h ll if (90 f )

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    33/61

    Bit rate v/s SSIM for hall_qcif.yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    34/61

    H.264 - ffmpeg calculation for

    news_cif.yuv (90 frames):

    Quantization

    Parameter

    Encoding

    Time (sec)

    Bit Rate

    (kbits/sec)

    PSNR

    (dB)

    SSIM Compression

    Ratio

    2 0.140 1219.4 44.17 0.9838 83.12

    4 0.109 607.5 40.42 0.9727 166.9

    8 0.062 303.6 36.28 0.9505 332.48

    12 0.109 202.8 33.87 0.9321 495

    16 0.109 153.9 32.21 0.9135 655.1

    20 0.109 123.8 30.94 0.8961 810

    24 0.125 105.4 29.93 0.88 947.9

    28 0.140 92.5 29.09 0.8676 1086.1

    32 0.156 84.9 28.53 0.8562 1172.4

    48 0.094 83.8 28.42 0.8542 1204.1

    64 0.109 83.6 28.35 0.8535 1204.1

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    35/61

    VP8 ffmpeg (ffvp8) calculation for

    news_cif.yuv (90 frames):

    Quantization

    Parameter

    Encoding

    Time (sec)

    Bit Rate

    (kbits/sec)

    PSNR

    (dB)

    SSIM Compression

    Ratio

    2 2.075 2205.9 44.62 0.9814 45.93

    4 1.95 1619 43.21 0.9708 50.86

    8 1.81 965.7 40.26 0.9681 104.82

    12 1.778 705 39.12 0.9578 143.71

    16 1.685 568.7 37.93 0.9346 178.2

    20 1.669 464.1 36.07 0.9244 218.38

    24 1.576 415.6 35.51 0.9173 243.44

    28 1.576 348 33.98 0.9037 291.18

    32 1.498 290.3 32.87 0.8972 348.05

    48 1.451 131 28.54 0.8627 768.1

    64 1.232 62.3 24.31 0.8296 1591.07

    Bit rate v/s compression ratio for news cif yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    36/61

    Bit rate v/s compression ratio for news_cif.yuv (90 frames)

    Bit t / PSNR f if (90 f )

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    37/61

    Bit rate v/s PSNR for news_cif.yuv (90 frames)

    / f f ( f )

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    38/61

    Bit rate v/s SSIM for news_cif.yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    39/61

    H.264 - ffmpeg calculation for

    news_qcif.yuv (90 frames):

    Quantization

    Parameter

    Encoding

    Time (sec)

    Bit Rate

    (kbits/sec)

    PSNR

    (dB)

    SSIM Compression

    Ratio

    2 0.047 413.6 43.57 0.9886 61.2

    4 0.047 217.8 39.07 0.9757 116

    8 0.047 110.3 34.41 0.9462 227.3

    12 0.031 72.3 31.84 0.9161 348.1

    16 0.047 54.7 30.15 0.8888 445.5

    20 0.016 44.0 28.87 0.8615 556.9

    24 0.047 37.3 27.84 0.8357 655.2

    28 0.047 32.5 26.99 0.8171 742.5

    32 0.047 30.6 26.41 0.8026 795.6

    48 0.047 29.6 26.35 0.8044 795.6

    64 0.047 29.6 26.30 0.8022 856.8

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    40/61

    VP8 ffmpeg (ffvp8) calculation for

    news_qcif.yuv (90 frames):

    Quantization

    Parameter

    Encoding

    Time (sec)

    Bit Rate

    (kbps)

    PSNR

    (dB)

    SSIM Compression

    Ratio

    2 0.608 611.1 42.93 0.9862 41.4

    4 0.577 601.4 42.27 0.9817 42.03

    8 0.546 327.5 39.36 0.9624 77.35

    12 0.53 249.8 37.82 0.9526 101.25

    16 0.499 207.9 36.38 0.9476 121.07

    20 0.477 173.8 34.54 0.9373 144.65

    24 0.461 156.4 33.48 0.9243 161.42

    28 0.45 134.1 32.89 0.9121 188.78

    32 0.45 113.2 31.94 0.9041 222.76

    48 0.45 51.7 27.83 0.8447 484.26

    64 0.41 25.2 24.69 0.7877 928.17

    / f f ( f )

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    41/61

    Bit rate v/s compression ratio for news_qcif.yuv (90 frames)

    Bit rate v/s PSNR for news qcif yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    42/61

    Bit rate v/s PSNR for news_qcif.yuv (90 frames)

    Bit t / SSIM f if (90 f )

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    43/61

    Bit rate v/s SSIM for news_qcif.yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    44/61

    H.264 - ffmpeg calculation for

    mobile_cif.yuv (90 frames):

    Quantization

    Parameter

    Encoding

    Time (sec)

    Bit Rate

    (kbits/sec)

    PSNR

    (dB)

    SSIM Compression

    Ratio

    2 0.234 8503.3 41.37 0.9911 11.92

    4 0.203 4513.8 36.23 0.9774 22.87

    8 0.203 2121.9 31.07 0.9431 47.75

    12 0.218 1273.1 28.30 0.9038 79.55

    16 0.156 864.3 26.53 0.8655 117.24

    20 0.140 622.5 25.19 0.8263 162.6

    24 0.125 476.4 24.19 0.7871 212.1

    28 0.125 378.9 23.40 0.7545 266.8

    32 0.125 324.7 22.88 0.7303 311.5

    48 0.094 326.2 22.84 0.7316 309.4

    64 0.078 329.3 22.80 0.7311 307.2

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    45/61

    VP8 ffmpeg (ffvp8) calculation for

    mobile_cif.yuv (90 frames):

    Quantization

    Parameter

    Encoding

    Time (sec)

    Bit Rate

    (kbps)

    PSNR

    (dB)

    SSIM Compression

    Ratio

    2 4.384 8180.5 39.64 0.9773 12.39

    4 4.246 7558.4 38.93 0.9692 13.41

    8 4.009 4860.4 34.06 0.9421 20.86

    12 3.916 3807.6 33.01 0.9298 26.63

    16 3.775 3166.5 31.96 0.9146 32

    20 3.557 2622.3 30.63 0.8919 38.64

    24 3.510 2371.3 29.41 0.8864 42.71

    28 3.385 2001.6 28.47 0.8712 50.63

    32 3.37 1650.1 27.61 0.8586 61.36

    48 3.058 584.4 24.14 0.7844 173.35

    64 2.605 197.7 21.58 0.6847 512

    Bit rate v/s compression ratio for mobile cif yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    46/61

    Bit rate v/s compression ratio for mobile_cif.yuv (90 frames)

    Bit rate v/s PSNR for mobile cif yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    47/61

    Bit rate v/s PSNR for mobile_cif.yuv (90 frames)

    Bi / SSIM f bil if (90 f )

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    48/61

    Bit rate v/s SSIM for mobile_cif.yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    49/61

    H.264 - ffmpeg calculation for

    mobile_qcif.yuv (90 frames):

    Quantization

    Parameter

    Encoding

    Time (sec)

    Bit Rate

    (kbps)

    PSNR

    (dB)

    SSIM Compression

    Ratio

    2 0.078 2390.9 40.8 0.9933 10.6

    4 0.094 1255 35.28 0.9790 20.18

    8 0.047 566.1 29.94 0.9369 44.73

    12 0.062 323 27.21 0.8841 78.44

    16 0.031 208.5 25.52 0.8370 121.07

    20 0.047 145 24.29 0.7883 174.03

    24 0.047 108.2 23.37 0.7383 232.04

    28 0.062 84.5 22.65 0.6995 293.1

    32 0.016 71.8 22.19 0.6729 348.1

    48 0.047 72.2 22.15 0.6714 348.1

    64 0.047 73 22.11 0.6717 337.5

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    50/61

    VP8 ffmpeg (ffvp8) calculation for

    mobile_qcif.yuv (90 frames):

    Quantization

    Parameter

    Encoding

    Time (sec)

    Bit Rate

    (kbps)

    PSNR

    (dB)

    SSIM Compression

    Ratio

    2 1.092 2149.3 38.81 0.9862 11.79

    4 1.039 1962.5 37.74 0.9732 12.91

    8 1.016 1285.2 33.12 0.9548 19.71

    12 0.996 1001.9 31.46 0.9321 25.26

    16 0.996 832.3 29.72 0.9233 30.43

    20 0.952 691 28.07 0.8965 36.64

    24 0.952 623.4 27.35 0.8831 40.65

    28 0.842 524.9 26.48 0.8724 48.22

    32 0.82 431 25.84 0.8612 58.62

    48 0.78 154.8 22.61 0.7548 161.42

    64 0.686 53.6 20.36 0.6483 464.08

    Bit rate v/s compression ratio for mobile qcif yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    51/61

    Bit rate v/s compression ratio for mobile_qcif.yuv (90 frames)

    Bit rate v/s PSNR for mobile qcif yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    52/61

    Bit rate v/s PSNR for mobile_qcif.yuv (90 frames)

    Bit rate v/s SSIM for mobile qcif yuv (90 frames)

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    53/61

    Bit rate v/s SSIM for mobile_qcif.yuv (90 frames)

    Comparison of average encoding time in VP8 and H 264

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    54/61

    Comparison of average encoding time in VP8 and H.264

    0

    0.5

    1

    1.5

    2

    2.5

    3

    3.5

    4

    VP8 average

    encoding time (sec)

    H.264 average

    encoding time (sec)

    Conclusions:

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    55/61

    Conclusions: Comparing PSNR and SSIM it shows that H.264 is slightly

    better than VP8 but it is almost comparable at lower bit rates.

    Comparing the compression ratios v/s bit rate it shows that

    H.264 and VP8 have similar performance except VP8 has a

    slight egde over H.264 at lower bit rates. The main reason

    being use of golden frames in real time low bit rate

    applications.

    Comparing the encoding times it shows that H.264 encoder is

    almost 15-20 times faster then VP8 encoder. These are early

    stages of VP8 development and constant upgrading of VP8

    encoder is in progress. The main reason for slow encoder islack of B-frames (bipredictive) in VP8.

    The parametric comparison of H.264 and VP8 is done in venn

    diagram (Fig. 11).

    Venn diagram for parametric comparison of H.264 and VP8

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    56/61

    g p p

    H.264 VP8

    I frames

    P frames

    9 common

    Intra predictionmodes

    DCT used for

    transformation

    Quantization

    technique Arithmetic

    Coder

    B frames

    Planar mode

    (intra prediction)

    Supports eight

    macroblock partitiontypes (inter prediction)

    Directional DCT used

    for transformation

    Only one mode in

    the In loop filter

    Golden frames

    Altref frames

    TM_pred mode

    (intraprediction)

    Supports fivemacroblock

    partition types

    (inter prediction)

    WHT used for

    transformation

    Two modes in the

    In loop filter

    Fig 11: Parametric Comparison of H.264 and VP8

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    57/61

    Future work:

    Use SD/HD test sequences to do performance analysis.

    Compare ffvp8 decoder (ffmpeg version) [28] and libvpxbali decoder (WebM version). [29]

    Compare H.265 (HEVC) and VP8s latest webm versioncalled libvpx cayuga (to be launched in Aug. 2011). *22+

    Compare audio codecs aac (advanced audio codec) forH.264 and vorbis for VP8. *32+

    REFERENCES:

  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    58/61

    REFERENCES:

    [1] T. Wiegand and G. J. Sullivan, The H.264 video coding standard, IEEESignal Processing Magazine, vol. 24, pp. 148-153, Mar. 2007.

    [2] D. Marpe, T. Wiegand and G. J. Sullivan, The H.264/MPEG-4 AVC standardand its applications, IEEE Communications Magazine, vol. 44, pp. 134-143,Aug. 2006.

    [3] S. K. Kwon, A. Tamhankar and K. R. Rao, Overview of H.264/MPEG-4 Part10 J. Visual Communication and Image Representation, vol. 17, pp.186-216, Apr. 2006.

    [4] A. Puri, X. Chen and A. Luthra, Video coding using the H.264/MPEG-4 AVCcompression standard, Signal Processing: Image Communication, vol. 19,pp. 793-849, Oct. 2004.

    [5] http://www-ee.uta.edu/Dip/Courses/EE5359/

    Thesis%20Project%20table%20docs/Padiathesis.pdfComplexityreduction for VP6 to H.264 transcoder using motion vector reuse, M.S.Thesis, EE Dept., UTA, May2010.

    [6] VP8 data format and decoding guide, Google Inc., WebM Project, July2010

    http://www.webmproject.org/

    [7] http //x264dev multimedia cx/archives/377 The first in depth technical

    http://www-ee.uta.edu/Dip/Courses/EE5359/Thesis%20Project%20table%20docs/Padiathesis.pdfhttp://www-ee.uta.edu/Dip/Courses/EE5359/Thesis%20Project%20table%20docs/Padiathesis.pdfhttp://www-ee.uta.edu/Dip/Courses/EE5359/Thesis%20Project%20table%20docs/Padiathesis.pdfhttp://www-ee.uta.edu/Dip/Courses/EE5359/Thesis%20Project%20table%20docs/Padiathesis.pdfhttp://www.webmproject.org/http://www.webmproject.org/http://www-ee.uta.edu/Dip/Courses/EE5359/Thesis%20Project%20table%20docs/Padiathesis.pdfhttp://www-ee.uta.edu/Dip/Courses/EE5359/Thesis%20Project%20table%20docs/Padiathesis.pdfhttp://www-ee.uta.edu/Dip/Courses/EE5359/Thesis%20Project%20table%20docs/Padiathesis.pdfhttp://www-ee.uta.edu/Dip/Courses/EE5359/Thesis%20Project%20table%20docs/Padiathesis.pdfhttp://www-ee.uta.edu/Dip/Courses/EE5359/Thesis%20Project%20table%20docs/Padiathesis.pdfhttp://www-ee.uta.edu/Dip/Courses/EE5359/Thesis%20Project%20table%20docs/Padiathesis.pdfhttp://www-ee.uta.edu/Dip/Courses/EE5359/Thesis%20Project%20table%20docs/Padiathesis.pdfhttp://x264dev.multimedia.cx/archives/377-http://x264dev.multimedia.cx/archives/377-http://x264dev.multimedia.cx/archives/377-
  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    59/61

    [7] http://x264dev.multimedia.cx/archives/377-The first in-depth technical

    analysis of VP8.

    [8] http://www.eetimes.com/design/signal-processing-dsp/4017748/The-

    VP8-video-codec-High-compression-low-complexity- EE Times Design:The VP8 video codec - High compression + low complexity.

    [9] file:///C:/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-

    static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.html - ffmpeg

    documentation.

    [10] T. Wiegand and G. J. Sullivan, Video CompressionFrom Concepts tothe H.264/AVC Standard, Proceedings of the IEEE, vol. 93, no. 1, pp. 1-

    14, Jan. 2005.

    [11] http://trace.eas.asu.edu/yuv/index.html - Video test sequences

    (YUV 4:2:0)[12] http://iphome.hhi.de/suehring/tml/ - JM software source code

    [13] I.E.Richardson , The H.264 Advanced Video Compression Standard, 2nd

    Edition, Wiley, 2010.

    [14] http://www.webmproject.org/code/repository-layout/ - VP8 Video Codec

    Lib

    http://x264dev.multimedia.cx/archives/377-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://trace.eas.asu.edu/yuv/index.htmlhttp://iphome.hhi.de/suehring/tml/http://iphome.hhi.de/suehring/tml/http://trace.eas.asu.edu/yuv/index.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://c/Users/Keyur/Downloads/project-ffmpeg-git-c967860-win64-static/ffmpeg-git-c967860-win64-static/doc/ffmpeg.htmlhttp://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://www.eetimes.com/design/signal-processing-dsp/4017748/The-VP8-video-codec-High-compression-low-complexity-http://x264dev.multimedia.cx/archives/377-http://x264dev.multimedia.cx/archives/377-http://www.webmproject.org/code/repository-layout/http://www.webmproject.org/code/repository-layout/http://www.webmproject.org/code/repository-layout/http://www.webmproject.org/code/repository-layout/
  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    60/61

    Library.

    [15] http://www.webmproject.org/code/- Explore the WebM Source Code for

    VP8.

    [16] http://multimedia.cx/eggs/vp8-the-savior-codec/ - VP8: The Savior Codec.[17] http://en.wikipedia.org/wiki/VP8 - General VP8 information.

    [18] http://www.ffmpeg.org/ - FFmpeg software.

    [19]http://en.wikipedia.org/wiki/HTML_5 - General HTML5 information.

    [20] https://ece.uwaterloo.ca/~z70wang/research/ssim/ - The SSIM Index forImage Quality Assessment.

    [21] http://multimedia.cx/eggs/vp8-transform-and-quantization/ - VP8

    encoder and decoder explanation.

    [22] http://blog.webmproject.org/search/label/vp8#uds-search-results - Inside

    WebM Technology: VP8 Intra and Inter Prediction.

    [23] http://iphome.hhi.de/suehring/tml/JM%20Reference%20Software %

    20Manual%20(JVT-AE010).pdf JM Software Installation Guide.

    [24] www.on2.com On2 Technologies (VP8 developers).

    [25] Z Wang et al Image Quality Assessment: From Error Visibility to

    http://www.webmproject.org/code/http://multimedia.cx/eggs/vp8-the-savior-codec/http://en.wikipedia.org/wiki/VP8http://www.ffmpeg.org/http://en.wikipedia.org/wiki/HTML_5https://ece.uwaterloo.ca/~z70wang/research/ssim/http://multimedia.cx/eggs/vp8-transform-and-quantization/http://blog.webmproject.org/search/label/vp8http://iphome.hhi.de/suehring/tml/JM%20Reference%20Software%20Manual%20(JVT-AE010).pdfhttp://iphome.hhi.de/suehring/tml/JM%20Reference%20Software%20Manual%20(JVT-AE010).pdfhttp://www.on2.com/http://www.on2.com/http://iphome.hhi.de/suehring/tml/JM%20Reference%20Software%20Manual%20(JVT-AE010).pdfhttp://iphome.hhi.de/suehring/tml/JM%20Reference%20Software%20Manual%20(JVT-AE010).pdfhttp://iphome.hhi.de/suehring/tml/JM%20Reference%20Software%20Manual%20(JVT-AE010).pdfhttp://iphome.hhi.de/suehring/tml/JM%20Reference%20Software%20Manual%20(JVT-AE010).pdfhttp://iphome.hhi.de/suehring/tml/JM%20Reference%20Software%20Manual%20(JVT-AE010).pdfhttp://iphome.hhi.de/suehring/tml/JM%20Reference%20Software%20Manual%20(JVT-AE010).pdfhttp://iphome.hhi.de/suehring/tml/JM%20Reference%20Software%20Manual%20(JVT-AE010).pdfhttp://iphome.hhi.de/suehring/tml/JM%20Reference%20Software%20Manual%20(JVT-AE010).pdfhttp://blog.webmproject.org/search/label/vp8http://blog.webmproject.org/search/label/vp8http://blog.webmproject.org/search/label/vp8http://blog.webmproject.org/search/label/vp8http://blog.webmproject.org/search/label/vp8http://blog.webmproject.org/search/label/vp8http://multimedia.cx/eggs/vp8-transform-and-quantization/http://multimedia.cx/eggs/vp8-transform-and-quantization/http://multimedia.cx/eggs/vp8-transform-and-quantization/http://multimedia.cx/eggs/vp8-transform-and-quantization/http://multimedia.cx/eggs/vp8-transform-and-quantization/http://multimedia.cx/eggs/vp8-transform-and-quantization/http://multimedia.cx/eggs/vp8-transform-and-quantization/http://multimedia.cx/eggs/vp8-transform-and-quantization/https://ece.uwaterloo.ca/~z70wang/research/ssim/https://ece.uwaterloo.ca/~z70wang/research/ssim/http://en.wikipedia.org/wiki/HTML_5http://www.ffmpeg.org/http://en.wikipedia.org/wiki/VP8http://multimedia.cx/eggs/vp8-the-savior-codec/http://multimedia.cx/eggs/vp8-the-savior-codec/http://multimedia.cx/eggs/vp8-the-savior-codec/http://multimedia.cx/eggs/vp8-the-savior-codec/http://multimedia.cx/eggs/vp8-the-savior-codec/http://multimedia.cx/eggs/vp8-the-savior-codec/http://multimedia.cx/eggs/vp8-the-savior-codec/http://www.webmproject.org/code/
  • 8/3/2019 Shah EE5359Spring2011FinalPPT

    61/61

    [25] Z. Wang, et al, Image Quality Assessment: From Error Visibility to

    Structural Similarity, IEEE Transactions on Image Processing, vol. 13,

    no. 4, pp. 1-14 Apr. 2004.

    [26] http://en.wikipedia.org/wiki/Hadamard_transform - General

    information on Walsh Hadamard Transform.

    [27] http://www.stanford.edu/class/ee398b/handouts/lectures/ 03-

    StandardsH261H263.pdf H.261 and H.263 overview.

    [28] http://hawkeye.arrozcru.org/ - Latest ffmeg software for win32 and

    win64.

    [29] http://x264dev.multimedia.cx/archives/499 - ffvp8 and libvpx

    comparison.

    [30] http://compression.ru/video/quality_measure/vqmt_

    download en.html#free MSU tool to calculate MSE and SSIM.[31] http://spreadsheets.google.com/ccc?key=0AvWxUS1XGCPAd

    GNtNW10a2p4c1VwdG1VZk1uMl9MUEE&hl=en#gid=0 ffmpeg

    and libvpx commands.

    http://en.wikipedia.org/wiki/Hadamard_transformhttp://www.stanford.edu/class/ee398b/handouts/lectures/03-StandardsH261H263.pdfhttp://www.stanford.edu/class/ee398b/handouts/lectures/03-StandardsH261H263.pdfhttp://hawkeye.arrozcru.org/http://x264dev.multimedia.cx/archives/499%20-%20ffvp8http://compression.ru/video/quality_measure/vqmt_download_en.htmlhttp://compression.ru/video/quality_measure/vqmt_download_en.htmlhttp://spreadsheets.google.com/ccc?key=0AvWxUS1XGCPAdGNtNW10a2p4c1VwdG1VZk1uMl9MUEE&hl=enhttp://spreadsheets.google.com/ccc?key=0AvWxUS1XGCPAdGNtNW10a2p4c1VwdG1VZk1uMl9MUEE&hl=enhttp://www.xiph.org/downloads/http://www.xiph.org/downloads/http://spreadsheets.google.com/ccc?key=0AvWxUS1XGCPAdGNtNW10a2p4c1VwdG1VZk1uMl9MUEE&hl=enhttp://spreadsheets.google.com/ccc?key=0AvWxUS1XGCPAdGNtNW10a2p4c1VwdG1VZk1uMl9MUEE&hl=enhttp://spreadsheets.google.com/ccc?key=0AvWxUS1XGCPAdGNtNW10a2p4c1VwdG1VZk1uMl9MUEE&hl=enhttp://spreadsheets.google.com/ccc?key=0AvWxUS1XGCPAdGNtNW10a2p4c1VwdG1VZk1uMl9MUEE&hl=enhttp://spreadsheets.google.com/ccc?key=0AvWxUS1XGCPAdGNtNW10a2p4c1VwdG1VZk1uMl9MUEE&hl=enhttp://spreadsheets.google.com/ccc?key=0AvWxUS1XGCPAdGNtNW10a2p4c1VwdG1VZk1uMl9MUEE&hl=enhttp://compression.ru/video/quality_measure/vqmt_download_en.htmlhttp://compression.ru/video/quality_measure/vqmt_download_en.htmlhttp://compression.ru/video/quality_measure/vqmt_download_en.htmlhttp://compression.ru/video/quality_measure/vqmt_download_en.htmlhttp://compression.ru/video/quality_measure/vqmt_download_en.htmlhttp://x264dev.multimedia.cx/archives/499%20-%20ffvp8http://x264dev.multimedia.cx/archives/499%20-%20ffvp8http://hawkeye.arrozcru.org/http://hawkeye.arrozcru.org/http://www.stanford.edu/class/ee398b/handouts/lectures/03-StandardsH261H263.pdfhttp://www.stanford.edu/class/ee398b/handouts/lectures/03-StandardsH261H263.pdfhttp://www.stanford.edu/class/ee398b/handouts/lectures/03-StandardsH261H263.pdfhttp://www.stanford.edu/class/ee398b/handouts/lectures/03-StandardsH261H263.pdfhttp://en.wikipedia.org/wiki/Hadamard_transformhttp://en.wikipedia.org/wiki/Hadamard_transform