A comparative summary of VP8,VP8 and 264

Source: Internet
Author: User
Tags comparable

1 Other Codecs

L MSN uses the video codec "X-rtvc1", version 09 used by the ML20. Reference URL:

http://www.amsn-project.net/forums/index.php?topic=6612.0

L Yahoo Messenger uses Gips's LSVX codec.

L These two codecs technology is strong, can not find useful information, their own development of codec using the Code Stream analysis tool must also be analyzed.

L QQ Transmission protocol in the application layer encryption, analysis does not come out of what codec.

2 Skype ' s CODEC:VP8

The resolution of Skype video communication adjusts as the bandwidth changes. Skype Video adapts its sending rate by varying framerate, frame quality and Video resolution.

This February, Google acquired On2 Technologies. Google then opened its own VP8 video coding technology source code and provided it to all developers for free, releasing WebM open Web media projects.

Opinions on VP8:

In the long run, VP8 didn't claim to be much better than H. C, and its standard documentation was pretty bad, with a large section of the copy code as a description, Google's VP8 specs only described baseline profile, and many parts were incomplete and unexplained.

VP8, as a encoder, has a visual quality between XviD and Microsoft's VC-1, which, as a decoder, is slower than the ffmpeg of H.

3 days after the release of VP8, engineers from the x.264 community analyzed VP8 's core algorithms, which were widely circulated on the Internet. This is a summary of some of the points (see table below). [1]

VP8 's strategic goal is not in the HD Offline video field. From this table, you can clearly see that the features removed by VP8 are mostly related to HD/offline video. These features are especially useful for viewing high-definition video on a PC, but not much for low-bandwidth video.

A H264 developer's in-depth analysis of VP8 [3]:

Intra-frame prediction: VP8 's intra-frame predictions are essentially the same as H. S: the "sub-chunk" prediction pattern is almost identical to the one in the i4x4 mode (they even have the same name!). The complete block prediction mode is basically consistent with i16x16. The chroma prediction pattern is almost indistinguishable, so it's not possible to have a better effect than h264. But it is worth mentioning that they replaced the planar prediction model with tm_pred. The predictions look a little different, but in fact H264 provides a similar approach to implementation.

inter-frame prediction:VP8 supports 3 reference frames: P-frames, G-frames (golden Fream), and ALT ref frames. On motion vectors, VP8 supports more variable-size chunks than h264, with sub-pixel accuracy, which supports One-fourth-pixel and 6-tap interpolation filtering. In short, it is:

· VP8 Reference frame: 3

· H264:16

· VP8 support block types: 6x16, 16x8, 8x16, 8x8, 4x4

· h264:16x16, 16x8, 8x16, but there are more flexible sub-blocks: For example 8x8 can be divided into 8x8, 8x4, 4x8, or 4x4

· VP8 chroma MV derivation:4x4 chroma mean processing (somewhat similar to MPEG-4 ASP)

· H264: Direct use, no processing (no mean value processing, so visual effect is better)

· H-Frame and weighted prediction, but VP8 has no

The VP8 interpolation filter may be slightly better, but will certainly be slow to implement, including the encoder side and decoder side.

transformation and quantization coding and loop filter : not concerned, see [3]

3 VP8 Coding Test

Online comparison of the visual effects of H264 and VP8 see links [2]vp8 vs. H. WEBM video quality comparison. The overall result is that VP8 does not have an advantage over H264.

Using the encoder provided in Google VP8 Code[4] simple_encoder.exe FORMAN_CIF.YUV encoding, just a demo, the specific parameters are unknown, Usage:simple_encoder.exe <width >

After encoding and then using Simple_decoder.exe decoding to obtain the reconstructed YUV sequence FORMAN_VP8OUT.YUV.

Compared with the last 264 test, 264 basic parameters are jm16.2, main profile, Qp=36,cabac mode, 100 frames, the two are not comparable, only for reference.

VP8 encoded 300 frames for only a few seconds, and soon, the encoded output of the code stream size is 413KB, the original YUV sequence size of 44550KB, compression ratio 44550/413=107. The last 264-encoded 100-frame code stream is 75KB compression ratio 44550/(75*3) = 198.

Comparison between original YUV and reconstructed sequence:

Figure 1 Org_frame5

Figure 2 Vp8_frame5

Figure 3 Org_frame86

Figure 4 Vp8_frame86

Figure 5 264_frame86 QP36 Mani profile Cabac for reference only

Figure 5 is the result of the last 264 encoding test, the average Psnr 32.11, and the VP8 is not comparable, only for reference.

Calculate PSNR,VP8 300 Frame average Psnr is 34.32, subjective comparison, 5, 6, 7 frame Psnr just at 31多 points, subjective effect is not good, there are mosaics, other frames of subjective quality are very good, see the attachment frame Psnr "PSNRorgandVP8out.txt".

Although the Psnr is higher, the subjective view of each frame on the chroma can obviously feel different from the original sequence. But 264 of the results also have this feeling.

4 VP8 Coding Test (cont.)

Parameters are: vpxenc.exe-d--limit=100--rt-v--psnr-w 352-h 288--fps=15/1--min-q=36--max-q=37-o FOREMAN_CIF.VP8 foreman_cif . YUV, encoded bit rate 198673b/s,psnr (Y) 35.84

