Lair Of The Multimedia Guru

November 28, 2005

15 reasons why MPEG4 sucks

  • no loop filter to reduce blocking artefacts, H.263 upon which MPEG4 is based had one, and the thing people most often complain about when looking at MPEG4 videos are blocking artefacts, why cant postprocessing filters cover this up? well its much harder to remove multiple overlapping and randomliy shifted bocking artefacts instead of ones which are exactly at a 8×8 grid and only around macroblocks with specific parameters …
  • block boundary mirroring for qpel, this is AFAIK needed because there is no deblocking loop filter, if mirroring wouldnt be done then the filter would cross many more edges created by blocking artefacts and create a random mess, mirroring also reduces the number of bytes which need to be fetched for each block, ok but why am i complaining? well its a mess to implement and it forces the encoder to do redundant calculations as each block needs things mirrored differently
  • all the startcode avoidance and redundant marker bits, there are really just 2 possibilities, either the stream is undamaged in which case we dont need to search for startcodes unless we try to seek in raw mpeg4 (.m4v NOT .mp4!) or it is damaged in which case the data can contain anything anyway, now if all this mess was for seeking in raw mpeg4 why are there no reliably timestamps? additionally all non-MPEG/ITU codecs work perfectly fine without this startcode emulation prevention thing
  • OBMC is in the spec, theres a bit in the header to enable it but oops its not allowed in ANY profile
  • IDCT see prevous blog entry
  • GMC is very computationally intensive and according to some documents from the JVT the only reason why there is any quality/compression gain at all is that the motion vector for skiped macroblocks is the GMC vector where without GMC it would be (0,0) now simply changing that to the predicted median vector should make the tiny gain GMC has dissapear
  • a single set of fixed vlc tables, why? its just silly, several fixed sets or variable ones stored in a global header would mean very little additional complexity IMHO at least
  • short header format (=every MPEG4 decoder must support simple H.263)
  • different motion vector prediction in bframes, why? using the same as in P frames would be simpler and very likely higher quality
  • no intra macroblocks in b frames
  • macroblocks in B frames must be skiped if they where skiped in the last P frame, thanks to this idiotic idea encoders must check all b frames before they can mark a MB in a P frame as skiped
  • no macroblocks with 4mv and dquant at the same time, requires special handling in the encoder and no advantage at all, h.263 demonstrates how to do it correctly
  • all the “flash” animation multi object stuff in MPEG4
  • dquant is limited to +-2 so encoders must somehow convert the ideal QP values from lumimasking/… to ones which dont change too much between MBs
  • QP is limited to either even or odd values in b frames, yeah poor encoder must decide which it wants, cant have both, hmm and according to the comments in ffmpeg more code is needed for working around all these arbitarray mpeg4 QP limitations about then the actual QP selection needs
Filed under: VideoCoding — Michael @ 21:31

