开发者

what are the disadvantages of H264?

There are lot of articles available on net for understanding h264 and the advantages it provide.

From a practical implementation point of view, as visual communication is not only about video codec and much more things like resiliency, bandwidth etc etc, can you guys let me know what are the disadvantages of h264 / things that are not addressed in it?

Can you guys also throw some light on any other开发者_开发问答 issues you have specifically faced with h264? (Interoperability between packet and circuit switched networks, interworking between vendors etc etc)


Thanks for your insight guys..

As you have mentioned that H264 licensing involves a huge cost, do you people see VP8 (made royalty free) to capture the eyes of the media server vendors.?


Encoding and decoding complexity: H.264 encoding and decoding is more computationally complex than some other codecs such as MPEG-4 Part 2 (DivX, XviD). However, the compression performance of H.264 is significantly better than these so it depends on what is more important to you.

This is becoming less of a problem as more devices are including hardware support for H.264.

Error Resiliency: There are some things in H.264 to deal with bit errors, but often they are not used and a single bit error can still have a catastrophic effect. From what I have seen in my study of video codecs, error resiliency seems to being pushed to another layer in most systems. That is, the video codec is designed for maximum compression, and another layer is added on top of the video data to take care of bit errors. That way those who don't need the error resiliency don't pay for it with lower compression rates.

A common example of this is the DVB standard which uses MPEG-2 or H.264 coded video inside an MPEG-2 Transport Stream that contains a forward error correction scheme.

Licensing and Royalties: I am no expert (or even reasonably knowledgeable) in this area, but depending on your use case, you may have to pay some kind of royalty to encode to H.264 legally. See this.

Other than these, I really don't see any other disadvantages of H.264. It seems to be the state of the art for anything from internet quality streamed video to Blue-Ray HD video.

I can't really comment with regards to the last question (packet/circuit switched networks, interworking between vendors, etc.) since I have never actually built a hardware system to work with H.264. I will say that as long as the encoder creates a valid H.264 stream and you have a decoder that fully implements the standard, you should have no problem getting things to work together. This is the whole point of having a standard.


With regard to compression performance, the difference between MPEG-4 part 2 and H.264 is really not as high as it is hyped to be; I'd say, on the order of 25%, give or take depending on features and settings. At least a third of it comes from using arithmetic coding, which is quite complex computationally compared to pre-H.264 technologies and can take the biggest chunk decoding time at high bitrates. Another 10% (not included in the 25% above) are because the deblocking filter is mandatory in most profiles in H.264, but optional in part 2. (And if it's optional, you can be sure that most hardware manufacturers won't bother to implement it.)

With regard to error resiliency, MPEG-4 part 2 and H.264 both have resiliency tools available. Whether anyone actually uses them, depends on the scope of the project. H.264 has several "profiles" with different sets of features. The most common profile in use with high resolution video is "high profile", which is biased towards higher compression, but does not allow all error resiliency tools. Not saying that this is a disadvantage, just a fact of life.

Yes, you have to pay royalties. They are either per-encoder / per-decoder or you can pay a fixed amount of money (a lot, IIRC something like 5 million per year) and get permission to distribute your products in any volume you want.

Interworking between vendors is quite good, especially as long as you don't try to get creative with features. Many vendors use Allegra streams to test, those streams cover all sorts of feature combinations and corner cases. Virtually everyone will support streams in blu-ray spec. The bigger concern should be whether the product has enough processing power to fit your needs. Even a modern high-end CPU can be brought to its knees (or at least seriously loaded) by an attempt to decode a 30 Mbps 1080p H.264 stream at 60 fps in realtime. There aren't many chips out there capable to handle that load.


There are a couple of issues you might not have considered. First, because H.264 uses lossy compression like JPEG (as opposed to PNG), there can be real issues with blurry text and colors that get changed for the worse during the encoding process. Your results will depend on the video content being encoded and the bit rate used by the encoder. Computer generated images like screen shots or pixel art will be blurred by the H.264 encoder. In addition, the output size of the H.264 video could be larger than an APNG or Quicktime Animation encoded file of the same video content (assuming you also use a data compression library like 7zip on the lossless results).

For general purpose video H.264 does some amazing compression. It is only in certain cases that it is not so useful.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