--limit encoded frame number, the actual encoding only 99 frames. Parameter--fps=rate/scale, do not know the meaning of scale. When--FPS=15/2:

99876B/S, PSNR (Y) 35.86

It doesn't make much sense to compare this to 264.

At the same time fixed code rate at 80KBP comparison:

VP8 parameters: vpxenc.exe-d--limit=100--rt-v--psnr-w 352-h 288--fps=15/1--end-usage=1--target-bitrate=80-o Foreman_cifR . VP8 FOREMAN_CIF.YUV

264 parameter: Main profile CABAC. -P framestobeencoded=100-p framerate=15-p intraperiod=0-p ratecontrolenable=1-p bitrate=80000-p SymbolMode=1

-P numberreferenceframes=3-p basicunit=12-p searchrange=16

-P Numberbframes=0

Bitrate (Kbps)

SNR Y (DB)

Output size

VP8

71.6

31.773

60KB

JM8.6

80.33

32.96

65.3KB

The subjective effect of VP8 is significantly worse than 264.

Chart 2 VP8 Frame 86th

Figure 3 264 Frame 86

Chart 4 VP8 Frame 11th

Figure 5 264 Frame 11

[1] VP8 's future and mission

http://oss.org.cn/?action-viewnews-itemid-10042

[2] VP8 vs. H. Google WEBM Video Quality comparison

Http://news.newhua.com/news1/Eval_MMX/2010/524/10524133910CIK1GG9BE1FAF7F66IH9C6HC0GFAJ73IE82HFKC308D7.html

[3] Google VP8 Code First in-depth technical analysis http://blog.fulin.org/2010/05/vp8_first_in_depth_tech_analysis.html

The analysis is thorough and comprehensive, the original English version http://x264dev.multimedia.cx/archives/377.

[4] Google VP8 Code Download http://code.google.com/p/webm/downloads/list

[5] Google VP8 SPECS:VP8 Data Format and decoding Guide.pdf

5 VP8 Specs Read two frame types

Intraframes, also called I-frames in keyframes,264

Interframes,p frame, according to the previous frame is the reference frame encoding, can not tolerate frame loss.

No B-Frames

The concept of golden frame and altref farmes (alternative reference frames), the blocks of P-frames can be predicted from the previous reference frame as well as from the nearest golden frame or altref farmes. Every key frame is automatically golden and altref, and any interframe could optionally replace the most recent golden or AL Trefframe.

Golden frames can be used to overcome frame loss, presumably meaning that golden frames contains and re-encodes changes in between interframes (context updates).

Intra Prediction Mode

L 16*16 Four species of dc_pred, v_pred, h_pred, and tm_pred

typedef enum

{

dc_pred,/* predict DC using row above and column to the left */

v_pred,/* Predict rows using row above */

h_pred,/* Predict columns using column to the left */

tm_pred,/* Propagate second differences a la "true motion" */

b_pred,/* Each Y subblock is independently predicted */

Num_uv_modes = b_pred,/* First four modes apply to Chroma */

Num_ymodes/* All modes apply to Luma */

}

Intra_mbmode;

L 4*4 10 kinds

typedef enum

{

b_dc_pred,/* predict DC using row above and column to the left */

b_tm_pred,/* Propagate second differences a la "true motion" */

b_ve_pred,/* Predict rows using row above */

b_he_pred,/* Predict columns using column to the left */

b_ld_pred,/* Southwest (left and down) degree diagonal prediction * *

b_rd_pred,/* Southeast (right and down) "" */

b_vr_pred,/* SSE (vertical right) diagonal prediction */

b_vl_pred,/* SSW (vertical left) "" */

b_hd_pred,/* ESE (horizontal down) "" */

b_hu_pred,/* ENE (horizontal up) "" */

Num_intra_bmodes

}

Intra_bmode;

Inter Prediction

Bool Pro_last is 0, the previous frame is a reference frame, for example, 1 through prob_gf Select the reference frame is a golden frame (0) or an alternative frame (1).

The MV accuracy of Chroma and Luma is 1/8 pixel.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

The MV of the chroma is the mean of the 4 y Subblock in the same region, and the MV of the U and V block 0 is the mean of y subblocks {0, 1, 4, 5}.

Transform

For the conversion, VP8 also uses a scheme that is very similar to the H. Each 16x16 block is divided into 16 4x4 DCT blocks, each of which is approximated by a bit-accurate DCT. Then, the DC coefficients for each block are collected into another 4x4 group, and the group is Hadamard converted.

The first one is to completely omit the 8x8 transform (because of the lack of i8x8 mode).

The second is the conversion specification itself. A very simplified "DCT" is used in the H. D Standard, which is so much different from the standard DCT that it is often referred to as HCT (cosine transform of H.).

This simplified conversion is approximately 1% less than the original in compression, but greatly simplifies the conversion itself, making it possible to move one operation to the right by adding, reducing, and moving it.

The VP8 uses a very precise and less necessary version, using very large numeric multiplication (20091 and 35468).

The third difference is that the Hadamard transform is implemented on some internal blocks, not just i16x16.

A comparative summary of VP8,VP8 and 264

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.