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

113 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

  45. I really appreciated with it, I will bookmark this site

    Comment by sing — October 21, 2014 @ 10:27

  46. This website has very good content. Thank you for the great article I did enjoyed reading it, I will be sure to bookmark your blog and definitely will come back from again

    Comment by http://aanrechtblad-composiet.nl — October 21, 2014 @ 18:56

  47. 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, so i have nothing to say here. I am just going through all the topics and being appreciated. Thanks for sharing.

    Comment by coach en séduction — October 22, 2014 @ 10:30

  48. The nice article. I’m waiting the next article. Thank you

    Comment by Obat Kuat Lelaki — October 23, 2014 @ 6:30

  49. All the contents you mentioned in post are too good and can be very useful. I will keep it in mind, thanks for sharing the information keep updating, looking forward for more posts.

    Comment by visit our site — October 23, 2014 @ 12:13

  50. This a useful post and help me. Core topic clear and easy to understand, thank you

    Comment by best online drum lessons — October 24, 2014 @ 7:25

  51. Nice Post what you said is really helpful to me. I can’t agree with you anymore. I have been talking with my friend about, he though it is really interesting as well. Keep up with your good work, I would come back to you.

    Comment by high quality office furniture for sale in Miami — October 25, 2014 @ 19:53

  52. Thank you for all the information that is given
    This is a good website all the info provided very helpful
    I wait for a subsequent article once again thank you

    Comment by Obat perangsang wanita — October 26, 2014 @ 19:05

  53. I am happy to find your website and can join to comment
    I think is very valuable to be able to read your writing, and on this occasion will I use for my reference source
    Thank you so much for sharing, I hope you continue to write spirit next topic

    Comment by Alat pembesar payudara — October 26, 2014 @ 19:06

  54. Nice Post what you said is really helpful to me. I can’t agree with you anymore. I have been talking with my friend about, he though it is really interesting as well. Keep up with your good work, I would come back to you.

    Comment by wallpaper installers in Melbourne — October 27, 2014 @ 11:11

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

    Comment by network solutions — October 28, 2014 @ 8:56

  56. This is a smart blog. I mean it. You have so much knowledge about this issue, and so much passion. You also know how to make people rally behind it, obviously from the responses. You have got a design here that’s not too flashy, but makes a statement as big as what you are saying. Great job, indeed.

    Comment by razor — October 28, 2014 @ 10:00

  57. It’s like you read my mind! You seem to know so much about this, like you wrote the book in it or something. I think that you could do with some pick to drive the message home a bit, but other than that, this is great blog. A great read. I’ll definitely be back.

    Comment by smoker — October 28, 2014 @ 10:02

  58. There are so many different aspects when it comes to this topic. Thank you so much for sharing your knowledge on this particular aspect
    by jaring pengaman gedung | jaring bangunan

    Comment by jaring safety — October 30, 2014 @ 12:57

  59. thanks you
    Jaring Pengaman Bangunan
    http://www.primabuanajaya.com

    Comment by Jaring Pengaman Bangunan — October 31, 2014 @ 10:02

  60. hey dear roblox robux generator codes is best site for hacking codes without any cost than visit site on us

    Comment by roblox robux generator — November 1, 2014 @ 7:02

  61. I agree, many thanks to the author. Thanks for taking the time to share this,Great blog post. Thanks..!!!!
    by jaring pengaman gedung | jaring bangunan

    Comment by jaring pengaman gedung — November 1, 2014 @ 7:08

  62. thanks to the info from my father added insight thank you so much, may be useful for us all
    please aprove mister.

    Comment by rental mobil di semarang — November 3, 2014 @ 19:06

  63. Interesting post for me…Thanks for your effort…

    Comment by asian hair — November 4, 2014 @ 7:53

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

    Comment by asian hair — November 4, 2014 @ 7:54

  65. greeting all his. before him I am very grateful, I am personally very pleased to be able to come here.I also want to ride a little specific information there may be no one interested in his friends with the news that I cross right here.

    Comment by Alat Bantu Sex — November 6, 2014 @ 3:06

  66. This one is very nicely written and it contains many useful facts. I am happy to find your distinguished way of writing the post. Now you make it easy for me to understand and implement. Thanks for sharing with us.

    Comment by www.besttoysfor2yearolds — November 7, 2014 @ 6:59

  67. 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://www.alohaspas.ca/nos-produits/piscine-creusee/ — November 8, 2014 @ 8:51

  68. This is great post. I am agree to this post. I think we have right to know the proper news about any matter. If someone gives you wrong message then I think that is crime.Aventura luxury condos

    Comment by http://www.sigalrealty.com/ — November 8, 2014 @ 13:53

  69. very amazing post, I like It, Thank you for presenting a wide variety of information that is very interesting to see in this artikle, good job adnd succes For you

    Comment by furniture jepara — November 8, 2014 @ 17:48

  70. Thaks Makasih info ya

    Comment by obat pembesar penis — November 10, 2014 @ 12:01

  71. I have read your article, it is very informative and helpful for me.I admire the valuable
    information you offer in your articles.Click 4 Scrimmage Vests

    Comment by Steve — November 12, 2014 @ 7:41

  72. I like It, Thank you for presenting a wide variety of information that is very interesting to see in this artikle, good job adnd succes For you

    Comment by karimunjawa — November 12, 2014 @ 15:24

  73. So well explained incredible article, any buddy can follow it, thanks and keep up the great work. All the contents you mentioned in post are too good and can be very useful, Thanks

    Comment by closetafvoermanchet — November 13, 2014 @ 13:01

  74. The post is absolutely fantastic! Lots of great information and inspiration, both of which we all need! Also like to Logo design admire the time and effort you put into your blog and detailed information you offer! I will bookmark your blog and have my children check up here often.

    Comment by handdouchehouder — November 15, 2014 @ 5:50

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

    Comment by http://www.ghdesignfurniture.com/Edmonton-AB_ep_49-1.html — November 17, 2014 @ 7:50

  76. Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? It is extremely helpful for me.

    Comment by http://www.bestcrossfitshoe.net/ — November 17, 2014 @ 12:22

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

    Comment by http://www.micoley.com/resources/fdic-real-estate-auctions/ — November 18, 2014 @ 7:14

  78. Thanks for sharing a nice information….

    Comment by Wire Forming — November 19, 2014 @ 7:04

  79. Thanks for sharing a wonderful information and lots of thanks to you.

    Comment by http://www.vapeitnow.com — November 19, 2014 @ 8:49

  80. Toko Jual Obat Perangsang Wanita, Cair, Asli, Herbal, Alami, Murah, dijamin Manjur, Terbaik http://www.pusatobatpasutri.com/

    Comment by OBAT PERANGSANG WANITA — November 20, 2014 @ 8:29

  81. TERIMA KASIH INFORMASI NYA, MEMBANTU SAYA http://www.istanaramuan.com

    Comment by obat kuat — November 20, 2014 @ 18:17

  82. You done certain good points there. I did a search on the subject and found nearly all persons will agree with your blog.

    Comment by Best VPN Service — November 21, 2014 @ 13:13

  83. This is a terrific article, and that I would really like additional info if you have got any. I’m fascinated with this subject and your post has been one among the simplest I actually have read.

    Comment by Accredited High School Diploma Online — November 25, 2014 @ 6:56

  84. very useful thanks for sharing

    Comment by obat kuat — November 25, 2014 @ 18:41

  85. Interesting post for me…Thanks for your effort…

    Comment by http://www.risperdallawsuit2014.com/ — November 27, 2014 @ 6:44

  86. thak you
    http://obat-pembesar-penis

    Comment by obat pembesar penis — November 27, 2014 @ 12:44

  87. This is a great source to get information. Keep updated.

    Comment by Faiz Biryani — November 27, 2014 @ 13:05

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

    Comment by http://mukapoker.com/index.php — November 28, 2014 @ 8:55

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

    Comment by http://www.cashhousebuyersuk.co.uk — November 28, 2014 @ 10:31

  90. Wonderful post from you, man. I’ve got keep in mind your things before in addition to you’re basically really exceptional. I adore what you’ve bought right here, enjoy whatever you are usually saying in addition to the best way with which you claim that. Anyone make it fulfilling therefore you continue to attend to to settle that clever. I cannot wait around to master far more from you. That is usually a terrific web page.Click here

    Comment by office furniture for sale west palm beach — November 29, 2014 @ 14:55

  91. Good and informative post! I really love how it is easy on my eyes and the data are well written.

    Comment by http://phen375vs.com — December 2, 2014 @ 12:11

  92. I was very encouraged to find this site. I wanted to thank you for this special read.

    Comment by http://pokerbo.org — December 4, 2014 @ 7:15

  93. nice artikle

    Comment by vakum penis — December 4, 2014 @ 8:18

  94. This is cool post and i enjoy to read this post. your blog is fantastic and you have good staff in your blog.

    Comment by aanrechtblad composiet — December 4, 2014 @ 12:34

  95. Very Useful information, this is both good reading for, have quite a few good key points and I learn some new stuff from it too.

    Comment by aanrechtblad composiet — December 4, 2014 @ 18:35

  96. I really appreciate you for writing a great blog

    Comment by Gazco Studio 1 — December 8, 2014 @ 7:14

  97. It is a great website.. The Design looks very good.. Keep working like that!.

    Comment by visit here — December 8, 2014 @ 13:31

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

    Comment by http://www.cliniquedentaireamelielessard.com/ — December 10, 2014 @ 7:13

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

    Comment by dark brown hair with highlights — December 11, 2014 @ 6:58

  100. 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 partytent — December 11, 2014 @ 7:00

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

    Comment by http://www.zesco.com/Commercial-Refrigeration-zz26.htm — December 11, 2014 @ 8:55

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

    Comment by mole clearance — December 12, 2014 @ 6:19

  103. 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 Monster Legends Hack — December 12, 2014 @ 17:11

  104. The important of Detox for our health… need info?

    Comment by Arik Seo — December 15, 2014 @ 6:01

  105. This is a great source to get information. Keep updated.

    Comment by push up bh — December 15, 2014 @ 6:57

  106. This is some awesome stuff i like it. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles on the same matter

    Comment by douchevloer — December 15, 2014 @ 8:57

  107. This is a great article, Thanks for giving me this information. Keep posting

    Comment by Clash Of Clans Hack — December 15, 2014 @ 9:29

  108. Thanks for a very interesting blog. What else can I write that kind of information in such a perfect approach to get? I have a company that I’m just now working on, and I look for more of these.

    Comment by website laten maken — December 15, 2014 @ 9:51

  109. Thak You Makasih Pak Admin Artikel ya BAGUS

    Comment by Obat Pembesar Penis — December 18, 2014 @ 5:00

  110. ok, Thak You Makasih Pak Admin Artikel ya BAGUS

    Comment by Obat Pelangsing Badan — December 18, 2014 @ 5:01

  111. This is a really good read for me, Must admit that you are one of the best bloggers I ever saw.Thanks for posting this informative article.

    Comment by Buy Percocet online — December 19, 2014 @ 19:07

  112. This was a really outstanding post. In theory I’d like to compose like this too – taking time and real effort to make a solid article…

    Comment by buy hydrocodone online — December 19, 2014 @ 20:52

  113. Thanks to a brilliant effort in publishing your article. One can be more informative as this. There are many things I can know only after reading your wonderful article.

    Comment by buy hydrocodone online — December 19, 2014 @ 22:46

RSS feed for comments on this post. TrackBack URI

Leave a comment

Powered by WordPress