JM和x264是什么关系?

来源:互联网 发布:java并发请求 编辑:程序博客网 时间:2024/06/11 03:08

       JM包括JM encoder和JM decoder, JM encoder是H.264标准的一个具体实现, JM decoder是对应的解码器. x264和JM encoder一样,都是H.264标准的实现,只是实现的方式不同而已. (H.264是一个标准,可以近似理解为协议或协定或约定或合同)

       实际上, 在H.264标准中,并没有规定编码该怎么编,H.264只规定了编码形成的码流的格式. 也就是说,孙悟空如果不采用H.264的编码器,只要它能做出符合H.264标准的码流,那么孙悟空做出的码流就是正确的H.264码流,自然就能够被H.264的解码器解码.

       对于某一确定的H.264码流,任何H.264解码器解码出来的结果必定完全一样.

 

       再看JM encoder和x264, 自己编码一下,就可以发现,JM encoder实在太慢了,x264则相当快. 为什么呢?因为具体实现的方式不一样,打个简单比方JM encoder就像一个学院派的老师,比较严谨,略带完美主义情结,力求面面俱到, x264更像一个公司的大牛,少去了许多华而不实的东西,奉行实用至上,阉割掉一些看上去很美的东西, 所以编码效率那是相当高啊.

       初学H.264时,听别人说研究学术用JM,实际应用用x264. 其实不然,每个人的需求不同,研究学术就要用JM?要看研究的是什么东西,有些人做的是基于H.264的研究,而不是专门研究H.264, 动辄要编码上千帧,如果用JM,那就太慢了. 对某些基于H.264的研究者来说,运动估计是怎么估计出来的一点都不重要,熵编码是如何实现的一点都不重要,重要的是知道在哪个地方提取什么参量. 话说,人各有志,所以,到底用JM还是x264也是不过是人各有所需罢了.

原创粉丝点击