52 Comments »

  1. Hi Michael :)
    some additional missed points in MPEG4, IMHO:
    = you can’t change the VOL header along the sequence. In particular, no adaptive qpel switching, or quant type switching.
    = Reduced resolution (could have been a good idea, but it’s a miserable failure.)
    = no pure field coding (unlike MPEG2). Oh, and supporting field MB is a mess too.
    = no adaptive VLC tables
    = some oddness in the (Run,Level) codes
    = RVLC bwahaha
    = 4-warp points sprite: not used. Unreadable spec.
    = Mesh coding and facial animation ?! gee…

    Now, fortunately, there are some also good points in mpeg4.

    Comment by skal — November 29, 2005 @ 11:04

  2. Hi Skal

    > some additional missed points in MPEG4, IMHO:
    > = you can’t change the VOL header along the sequence. In particular, no adaptive qpel switching, or quant type switching.

    yes, or qpel&quant_type should be rather in the VOP header, also keep in mind that switching things in the VOL header is tricky if the VOL header is stored only in a specific single place like in .mp4

    [...]
    > = no pure field coding (unlike MPEG2). Oh, and supporting field MB is a mess too.

    hmm, i do like the lack of field coding, actually i wouldnt mind if there where no interlacing support at all :-)

    [...]
    > = 4-warp points sprite: not used. Unreadable spec.

    i think though i might be wrong (too lazy to look at the spec now) that the 4-wrap point sprite is used in some part of mpeg4 just not for GMC, and yeah the “GMC equations” are scarily obfuscated

    [...]

    another missed point is the motion vector coding, the per picture fixed number of LSB bits is hmm not so optimal, not to mention annoying for rate distortion during ME

    Comment by Michael — November 29, 2005 @ 12:03

  3. “hmm, i do like the lack of field coding, actually i wouldnt mind if there where no interlacing support at all”

    Well, what am I supposed to do with all my interlaced content then? :-) I tried creating a 60fps MPEG4 using both quicktime and nero and both accepted it and then happily quantized time by x2 and I ended up with a 30fps file. Besides, I’m not sure my machine would even play back a 720x480x60fps MPEG-4 file…

    Comment by Jim Leonard — November 29, 2005 @ 20:38

  4. About interlaced content, heck, I’m so disappointed it hasn’t disappeared from the world yet with the moronic 1080i standard. You would have thought that by now people learned a few lessons.

    In regard to Jim’s last comment, I thought I’d mention that my machine (Athlon 64 3200+) plays 640x480x60fps mpeg-4 asp (without quarter pixel which of course makes performance much worse) very well with the libavcodec decoder, with performance in very intensive parts avaraging around 30% cpu time usage, but in avarage, almost always less than 20%.

    Comment by Shy — December 21, 2005 @ 3:03

  5. I hate the fact that the aspect ratio is so widely ignored with mpeg4 but so widely used in mpeg 2. When converting between formats data ether has to be lost or just made up.

    Comment by Greg — July 25, 2006 @ 14:10

  6. I, too, am disgusted that interlacing isn’t going to die. Interlacing was FINE back when TV was invented, as it allowed for a higher resolution image while using less bandwidth. (Analog NTSC signals fit well within a 6MHz chunk of spectrum). But now, with the (extremely slow) migration to digital TV, there isn’t really a need to carry interlacing across. I noticed that my 720p HD locals are using 60fps (59.94fps, actually), which can handle movie telecine just as well (better, actually) as 29.97 interlaced video.

    The biggest reason for needing to prevent “Start code simulation” is for when you are jumping in midstream, like when you tune in an HD channel. Before you can start decoding, you need to find a proper TS packet start code. If there are fake instances of it in the stream, it just makes it take longer to start decoding streams while you search.

    Comment by Coderjoe — July 28, 2006 @ 21:08

  7. [...] or Xvid. (Advanced codec developers may be interested in reading Michael Niedermayer's opinion on "why MPEG4-ASP sucks".) Likewise, you should get better quality using MPEG-4 ASP than you would with MPEG-2 codecs. [...]

    Pingback by DeServ – Info » MPlayer/MEncoder – Manual traduzido online – Completo — December 19, 2009 @ 0:16

  8. skiped -> skipped ?

    Comment by roger — June 10, 2011 @ 17:58

  9. block boundary mirroring for qpel, this is AFAIK needed because there is no deblocking loop filter, if mirroring wouldnt be done then the filter would cross many more edges created by blocking artefacts and create a random mess, mirroring also reduces the number of bytes which need to be fetched for each block, ok but why am i complaining?

    Comment by http://autoloansarticles.com — May 8, 2013 @ 6:26

  10. I hate the fact that the aspect ratio is so widely ignored with mpeg4 but so widely used in mpeg 2. When converting between formats data ether has to be lost or just made up.

    Comment by игровые аппараты — May 15, 2013 @ 9:50

  11. These are absolutely superb and exactly what one imagines would have been the style used. I’d like to ask what is the graphic/shape used to create the boundary lines above and below the word SYRUP?

    Comment by pregnancy miracle review — August 10, 2014 @ 0:39

  12. These are absolutely superb and exactly what one imagines would have been the style used.

    Comment by Paleo Recipe Book review — August 10, 2014 @ 0:39

  13. nice post, you can visit our web if find to the solution for your sex problem

    Comment by soleh — August 19, 2014 @ 3:20

  14. I’m impressed with your views on this matter and I agree with a lot of your ideas.

    Comment by https://www.thcservers.com — August 19, 2014 @ 6:09

  15. Toko obat kuat online terpercaya di indonesia menjual aneka jenis obat kuat pria alami, obat pembesar penis, alat bantu seksualitas dan obat perangsang wanita. Proses mudah dan cepat. Pesan hari ini, dikirim hari ini juga. Melayani pemesanan seluruh indonesia 24 jam online. Call center 082121301122 / PIN BB 2a88e968

    Comment by Obat Kuat Pria — August 19, 2014 @ 7:01

  16. This really is my very first time I click here. I discovered a lot of entertaining stuff in your blog, especially its discussion. In the a lot of comments in your articles, I suppose I’m not the only person getting all of the satisfaction right here

    Comment by click here — August 19, 2014 @ 9:53

  17. I’m impressed. You’re truly well informed and very intelligent. You wrote something that people could understand and made the subject intriguing for everyone. I’m saving this for future use.

    Comment by flatfeetrunningshoes — August 20, 2014 @ 13:07

  18. This is a great article thanks for sharing this informative information….

    Comment by lol boost — August 23, 2014 @ 8:17

  19. Your post is one of the better that I have read. Thank you for putting this information into one post..

    Comment by code xbox live gratuit — August 25, 2014 @ 7:02

  20. Its a great pleasure reading your post.Its full of information I am looking for and I love to post a comment

    Comment by t shirt bedrukken — August 26, 2014 @ 6:35

  21. This is the right blog for anyone who wants to find out about this topic. You realize so much its almost hard to argue with you. You definitely put a new spin on a topic thats been written about for years. Great stuff, just great!

    Comment by http://www.bestcologneformens.com/ — August 28, 2014 @ 8:25

  22. free clash of clans u can hack with this site this site is really good for all of you…
    how to hack free clash of clans

    Comment by clash of clans hack download — August 29, 2014 @ 8:20

  23. I was very pleased to find this site. I wanted to thank you for this great read!! I definitely enjoying every little bit of it and I have you bookmarked to check out new stuff you post.

    Comment by http://realtybargain.net — September 2, 2014 @ 12:34

  24. This is a great article thanks for sharing this informative information

    Comment by Beaufort SC Real Estate — September 3, 2014 @ 7:01

  25. Nice information, valuable and excellent design, as share good stuff with good ideas and concepts..

    Comment by how to shabby chic furniture — September 4, 2014 @ 6:56

  26. Thanks for the information it is helpful, can you please tell me more about different types of ideas.

    Comment by http://www.fashionicon.co.uk/schuh-discount-code/ — September 5, 2014 @ 12:52

  27. really nice article, love this one

    Comment by obat kuat pria — September 7, 2014 @ 3:41

  28. hai guy, nice to know about your site,

    Comment by sewa mobil bali — September 7, 2014 @ 3:42

  29. selamat pagi semuanyaa

    Comment by kursus hipnotis semarang — September 7, 2014 @ 3:45

  30. interesting and useful article for me thank you

    Comment by alat bantu sex — September 7, 2014 @ 15:03

  31. This blog is really great. The information here will surely be of some help to me. Thanks!.

    Comment by alat bantu sex — September 7, 2014 @ 15:04

  32. I’m impressed with your views on this matter and I agree with a lot of your ideas.

    Comment by highlights for light brown hair — September 9, 2014 @ 7:44

  33. Hi, I just read texts on your blog and I became interested in the topic. I like your site and I am thinking whether I could use your words in my work? Would it be possible? I was about to say something on this topic. But now i can see that everything on this topic is very amazing and mind blowing.

    Comment by zumba shoes — September 9, 2014 @ 11:58

  34. This blog impressed me and over exceeded my expectations. You know how to involve a reader and increase his curiosity to read more.

    Comment by www.compressorguide.com — September 9, 2014 @ 11:59

  35. A very informative site. The way you have share this information is really very appreciative

    Comment by http://criminaldefenseofnewyork.com/ — September 11, 2014 @ 8:18

  36. Nice Information. im waiting articel the next’s time. Thanks. Jual Obat Kuat Pria Tradisional

    Comment by Obat Kuat Pria — September 11, 2014 @ 8:49

  37. Great blog here with all of the valuable information. I really enjoy reading your posts. Updated more post like this…

    Comment by hair highlights ideas — September 11, 2014 @ 10:10

  38. Wow amazing, Nice content I found so many interesting stuff in your blog especially its discussion Thanks to sharing thanks!

    Comment by http://trialattorneysny.com/new-york-injury-lawyer/ — September 13, 2014 @ 6:13

  39. I really thank for your great work.I will looking forward for your next article.

    Comment by http://bakecalc.com — September 13, 2014 @ 10:06

  40. ok

    Comment by Agen Vimax Original — September 13, 2014 @ 10:16

  41. Nice Information. im waiting articel the next’s time.

    Comment by jaring futsal — September 15, 2014 @ 3:01

  42. This is a great article thanks for sharing

    http://www.jual-jaring.blogspot.com

    Comment by jaring pengaman — September 15, 2014 @ 3:37

  43. Thanks for the information it is helpful, can you please tell me more about different types of ideas.

    Comment by http://montelwilliamsblender.com/ — September 15, 2014 @ 7:34

  44. Hey there! I could have sworn I’ve been to this
    site before but after checking through some of the post I
    reaized it’s new to me. Nonetheless, I’m definitely glad I found
    it and I’ll be book-marking and checking bawck often!

    Comment by Shoes — September 15, 2014 @ 19:28

  45. Good Information to know and Right to the point. Thanks to you.

    Comment by http://www.showmesnowgeese.com/snow-goose-hunts/ — September 16, 2014 @ 5:39

  46. Thank you for sharing excellent information. Your web-site is very cool.

    Comment by vetement armani — September 16, 2014 @ 9:02

  47. thanks for this awesome web page, i like it post.

    Comment by alat bantu sex — September 17, 2014 @ 3:21

  48. Nice discussion here, you are doing a great job. i was looking for this information. i found it on your page it’s really amazing.

    Comment by http://cypherx.org — September 17, 2014 @ 8:32

  49. I was happy to discover this website. I desired to thank you for this excellent read!! I definitely experiencing every little bit of it and I have you saved to examine out new things you publish.

    Comment by http://www.besttoysfor2yearolds.org/ — September 17, 2014 @ 11:39

  50. I must say that overall I am very taken with this website. It is obvious that you know you topic and you are enthusiastic about it. I wish I had got your capability to create. I have saved your website and look ahead to more up-dates.

    Comment by http://www.bestrecliner.net/ — September 17, 2014 @ 11:40

  51. really nice article, love this one

    Comment by jaring futsal — September 17, 2014 @ 14:28

  52. Keep posting the good work. Some really helpful information in there. Bookmarked. Nice to see your site. Thanks

    Comment by http://edot3design.co.uk — September 18, 2014 @ 8:26

RSS feed for comments on this post. TrackBack URI

Leave a comment

Powered by WordPress