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

44 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. thanks for sharing..

    jaring futsal and jaring golf

    Comment by Jaring Lapangan Futsal — September 20, 2014 @ 2:21

  12. This is an excellent post I seen thanks to share it. It is really what I wanted to see hope in future you will continue for sharing such a excellent post

    Comment by excellent crossfit shoes — September 20, 2014 @ 12:02

  13. Please let me know if you’re looking for a writer for your weblog site site. You have some really excellent content and I experience I would be a excellent resource. If you ever want to take some of the fill off, I’d really like to create some content for your weblog site in return for a backlink to my own. Please capture me an e-mail if fascinated.

    Comment by www.zumbacenter — September 21, 2014 @ 13:49

  14. Thank you! I am find information on this topic as I am working on a business project. How did you get to be this great? Its remarkable to see someone put so much passion into a subject.

    Comment by www.compressorguide.com — September 21, 2014 @ 13:54

  15. Awesome information, many thanks to the writer. It is incomprehensible to me now, but in common, the effectiveness and importance is frustrating. Thanks again and best of fortune.

    Comment by bestcologneformens.com — September 22, 2014 @ 14:43

  16. Nice information, valuable and excellent design, as share good stuff with good ideas and concepts, lots of great information and inspiration, both of which I need, keep your post..

    Comment by http://euroblinds.ca — September 23, 2014 @ 7:29

  17. I really enjoy simply reading all of your weblogs. Simply wanted to inform you that you have people like me who appreciate your work. Definitely a great post. Hats off to you ! The information that you have provided is very helpful.

    Comment by http://www.zesco.com/Restaurant-Dinnerware-sz3983.htm — September 23, 2014 @ 8:56

  18. I’m delighted that I’ve observed this weblog. Finally something not a junk, which we go through incredibly frequently. The web site is lovingly serviced and saved as much as date. So it should be, thanks for sharing this with us.

    Comment by http://www.office-bargains.com/ — September 23, 2014 @ 18:14

  19. Thank you for this very beneficial information on the right way. This will be very beneficial for those you are just beginning to weblog. Your publish has been more than beneficial.

    Comment by Melbourne Wallpaper installers — September 23, 2014 @ 21:12

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

    Comment by best crypter — September 24, 2014 @ 6:03

  21. Advantageously, the article is really the best on this notable topic. I harmonize with your conclusions and will thirstily look forward to your approaching updates.

    Comment by realtybargain.net — September 29, 2014 @ 7:38

  22. Good website! I truly love how it is easy on my eyes it is. I am wondering how I might be notified whenever a new post has been made. I have subscribed to your RSS which may do the trick? Have a great day! By the way, thank for the information.

    Comment by flatfeetrunningshoes — September 29, 2014 @ 20:43

  23. It will be very interesting for the people who will attend. It is also useful especially about social media

    Comment by Lévis Piscines — September 30, 2014 @ 7:18

  24. The article posted was very informative and useful

    Comment by jaring safety — September 30, 2014 @ 18:47

  25. Good website! I truly love how it is easy on my eyes it is

    Comment by jaring futsal — October 1, 2014 @ 13:40

  26. This article was written by a real thinking writer. I agree many of the with the solid points made by the writer. I’ll be back.

    Comment by ninjablenderreviewshq — October 1, 2014 @ 21:24

  27. Thank so much for this! I haven’t been this moved by a post for a long period of time! You have got it, whatever that means in blogging. Anyway, you’re definitely somebody that has something to say that people need to hear. Keep up the great work. Keep on inspiring the people!

    Comment by epilator for women — October 1, 2014 @ 21:25

  28. Great! This is a interesting read. It’s a very useful and informative information for me.

    Comment by payday loans uk — October 3, 2014 @ 6:05

  29. Excellent topic to have a short review, i am certainly impressed while having a look on to it and everyone needs to follow it now on

    Comment by What Is Apple Pay? — October 3, 2014 @ 15:46

  30. This article was written by a real thinking writer. I agree many of the with the solid points made by the writer. I’ll be back.

    Comment by Obat Pembesar Alat Vital — October 6, 2014 @ 21:35

  31. You have some really excellent content and I experience I would be a excellent resource. If you ever want to take some of the fill off, I’d really like to create some content for your weblog site in return for a backlink to my own.

    Comment by http://njwebdesigniwc.com — October 11, 2014 @ 12:25

  32. This is a terrific article, and I would like more information if you have any. I am fascinated with this topic and your post has been one of the best I have read.

    Comment by Paddlewheel Flowmeter — October 12, 2014 @ 6:16

  33. Thank you so much for the post you do. I like your post and all you share with us is up to date and quite informative, i would like to bookmark the page so i can come here again to read you, as you have done a wonderful job.

    Comment by boots — October 14, 2014 @ 9:45

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

    Comment by http://www.locksmith-losangeles.co/ — October 15, 2014 @ 7:05

  35. Thank so much for this! I haven’t been this moved by a post for a long period of time! You have got it, whatever that means in blogging. Anyway, you’re definitely somebody that has something to say that people need to hear. Keep up the great work. Keep on inspiring the people! JARING FUTSAL and JARING GOLF

    Comment by jaring pengaman bangunan — October 15, 2014 @ 15:13

  36. Great! This is a interesting read. It’s a very useful and informative information for me.

    Comment by http://www.animerack.tv — October 18, 2014 @ 6:46

  37. Woah this blog is wonderful i like studying your posts. Keep up the great work! You understand, lots of persons are hunting around for this info, you could help them greatly.

    Comment by Lipozene Reviews — October 18, 2014 @ 9:29

  38. After reading this article When i idea it was extremely educational. Appreciate it pertaining to making the effort and attempt to set this information in concert. When i come across myself just as before shelling out strategy to enough time to the two read and thoughts. But so what on earth it was however more than worth it!

    Comment by www.jobcred.com — October 18, 2014 @ 11:48

  39. Every one of the items anyone stated with publish are usually way too great and also can be quite practical. I’ll hold this planned, thanks pertaining to sharing the info hold modernizing, impatient pertaining to a lot more posts.

    Comment by buyorsellfunds — October 18, 2014 @ 11:51

  40. I agree, many thanks to the author. Thanks for taking the time to share this,Great blog post. Thanks..!!!!

    Comment by stick war — October 18, 2014 @ 13:23

  41. Every one of the items anyone stated with publish are usually way too great and also can be quite practical. I’ll hold this planned, thanks pertaining to sharing the info hold modernizing, impatient pertaining to a lot more posts.
    jual rumput futsal murah , jual rumput sintetis murah ,

    Comment by jaring safety — October 19, 2014 @ 23:19

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

    Comment by vedic maths — October 20, 2014 @ 11:17

  43. Can I merely state exactly what a relief to discover a person exactly who basically understands what they’re speaking about on the web. You definitely learn how to deliver a problem to lighting and help it become significant. Much more persons have to read this and understand why facet with the.

    Comment by best air rifle for the money — October 20, 2014 @ 13:29

  44. There are so many different aspects when it comes to this topic. Thank you so much for sharing your knowledge on this particular aspect.

    Comment by best recliner for the money — October 20, 2014 @ 13:30

RSS feed for comments on this post. TrackBack URI

Leave a comment

Powered by WordPress