Announcement

Collapse
No announcement yet.

What is the REAL truth about MPEG-4?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • What is the REAL truth about MPEG-4?

    MPEG-4 sounds as if it should be better than MPEG-2. 4 is twice as big as 2 after all. Now I don't know exactly what it is and if I dare consider using the MS versions as some say they are going away from standards that are not yet agreed upon by the bodies that be. So who can give the right advice on all this. I have a few questions myself:-

    1. MPEG-4 V2 compression at 600 bps seems to produce an output file that is as good as MPEG-1 as far as I can see. Compression level is pretty good too. So I say to myself. OK, I'll store in MPEG-4 V2 format for a while and if the REAL MPEG-4 (standard version that is) then I'll use VirtualDub to convert it? What risks do I take with this idea? Does MPEG-1 have a place any more? I want to keep MPEG-2 out of this for the time being.

    2. Now let's include MPEG-2 in the picture. How does it compare with MPEG-4? What are the main differences in output compression/quality if one produced a high bit rate stream in MPEG-4 (What would that be by the way. 3mb, 2mb or..) file that was comparable with MPEG-2 quality.

    3. Why doesn't Microsoft allow us to use the V3 MPEG-4 Codec at the moment?

    NickT

  • #2
    In a nutshell, the different versions of MPEG do not relate to improved or advanced versions, just different models for different applications. A good starting place to learn about MPEG is www.mpeg.org.

    1. I can tell the difference between a file encoded with MPEG4 at 1,500 bps and a file encoded with MPEG1. MPEG4 is all about saving file space, and it shows in the quality. MPEG1 is primarily used for VCD's these days.

    2. You'll never get anywhere near MPEG2 quality with an MPEG4 stream, at least as far as I can tell.

    3. I use MPEG4 V3 all the time, though I don't see much of an appreciable difference between it and V1/V2. I get the feeling you're going to ask how I can use it, and I have no idea what to tell you. ;/ To be honest, I'll encode to ASF if I need the file size to be low.

    - Aryko

    Comment


    • #3
      In a nutshell, the different versions of MPEG do not relate to improved or advanced versions, just different models for different applications. A good starting place to learn about MPEG is www.mpeg.org.

      1. I can tell the difference between a file encoded with MPEG4 at 1,500 bps and a file encoded with MPEG1. MPEG4 is all about saving file space, and it shows in the quality. MPEG1 is primarily used for VCD's these days.

      2. You'll never get anywhere near MPEG2 quality with an MPEG4 stream, at least as far as I can tell.

      3. I use MPEG4 V3 all the time, though I don't see much of an appreciable difference between it and V1/V2. I get the feeling you're going to ask how I can use it, and I have no idea what to tell you. ;/ To be honest, I'll encode to ASF if I need the file size to be low.

      - Aryko

      Comment


      • #4
        In a nutshell, the different versions of MPEG do not relate to improved or advanced versions, just different models for different applications. A good starting place to learn about MPEG is www.mpeg.org.

        1. I can tell the difference between a file encoded with MPEG4 at 1,500 bps and a file encoded with MPEG1. MPEG4 is all about saving file space, and it shows in the quality. MPEG1 is primarily used for VCD's these days.

        2. You'll never get anywhere near MPEG2 quality with an MPEG4 stream, at least as far as I can tell.

        3. I use MPEG4 V3 all the time, though I don't see much of an appreciable difference between it and V1/V2. I get the feeling you're going to ask how I can use it, and I have no idea what to tell you. ;/ To be honest, I'll encode to ASF if I need the file size to be low.

        - Aryko

        Comment


        • #5
          In a nutshell, the different versions of MPEG do not relate to improved or advanced versions, just different models for different applications. A good starting place to learn about MPEG is www.mpeg.org.

          1. I can tell the difference between a file encoded with MPEG4 at 1,500 bps and a file encoded with MPEG1. MPEG4 is all about saving file space, and it shows in the quality. MPEG1 is primarily used for VCD's these days.

          2. You'll never get anywhere near MPEG2 quality with an MPEG4 stream, at least as far as I can tell.

          3. I use MPEG4 V3 all the time, though I don't see much of an appreciable difference between it and V1/V2. I get the feeling you're going to ask how I can use it, and I have no idea what to tell you. ;/ To be honest, I'll encode to ASF if I need the file size to be low.

          - Aryko

          Comment


          • #6
            You have a nervous condition there Aryko? ;-))

            Dr. Mordrid

            Comment


            • #7
              Wyntha: Generally, MPEG-1 is designed for CD-ROM based presentations at 1/4 broadcast resolutions, MPEG-2 is an extension to MPEG-1 that is better geared towards full resoltuion broadcasts and storage including extensions for support of interlaced video streams. MPEG-4 is designed for low bitrate applications including streaming video across the web. So, it makes sense that at low bitrates MPEG-4 often looks better than MPEG-1.. That said, I've often found that variable bitrate MPEG-1 can look as good if not better than MPEG-4 at simular bitrates. As for Microsoft and their disabling of MPEG-4v3, the best guess is so it makes sure that that format is exclusive to ASF to try to force people to use ASF. The main difference between MPEG-4 v1 through v3 is how much motion estimation is done. So the higher the v# the better (and more computationally expensive) the motion estimation is.

              Comment


              • #8
                I guess I just wanted to get my point across. I kept on getting "connection refused" or some such. I should have known better.

                - Aryko

                PS, I think This_Idiot at desktopvideoworld.com received the original MPEG4 codecs from another user, if I remember correctly.

                [This message has been edited by Aryko (edited 25 April 2000).]

                Comment


                • #9
                  Hi

                  As I understand it (but I may be wrong), the main difference is that MPEG 1/2 standards specify the image divided into blocks for compression. At the key frame, each block is recorded. At the subsequent frames, until the next key frame, the differences in each block from the key frame is recorded. This is quite an efficient method. MPEG1 is optimised for compression at 1/4 frame size while MPEG2 is optimised for quality at full frame size. An MPEG1 file is therefore much smaller than an MPEG2 one. MPEG2 is used extensively for pro TV, including digital satellite broadcasting.

                  In the early 1990s, someone on the MPEG committee had an idea that, instead of dividing the image into blocks, it would be better to recognise arbitrary objects. For example, a talking head, wearing a blue shirt in front of a green background would be divided into the flesh-coloured face, the brown hair, the blue shirt and the green background and the differences recorded in each object from the key frame. The first key frame would take more processing to identify the objects but the subsequent changes would be easier to identify with a smaller quantity of data. There was no preconceived idea as to whether this system would be suitable for any given app or frame size. This was researched and initially programmed by two organisations (one being Microsoft), the resultant codecs being with open source code and copyrighted by the MPEG. To date, it has been quite successful, in that it produces compact code for a better quality. It is not yet up to MPEG2 quality, but it is now beginning to approach it. The hic in the whole story is that MS, not being able to copyright the MPEG source code they developed, could not distribute it as their own product, so they developed non-standard variants of it (three, to date). This means that so-called MPEG4 video produced using an MS codec may not be totally compatible with other MPEG4 codecs which do respect the standards (which are evolving, year by year). For this reason alone, I do not recommend distribution of MPEG4-compressed video clips if they were produced using an MS codec, unless you can be certain that all the viewers also have the MS codecs. If you wish it compatible with a MAC, then use Indeo 5.1 or similar, which is truly cross-platform compatible and is as versatile and as good as MPEG4 (or MPEG 1 or 2, Which is reasonably standardised).

                  Another feature of MPEG4 is that the bit rate can be variable or fixed and can go right up to 4 Mb/s (hence the possibility of good quality) or down to a few tens of kb/s for streaming.

                  Hope this helps and that my understanding is not too far wide of the mark.

                  ------------------
                  Brian (the terrible)

                  Brian (the devil incarnate)

                  Comment


                  • #10
                    Brian Ellis:
                    I could be totally wrong, but my understanding was that the crucial difference between MPEG1/2 and MPEG-4 was much bigger differences between the keyframes. However, you could be correct about it using non-block-like shapes, though it seems to me the computational complexity of approaching an image as a series of non-uniform units would be staggering. As far as I can tell, MPEG-4 is very close to Intel's i263 codec, as its quality is very close to i263 at simular bitrates. (and i263 is essentially MPEG-1 with much bigger distances between keyframes) Please correct me if I'm wrong though.

                    Comment


                    • #11
                      Walrus

                      I'm treading on very thin ice here, because I've not actually studied the system in detail, but my understanding is that MPEG4 will actually remember objects. Take a car race with a long shot from a fixed camera. The first key frame shows the road, the background and car#1 in a given position. The car is identified as an object which changes only in position in frame #2 and the new bit of road revealed is added to the road object. In frame #3, the car is still the object with minor changes in shape and position and the road is further completed. After the car has moved a little more than its own length, the road object is complete. When car #2 comes into sight, it is identified as a new object which is superimposed onto the road object. As the road object is stationary, it needs no further analysis at key frame 2 and, if there are no changes to the object (other than the car objects superimposed), it will assume the status quo. If the camera were hand-held with some shake, only the part of the road which is constant would be transferred as the road object, the bits at either side representing the shake being freshly recalculated. As you can imagine, the algorithm is much more complex than a simple block one, but it can make for much smaller coded signals than other methods, especially for hi-res pictures. For lo-res pictures, each object is 'sketched' much more approximately, which is why it is very efficient at low bit rates. The first key frame in a given view is the only one that requires a lot of bits. I surmise (personal reasoning) that a total change from one shot to another, totally different, one must trigger a new key frame, because no objects would be identifiable.

                      I find this an interesting concept and I strongly suspect that it will become the norm for HD digital TV in due course, because there is no limit to the detail possible in a given object. Naturally, I'm not saying it will be MPEG4, but possibly MPEG6 or 8 or whatever, by the time the concept is fully developed to cope with the requirements.

                      As I say, I'm not conversant with the details but I think these general lines are more or less right. Forgive me if I am up the pole.

                      IMHO, the best thing that could happen for MPEG4 is that Microsoft drop their three non-standard codecs or somebody else produces a standard one for Windows, which swamps away the Microsoft ones.

                      ------------------
                      Brian (the terrible)

                      Brian (the devil incarnate)

                      Comment


                      • #12
                        Brian Ellis:
                        Interesting... What I'm wondering is what the difference is between what you describe and the standard motion estimation tricks used in MPEG-1/2. I *COULD* describe P & B frames in MPEGx as doing exactly what you describe. Essentially the MPEG encoder takes a complete frame (known as an I frame), and then compares that frame to the frames that come after it; it then identifies portions of the new frames that are probably from the original frames, but have moved, and then includes information to move a portion of the original frame and superimpose information to change the object. If I read your description, the two should have the same effect. Of course, I could be missing a lot here. My knowledge of MPEG is pretty sketchy.

                        Comment

                        Working...
                        X